Моделирование механизмов защиты компьютерной системы, страница 6

Количество входов в систему выводится напротив имени каждого пользователя в соответствующей колонке списка. Под списком отображено поле в которое выводятся имена пользователей, вошедших в систему минимальное количество раз.

Словесное описание

Для каждого пользователя в соответствие ставится метка, она равна 1 если пользователь входил в систему минимальное число раз. Метка используется для уменьшения времени формирования списка минимального числа входов.

Формализация входных и выходных данных

Входные данные:

·  АутОбъект – аутентифицирующий объект

Выходные данные:

·  АутОбъект – аутентифицирующий объект

·  login – имя пользователя, строка

Определение математических и логических зависимостей

minVhodov = количество входов первого пользователя аутентифицирующего объекта

Просмотр аутентифицирующего объекта

               Если minVhodov > количество входов текущего пользователя, тогда

                              minVhodov = количество входов текущего пользователя

Просмотр аутентифицирующего объекта

               Если количество входов текущего пользователя = minVhodov, тогда

                              вывод имени текущего пользователя

Схема алгоритма

Код программы

private void ВыводПользователейСМинимальнымЧисломВходов()

        {

            listBox4.Items.Clear();

            int minVhodov = Global.АутОбъект[0].GetKolVhodov();

            foreach (КПользователь пользователь in Global.АутОбъект)

            {

                if (minVhodov > пользователь.GetKolVhodov())

                    minVhodov = пользователь.GetKolVhodov();

            }

            foreach (КПользователь пользователь in Global.АутОбъект)

            {

                if (пользователь.GetKolVhodov() == minVhodov)

                    listBox4.Items.Add(пользователь.Get_login());

            }

        }

Создание и заполнение матрицы доступа

Формализация задачи

Создать для нового пользователя матрицу доступа на основе одного объекта и одного субъекта. Предусмотреть возможность добавления и удаления субъектов и объектов из матрицы доступа и редактирование матрицы.

Описание элементов интерфейса формы администратора

Если матрица доступа еще не создана:

В данном случае предлагается ввести субъект и объект и нажать на кнопку «Создать матрицу». Будет создана матрица с одним субъектом и одним объектом, для увеличения матрицы доступа смотри далее. Создание матрицы происходит по принципу добавления субъекта и объекта последовательно и дополнительного рассмотрения не требует.

Если матрица доступа уже создана:

Область для работы с матрицей доступа состоит из таблицы – визуального представления матрицы доступа. Полей для ввода названий субъектов и объектов, кнопок для добавления / удаления субъектов / объектов и кнопку для записи матрицы доступа.

Добавление субъекта

Словесное описание

Добавляет новый субъект-строку в матрицу доступа

Формализация входных и выходных данных

Входные данные:

·  АутОбъект – аутентифицирующий объект

·  login – логин, строка

·  Имя_субъекта – строка из текстового поля

Выходные данные:

·  АутОбъект – аутентифицирующий объект

Определение математических и логических зависимостей

Добавление строки в АутОбъектlogin.mDostupa

АутОбъектlogin.mDostupaвысота_матрицы, 0 = Имя_субъекта

Код программы

private void button7_Click(object sender, EventArgs e)

        {

            if (textBox6.Text != "")

            {

                string[,] bufM = new string[Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[0] + 1, Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[1]];

                for (int i = 0; i < Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[0]; i++)

                    for (int j = 0; j < Global.АутОбъект[listBox1.SelectedIndex].sizeMDostupa[1]; j++)

                        bufM[i, j] = Global.АутОбъект[listBox1.SelectedIndex].mDostupa[i, j];