Пояснительная записка (1209818), страница 3
Текст из файла (страница 3)
Классы и объекты являются основой объектно-ориентированного подхода в проектировании систем. Они представляются абстракциями реальной или воображаемой сущности (набора сущностей). Класс анализа – еще более абстрактная сущность, чем просто класс, представляет собой набор из одного или более классов [4].
На рисунке 3.2.1 представлена общая диаграмма классов анализа для разрабатываемого программного средства, показывающая связь между графическим интерфейсом пользователя и базой данных.
Интерфейс пользователя представляет собой несколько взаимосвязанных окон, главными из которых являются окна создания, открытия проекта, а также окно для сравнения результатов контроля целостности, и восстановления файлов. Вспомогательными − выбора проекта, выбора его путей, выбора контрольной точки.
В базе данных выделяется таблица «Проект», с которой связаны все остальные.
Рисунок 3.2.1 – Диаграмма классов анализа
Диаграмма последовательности наглядно отображает временной аспект взаимодействия. Она имеет два измерения. Одно измерение указывает на порядок вовлечения экземпляров сущностей во взаимодействие. Крайним слева на диаграмме отображается экземпляр актера или объект, который является инициатором взаимодействия. Правее отображается другой экземпляр сущности, непосредственно взаимодействующий с первым. Второе измерение указывает на порядок обмена сообщениями. Начальному моменту времени соответствует самая верхняя часть диаграммы.
В рамках данной работы были построены две диаграммы последовательности. Первая описывает взаимодействие между классами приложения и базой данных при сохранении и выполнении контроля целостности, представлена на рисунке 3.2.2. Пользователь на диаграмме является актером, отправляющим запрос на сохранение и выполнение контроля целостности. Приложение создает и заполняет экземпляр класса проект, добавляет его в базу и получает ID записи, повторяет эти действия с экземпляром класса список, и в цикле заполняет данными экземпляры класса файл, заносит в них информацию о всех файлах последовательно, и по одному записывает их в базу данных. Все пути в цикле заполняются, и заносятся в базу данных.
Вторая диаграмма показывает взаимодействие между классами приложения, базой данных и файловой системой Windows при восстановлении файлов − рисунок 3.3.2. Пользователь является актером, выполняющим запрос на восстановление файлов. Фокус управления переходит на диалоговое окно «Восстановить все файлы». Приложение обращается к классу ссылок в проекте. В цикле получает исходные ссылки на все файлы, из базы данных. Затем обращается к источнику копии, возвращает информацию об архиве. После получения информации об архиве, программа обращается к файловой системе. Все файлы перемещаются по исходным путям. В итоге пользователь получает оповещение об успешном восстановлении файлов.
Рисунок 3.3.2 – Диаграмма последовательности – Сохранение и выполнение контроля целостности
Рисунок 3.3.2 – Диаграмма последовательности – восстановление файлов и папок.
-
Модель проектирования
Цель модели проектирования – создание полного детализированного описания внутренней архитектуры и алгоритмов работы системы. Данная модель разрабатывается без привязки к конкретным языкам программирования в идеале, но на практике языки учитываются.
Основные задачи модели проектирования:
-
уточнение внутренней архитектуры и вариантов использования системы;
-
уточнение требований;
-
определение детализированных алгоритмов работы системы в целом и ее отдельных элементов [4].
В состав модели проектирования входит диаграммы классов приложения и базы данных. Диаграмма классов необходима для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. Данная диаграмма отображает взаимосвязи между отдельными сущностями предметной области, такими как объекты и подсистемы, а также описывает их внутреннюю структуру и типы отношений.
Помимо классов диаграмма может содержать интерфейсы, пакеты, отношения. Конечный вариант диаграммы должен содержать полное описание классов, которые состоят из трех разделов. Первый раздел – имя уникальное имя класса, второй – его атрибуты, третий – методы. Между классами должны быть заданы отношения ассоциации, композиции, агрегации, обобщения, зависимости или реализации
Для получения полного представления о структуре разрабатываемого программного продукта была создана диаграмма классов, отражающая структуру приложения, а также общие принципы их взаимодействия без привязки к конкретным технологиям и средствам разработки. Диаграмма классов представлена на рисунке 3.3.1 и 3.3.2.
Рисунок 3.3.1 – Диаграмма классов часть 1
Рисунок 3.3.2 – Диаграмма классов часть 2
Для разрабатываемого приложения также была спроектирована база данных. Схема базы данных на английском языке представлена на рисунке 3.3.3, схема базы данных на русском языке представлена на рисунке 3.3.4.
Рисунок 3.3.3 – Диаграмма базы данных на английском языке
Рисунок 3.3.4 – Диаграмма базы данных на русском языке
Таким образом, в базу данных, разработанную для системы Control Integrity входят восемь таблиц.
Таблица Файловый сервер FTP содержит информацию о FTP-сервере, подключенном к проекту. Связана с таблицей «Проект» по столбцу FTP_ID, для одного проекта может быть только один FTP сервер.
Таблица Тип Интервала является справочником, и содержит список наименований интервалов времени – час, день, сутки, неделя, месяц.
Таблица тип хеширования содержит информацию о наименовании алгоритма для хеширования, является справочником.
Таблица «Пути для резервного копирования» содержит список путей, для сохранения копий. Связана с таблицей «Проект» по столбцу Project_ID
Таблица «Пути для проекта» содержит список и тип путей, для файлов в проекте. Связана с таблицей «Проект» по столбцу Project_ID
Таблица «Файл» содержит информацию о каждом файле в проекте, связана с таблицей список по столбцу List_ID
Таблица «Список файлов» содержит дату создания списка контроля целостности, и дату резервного копирования. Связана с таблицей «Проект» по столбцу Project_ID
Таблица «Проект» является главной, и содержит информацию, о работе с проектом. Связана со справочниками по столбцам «Тип Интервала», «Тип Интервал» (резервное копирование) и «Тип Хеширования».
3.4 Модель реализации
С помощью модели реализации можно получить работоспособную версию системы. На данной стадии окончательно определяется логическая и физическая организация классов в виде компонентов и подсистем, а также топология распределенной информационной системы.
Задачи модели реализации:
-
определение окончательного состава, структуры и кода классов;
-
распределение классов по компонентам и подсистемам;
-
определение топологии распределенной системы и распределение подсистем по узлам сети;
-
планирование итераций (версий) сборки системы;
-
сборка версий системы.
Диаграмма компонентов является частью модели реализации и позволяет определить состав программных компонентов, в роли которых может выступать исходный, бинарный и исполняемый код, а также установить зависимости между ними [4].
При разработке диаграмм компонентов преследуются цели:
‒ спецификация общей структуры исходного кода системы;
‒ спецификация исполнимого варианта системы.
Данная диаграмма обеспечивает согласованный переход от логического к физическому представлению системы в виде программных компонентов. Одни компоненты могут существовать только на этапе компиляции программного кода, другие – на этапе его исполнения. Диаграмма компонентов для решения «Control Integrity» представлена на рисунке 3.4.1.
На диаграмме компонентами являются файлы исходного кода, и формы.
Все файлы исходного кода, кроме MainMethods.cs используют файл SQLiteCmd.cs. В свою очередь файл DateTable.cs использует файл ProjectsOfFiles.cs.
Формы в приложении создаются на основе файлов исходного кода. Одна форма может создаваться на основе одного файла:
-
FTP.cs на основе FTPserver.cs;
-
OpenProject.cs на основе ProjectOfFiles.cs;
-
ListToChange.cs на основе ListOfFiles.cs.
Или на основе нескольких:
-
MainForm.cs: DateIntervalTypes.cs, ProjectOfFiles.cs, PathsInProject.cs, BackUpPaths.cs;
-
ControlIntegrityResult.cs: ListOfFiles.cs, FilesForWork.cs.
Все вместе формы и файлы исходного кода составляют исполняемый файл –ControlIntegrity.exe.
Рисунок 3.4.1 – Диаграмма компонентов
-
Выбор программных средств
4.1 Язык программирования и средства разработки
Используемый для разработки язык программирования C# является относительно новым языком программирования, обладающий тремя основными преимуществами:
‒ спроектирован для использования с Microsoft .NET Framework (развитой платформой разработки, развертывания и выполнения распределенных приложений);
‒ основан на объектно-ориентированной методологии проектирования, являющейся на данный момент основной методологией для разработки корпоративных информационных систем;
‒ при разработке использован опыт создания других языков программирования, исключены многие подходы, признанные неудачными.
Язык C# разработан корпорацией Microsoft и впервые выпущен в виде альфа-версии в середине 2000 года [1].
Версия .NET, используемая при разработке – 4.5.1, является обновлением версии 4.5 от апреля 2014 года. В этой версии, по сравнению с версиями серии 4.4, в язык программирования C# добавлены следующие возможности:
-
поддержка строго типизированных запросов, применяемых для взаимодействия с различными структурами данных;
-
поддержка анонимных типов, позволяющих моделировать форму типа, а не его поведение;
-
поддержка кодировки Юникод (UTF-16) в консоли;
-
усовершенствования в области сжатия ZIP, позволяющие уменьшить размер сжатого файла;
-
возможность использования лямбда-операций, упрощающих работу с типами делегатов;
-
новый синтаксис инициализации объектов, позволяющий устанавливать значения свойств во время создания объекта [7].
Причинами выбора этого языка являются:
-
наличие средств, позволяющих относительно просто и быстро создавать надежные и производительные сетевые службы;
-
наличие опыта разработки на этом языке.
В качестве среды для разработки была использована Microsoft Visual Studio 2015 Enterprise Edition. Причины выбора:
-
поддержка языка программирования C#;
-
удобство использования;
-
возможность бесплатного использования.
-
База данных
В качестве БД была выбрана SQLite, так как для приложения не требуется система клиент – сервер, и скорость работы SQLite довольно высокая, при условии, что операции хеширования и резервного копирования сами по себе являются долгими, то это не мало важный плюс.
SQLite – это библиотека, поддерживающая большинство спецификаций SQL92 и хранящая данные в единственном файле. Кроме того, библиотека является и маленькой, и быстрой при этом, не слишком сильно увеличивая объём приложения.
Возможности SQLite:
-
поддерживает большую часть SQL92, включая триггеры и транзакции;
-
существует система отката, защищающая целостность данных;
-
файлы БД могут совместно использоваться между машинами с различными запросами;
-
поддерживаются БД до 2 терабайт, занимая при этом небольшую часть памяти [8].
-
Руководство пользователя
Работа c приложением начинается с запуска стартовой формы.
Стартовая форма программы представлена на рисунке 5.1
Рисунок 5.1 – Стартовая форма
В правой части формы отображаются уже существующие проекты сортированные по дате исполнения. Чем выше расположен проект, тем ближе его дата исполнения. В левой части расположены две картинки, являющееся иконками для создания нового проекта и открытия существующего.
В верхней части расположено выпадающее меню, первая вкладка которого представлена на рисунке 5.2. Создание проекта возможно двумя способами – по клику на верхнюю картинку – Новый проект или выбрав соответствующую вкладку в меню.
Рисунок 5.2 – Выпадающее меню
Открытие проекта так же возможно двумя способами – кликом по нижней картинке, предварительно выбрав нужный проект в правой части формы или выбрав соответствующую вкладку в меню.
При нажатии на картинку «Создать новый», содержимое формы меняется, отображается режим создания проекта, представленный на рисунке 5.3.














