Пояснительная записка (1209791), страница 3
Текст из файла (страница 3)
Рассмотрим рисунок 3.1.2, на котором изображена декомпозиция варианта использования «Создание ключа доступа». В ней в качестве актёра выступает пользователь ИС. Отношение «extend» означает возможное включение одного варианта использования другим, а отношение «include» – обязательное. Последних случаев на диаграмме два – при создании каждого из ключей доступа пользователю необходимо выбрать доступный USB - накопитель.
Рисунок 3.1.2 – Диаграмма декомпозиции варианта использования «Создание ключа доступа»
Чтобы защитить компьютер от несанкционированного доступа, пользователь ИС должен создать ключ доступа к информационной системе. Помимо личного ключа доступа, который разблокирует лишь тот компьютер, на котором был создан данный ключ доступа, пользователь может создать Мастер - ключ для разблокировки тех компьютеров, на которых будет установлен разрабатываемый модуль защиты. При создании ключей доступа, как личного, так и Мастер - ключа, пользователю необходимо выбрать USB - накопитель из списка доступных USB - накопителей информационной системы. После выбора USB - накопителя можно активировать процесс защиты ИС.
3.2 Диаграмма состояний
Диаграммы состояний используются для описания поведения, реализуемого в рамках варианта использования, или поведения экземпляров класса, компонента, узла или системы в целом. Поведение моделируется через автомат, описывающий возможные последовательности состояний экземпляра сущности и переходы между ними на протяжении его жизненного цикла, начиная от создания и заканчивая уничтожением.
Диаграмма состояний представляет собой связный ориентированный граф, вершинами которого являются состояния, а дуги служат для обозначения переходов из состояния в состояние. Под состоянием понимается ситуация в ходе жизни экземпляра сущности, когда эта ситуация удовлетворяет некоторому условию, экземпляр выполняет некоторые операции или ждет наступления некоторого события.
В UML различают два вида операций: действие и деятельность. Действие – это атомарная операция, выполнение которой не может быть прервано, приводящая к смене состояния или возвращающая значение. Деятельность – это составная операция, реализуемая экземпляром в конкретном состоянии, выполнение которой может быть прервано.
Событие – это спецификация факта, который может привести к смене состояния. События могут быть внутренними или внешними. Внешние события передаются между системой и актерами. Внутренние события передаются между объектами внутри системы. В UML можно моделировать четыре вида событий: сигналы; вызовы; истечение промежутка времени; изменение состояния. Переход – отношение между двумя состояниями, показывающее возможный путь изменения состояния экземпляра сущности.
На рисунке 3.2.1 показана контекстная диаграмма, моделирующая реакцию проектируемого программного модуля на действия пользователя. После запуска приложения пользователь может настроить личный ключ доступа, выбрав при этом из списка доступных USB - накопитель, или настроить Мастер - ключ доступа, перейдя на другую форму по ссылке на форме, или открыть форму настроек, которое позволяет очистить USB - накопитель или удалить приложение.
Рисунок 3.2.1 – Диаграмма декомпозиции варианта использования «Оформление покупки в магазине»
После успешного создания индивидуального ключа доступа на выбранном ранее пользователем из списка доступных USB – носителе появляется форма, сообщающая о том, что ключ успешно создан, и позволяющая активировать защиту компьютера от несанкционированного доступа посторонних лиц в информационную систему.
3.3 Диаграмма последовательности
Одной из характерных особенностей систем различной природы и назначения является взаимодействие между собой отдельных элементов, из которых образованы эти системы. Речь идет о том, что различные составные элементы систем не существуют изолированно, а оказывают определенное влияние друг на друга, что и отличает систему как целостное образование от простой совокупности элементов.
В языке UML взаимодействие элементов рассматривается в информационном аспекте их коммуникации, т. е. взаимодействующие объекты обмениваются между собой некоторой информацией. При этом информация принимает форму законченных сообщений. Другими словами, хотя сообщение и имеет информационное содержание, оно приобретает дополнительное свойство оказывать направленное влияние на своего получателя.
Для моделирования взаимодействия объектов в языке UML используются соответствующие диаграммы взаимодействия. Говоря об этих диаграммах, имеют в виду два аспекта взаимодействия. Во - первых, взаимодействия объектов можно рассматривать во времени, и тогда для представления временных особенностей передачи и приема сообщений между объектами используется диаграмма последовательности.
В рассмотренных диаграммах время в явном виде не присутствует. Однако временной аспект поведения может иметь существенное значение при моделировании синхронных процессов, описывающих взаимодействия объектов.
Рассмотрим рисунок 3.3.1, на котором изображена диаграмма последовательности для процесса создания ключа доступа.
Рисунок 3.3.1 – Диаграмма последовательности «Создание ключа доступа»
После инициализации главной формы разрабатываемого программного модуля пользователь обновляет список всех доступных USB - накопителей. Для этого главной форме необходимо обратиться к классу «обнаружение USB». Данный класс получает полный список всех доступных накопителей, собирает информацию о данных накопителях, и преобразует её в вид, удобный пользователю, затем возвращает полученный список главной форме. Далее пользователь выбирает один USB - накопитель из списка всех доступных информационной системе для создания ключа доступа. Процесс создания ключа доступа заключается в следующем: форма запоминает информацию по выбранному USB - накопителю, затем получает информацию о компьютере, затем на выбранном USB - накопителе создается файл (если существует – перезаписывается), в который вносится информация о выбранном USB - накопителе и компьютере. После этого главная форма вызывает класс Criptography (криптография) для последущего шифрования файла. Класс Criptography (криптография) возвращает файл в зашифрованном виде главной форме для последущей обработки. Главная форма устанавливает файлу атрибут «скрытый» для сокрытия данного файла от пользователя. Затем главная форма скрывается, передавая управление форме Attention (внимание).
3.4 Диаграммы деятельности
При моделировании поведения системы возникает необходимость не только представить процесс изменения ее состояний, но и детализировать особенности алгоритмической и логической реализации выполняемых системой операций – для этого в UML применяются диаграммы деятельности. По своей семантике и набору элементов диаграммы деятельности во многом сходны с блок - схемами, незначительно уступая им по набору отображаемых элементов.
Каждая диаграмма деятельности акцентирует внимание на последовательности выполнения определенных действий или элементарных операций, которые в совокупности приводят к получению желаемого результата. Каждое состояние на диаграмме деятельности соответствует выполнению некоторого действия или деятельности, а переход в следующее состояние срабатывает только при их завершении.
Графически диаграмма деятельности представляется в виде ориентированного графа, вершинами которого являются состояния действия или деятельности, а дугами – переходы от одного состояния к другому. Основными элементами диаграммы являются состояния действия, состояния деятельности, переходы, решения, ветвления и слияния параллельных потоков и дорожки.
Деятельность выполняется, только тогда, когда готовы все его «входы», после выполнения, деятельность передает управление и(или) данные на свои «выходы».
На рисунке 3.4.1 рассмотрен процесс запуска защиты от несанкционированного доступа. После инициализации формы алгоритм получает список всех доступных в данный момент информационной системе USB - накопителей. Если не найден ни один USB - накопитель, алгоритм запрещает доступ к информационной системе. Если найден хотя бы один USB - накопитель, алгоритм производит поиск на найденных USB - накопителях файла, имя которого строго прописано в алгоритме. Если файл не найден, алгоритм запрещает доступ к информационной системе. Если файл был обнаружен на одном из USB - накопителей, алгоритм производит дальнейшую проверку файла. Производится расшифровка файла для получения информации, находящейся в файле. Затем алгоритм получаем информацию о компьютере. Полученная информация сравнивается с информацией, находящейся в файле. Если информация, полученная алгоритмом, и информация, содержащаяся в файле, не совпадают, алгоритм запрещает доступ к информационной системе. Если эти данные совпадают, алгоритм получает информацию о USB - накопителе, на котором расположен найденный файл. После чего производится сравнение полученной алгоритмом информации о USB - накопителе с информацией о USB - накопителе, находящейся в файле. Если данные не совпадают, алгоритм запрещает доступ к информационной системе. Если данные совпадают, алгоритм разрешает доступ к ИС. После этого алгоритм ждет системные сообщения. Продолжение алгоритма изображено на рисунке 3.4.2.
Рисунок 3.4.1 – Диаграмма деятельности «Запуск защиты от НСД»
Рисунок 3.4.2 – Диаграмма деятельности «Защита от НСД»
На рисунке 3.4.2 рассмотрен процесс защиты от несанкционированного доступа. Данная диаграмма не имеет начального и конечного узлов действия, т.к. данный процесс непрерывен. Алгоритм ожидает и перехватывает системные сообщения операционной системы Windows. Если такое сообщение было перехвачено алгоритмом, алгоритм выясняет, связано ли это сообщение с USB - накопителями. Если сообщение не связано с USB - накопителями, сообщение игнорируется, а алгоритм снова ожидает поступление системных сообщений. Если связано, алгоритм продолжает обрабатывать сообщение. Существует два типа сообщений, связанных с USB - накопителями: подключение нового устройства и отключение устройства, на которые алгоритм реагирует по - разному. При получении системного сообщения о подключении нового USB - накопителя алгоритм получает букву USB - накопителя, назначенную ему операционной системой. Алгоритм производит поиск на данном USB - накопителе файла, имя которого строго прописано в алгоритме. Если файл не найден, алгоритм запрещает доступ к информационной системе. Если файл был обнаружен, алгоритм производит дальнейшую проверку файла. При получении системного сообщения об отключении USB - накопителя алгоритм получает список всех доступных в данный момент информационной системе USB - накопителей. Если не найден ни один USB - накопитель, алгоритм запрещает доступ к информационной системе. Если найден хотя бы один USB - накопитель, алгоритм производит поиск на найденных USB - накопителях файла, имя которого строго прописано в алгоритме. Если файл не найден, алгоритм запрещает доступ к информационной системе. Если файл был обнаружен на одном из USB - накопителей, алгоритм производит дальнейшую проверку файла. Производится расшифровка файла для получения информации, находящейся в файле. Затем алгоритм получаем информацию о компьютере. Полученная информация сравнивается с информацией, находящейся в файле. Если информация, полученная алгоритмом, и информация, содержащаяся в файле, не совпадают, алгоритм запрещает доступ к информационной системе. Если эти данные совпадают, алгоритм получает информацию о USB - накопителе, на котором расположен найденный файл. После чего производится сравнение полученной алгоритмом информации о USB - накопителе с информацией о USB - накопителе, находящейся в файле. Если данные не совпадают, алгоритм запрещает доступ к информационной системе. Если данные совпадают, алгоритм разрешает доступ к ИС. Затем алгоритм возвращается на этап ожидания системных сообщений.
3.5 Диаграммы компонентов
Диаграмма компонентов позволяет определить состав программных компонентов, в роли которых может выступать исходный, бинарный и исполняемый код, а также установить зависимости между ними.
При разработке диаграмм компонентов преследуются цели:
-
спецификация общей структуры исходного кода системы;
-
спецификация исполнимого варианта системы.
Данная диаграмма обеспечивает согласованный переход от логического к физическому представлению системы в виде программных компонентов. Одни компоненты могут существовать только на этапе компиляции программного кода, другие – на этапе его исполнения. Основными элементами диаграммы являются компоненты, интерфейсы и зависимости между ними. Кроме этого, на ней могут отображаться ключевые классы, входящие в компоненты.
Так как разрабатываемое программное обеспечение преследует две основные цели, такие как управление ключами доступа и защита от несанкционированного доступа, целесообразно будет разработать два модуля, взаимодействующих между собой.
Рассмотрим компоненты модулей более подробно.
На диаграмме компонентов модуля SettingsModule.exe, изображенной на рисунке 3.5.1, имеются файлы типа source, в каждом из которых хранится исполняемый код соответствующей формы (диалогового окна), и типа library, которые представляют собой статические или динамические библиотеки. Данный модуль использует две библиотеки: mscorlib.dll и System.dll. Классов с исполняемым кодом в данном модуле предусмотрено восемь.
Рисунок 3.5.1 – Диаграмма компонентов модуля SettingsModule.exe
На диаграмме компонентов модуля SecureModule.exe, изображенной на рисунке 3.5.2, также имеются файлы типа source и типа library. Данный модуль использует две библиотеки: mscorlib.dll и System.dll. Классов с исполняемым кодом в данном модуле предусмотрено семь.
Рисунок 3.5.2 – Диаграмма компонентов модуля SecureModule.exe
3.6 Выбор среды программирования
На сегодняшний момент язык программирования C# одни из самых мощных, быстро развивающихся и востребованных языков в ИТ - отрасли. В данное время на нем пишутся самые различные приложения: от небольших десктопных программ до крупных веб - порталов и веб - сервисов, обслуживающих ежедневно миллионы пользователей.
Если сравнить с другими языками, C# достаточно молодой, но в то же время он уже прошел большой путь. Первая версия языка вышла вместе с релизом Microsoft Visual Studio .NET в феврале 2002 года.