3.Технологический раздел.
3.1Выбор языка программирования и среды разработки.
Рассматриваемый программный комплекс реализован с использованием принципов объектно-ориентированного программирования. Для организации и проектирования объектной модели программы использовались шаблоны («паттерны») объектно-ориентированного проектирования. Такой подход позволяет создавать гибкий дизайн приложения, способный учитывать всевозможные расширения функциональности программы и приводит к оптимальному уровню абстракции данных.
В настоящее время существует множество языков и сред программирования, многие из которых обладают достаточно высокой эффективностью, удобством и простотой в использовании.
Из языков программирования, которые теоретически подходят для реализации поставленной задачи, автору известны C, C++, Object Pascal, C#, Managed C++, Visual Basic.
Для данного курсового проекта была выбрана платформа .NET и среда программирования MS Visual Studio 2008.
Выбор данной платформы обусловлен большим выбором стандартных библиотек, позволяющих разрабатывать программные приложения с наибольшей эффективностью при минимальных затратах времени. В качестве основного языка программирования выбор был остановлен на С#.
Из возможных версий платформы Microsoft .NET Framework была выбрана наиболее актуальная (из стабильных на момент начала работы над дипломным проектом) версия 3.5, т.к. в данной версии была введена поддержка синтаксиса языка C# 3.0.
C# - один из самых распространённых и популярных современных языков объектно-ориентированного программирования. Данный язык был выбран в силу того, что он имеет широкие возможности по написанию сложных функциональных программных комплексов, использующих различные ресурсы и имеющих гибкий пользовательский интерфейс. С# позволяет в короткие сроки создавать развитые иерархии взаимодействующих классов в каждом логическом слое приложения и связывать их функциональность со слоем отображения, реализую событийную модель взаимодействия компонентов. Кроме того, существуют огромнейшие библиотеки классов (.NET Framework, последняя версия - 3.5), написанные на этом языке, где можно найти практически всё, что требуется для работы над проектом любой сложности. Также C# предоставляет широкие возможности по использованию механизмов кодогенерации в самых различных её проявлениях (в третьей версии появились автосвойства, анонимные делегаты, лямбда-функции и прочее), работе с хранилищами данных.
Выбор среды разработки обусловлен следующими причинами:
-
данная среда является самой современной из доступных нам на сегодняшний день и позволяет использовать весь спектр технологий и программных библиотек;
-
данная среда программирования является промышленным стандартом разработки приложений;
-
среда разработки MS Visual Studio 2008 предоставляет широкие возможности при написании кода, его редактировании, а также позволяет эффективно отлаживать программы с использованием различных инструментов, что позволяет качественно и быстро устранять возникающие ошибки;
-
данная среда предоставляет удобную систему отладки кода программ и множество мастеров по созданию функциональных блоков программ (компонентов, визуальных элементов, дизайнеров и прочее);
-
одно из главных достоинств среды разработки – высокая надежность в работе с проектами.
-
наличие бесплатной студенческой версии.
3.2Пользовательский интерфейс.
Главное окно программы представлено на рисунке 3.1.
Рисунок 3.1 Главное окно программы.
Основную часть окна занимает табличное представление выбранного вероятностного автомата. В столбцах таблицы находятся состояния автомата, а в строках – его входной алфавит. На пересечениях строк и столбцов расположены возможные исходы для данного состояния при условии прихода заданного символа. Каждый исход представлен в виде записи (a, w) – p, где a – это конечное состояние данного исхода, w – выходной символ, а p – вероятность исхода.
Список всех загруженных автоматов находится в правой части окна. Данный список снабжён специальными кнопками, находящимися рядом с ним и позволяющими добавлять и удалять автоматы.
В нижней части окна находятся подобные списки для редактирования множества состояний текущего автомата, его входного и выходного алфавитов.
Для редактирования переходов автомата необходимо выделить любую ячейку и нажать соответствующую кнопку «…». Это приведёт к появлению окна редактирования множества переходов для заданных состояния a и входного символа z (рисунок 3.2).
Рисунок 3.2 Окно редактирования переходов.
В правой части окна расположено табличное представление возможных переходов, позволяющее производить их редактирование. В левой части находится круговая диаграмма, представляющая распределение вероятностей различных исходов.
Для редактирования исходов можно использовать встроенные в таблицу кнопки редактирования или же отдельное окно (рисунок 3.3).
Рисунок 3.3 Окно редактирование перехода.
После задания исходного автомата можно произвести его декомпозицию. Для этого необходимо использовать кнопку «Декомпозиция» на форме главного окна.
Как следует из алгоритма, до начала декомпозиции необходимо выбрать множество ортогональных разбиений. Для этого служат окна редактирования разбиений (рисунки 3.4 и 3.5).
Рисунок 3.4 Окно редактирования разбиения.
Рисунок 3.5 Окно редактирования множества ортогональных разбиений.
В ходе создания разбиений программа автоматически предлагает завершения множества ортогональных разбиений (рисунок 3.6).
Рисунок 3.6 Окно редактирования разбиения.
После выбора множества ортогональных разбиений происходит декомпозиция автомата. Результаты декомпозиции отображаются в специальном окне (рисунок 3.7).
Рисунок 3.7 Окно результатов декомпозиции.
В данном окне основное место занимает схема, полученной в результате декомпозиции сети. В правой части располагается список состояний выделенного элемента сети.
Из данного окна можно вызвать окно моделирования (рисунок 3.8).
Рисунок 3.8 Окно моделирования.
Данное окно позволяет производить моделирование исходного автомата и сети, полученной в результате декомпозиции.
Результаты всех проведённых экспериментов оформляются в виде вкладок в правой области окна. В верхней части представлена гистограмма нахождения автомата и сети в каждом из своих состояний за всё время эксперимента. В нижней части представлена гистограмма получения выходных символов при работе автомата и сети.
Для проведения моделирования необходимо задать начальное состояние, входную последовательность и количество её повторений.
Входная последовательность задаётся, используя специальный редактор (рисунок 3.9).
Рисунок 3.9 Окно редактирования входной последовательности.
|