Дипломная работа: Система поддержки принятия решений для построения сетей доступа

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам

Рис. 3. Экспертная оценка двух альтернатив методом перестановок

Далее по методу ранжирования альтернатив заполняются матрицы попарного сравнения альтернатив (рис. 4) каждого эксперта. По вертикали и горизонтали расположены альтернативы, элемент матрицы хij - это оценка сравнения альтернативы Аi с Аj. Оценки выставляются по правилу: альтернатива лучше - 1, хуже - -1, равнозначны - 0. Далее происходит вычисление результирующей матрицы путем суммирования одноименных элементов матриц экспертов. Результирующая оценка каждой альтернативы вычисляется суммированием элементов результирующей матрицы по строкам [10].

Рис. 4. Матрица попарного сравнения альтернативэкспертом

4.2.3 Расчёт итоговой ценности

Далее переходим к комплексной оценке альтернатив по критериям. Для этого составляются n матриц размерности m?m сравнительной оценки альтернатив (рис. 5) по каждому критерию (n - количество критериев, m - количество альтернатив). В матрицах каждый элемент показывает оценку альтернативы Аi по отношению к альтернативе Аj по критерию K с использованием тех же правил сравнения (равнозначна - 1, незначительное превосходство - 3, существенное превосходство - 5, и т.д.)[10].

Рис. 5. Матрица попарного сравнения альтернатив по критерию

Для каждой матрицы рассчитывается ценность каждой альтернативы по критерию согласно формуле:

- m - общее число альтернатив; i, j=1,m;

- - элемент матрицы в строке i и столбце j.

Затем рассчитывается итоговая ценность Ui каждой альтернативы по всем критериям по формуле:

Альтернатива с наивысшей итоговой ценностью и будет искомым решением. Оставшиеся альтернативы ранжируются по степени предпочтительности на основе итоговой ценности [10].

5. Выбор программных средств

За время обучения по бакалаврской программе «Информатика и вычислительная техника» я познакомился со многими языками программирования. Среди всех дисциплин наиболее полно были представлены курсы по языкам С и С++, где я получил довольно обширные знания и значительный опыт решения алгоритмических задач и программирования. Эти языки, являясь одними из самых популярных, используются для разработки высокопроизводительного программного обеспечения и могут быть применены фактически к любой задаче программирования. Наиболее предпочтительным является использование С++, как более современного потомка, унаследовавшего эффективность С. В моем понимании, C++ - это «швейцарский нож программирования», то есть язык, на котором можно написать всё. Таким образом, опираясь на свой опыт и личные предпочтения, для реализации данного проекта используется С++.

Для удобной работы над созданием системы необходимо выбрать комплекс программных средств, называемый интегрированной средой разработки (IDE). Мой выбор пал на QtCreator - кроссплатформенную свободную IDE для разработки на С, С++ и QML. У меня имеется опыт работы с этой средой, а также она является одной из самых используемых для программирования на С++. QtCreator разработана для работы с фреймворком Qt. Включает в себя графический интерфейс отладчика и визуальные средства разработки интерфейса. В текстовом редакторе среды реализованы автодополнение ключевых слов, подсветка кода, задание стиля выравнивания, отступов и постановки скобок. Для работы с проектами поддерживаются системы сборки и системы контроля версий.

Qt - кроссплатформенный фреймворк для разработки программного обеспечения на языке программирования C++. Он представляет собой программную платформу, определяющую структуру и облегчающую разработку программного проекта. Этот фреймворк включает в себя много различных классов, которые помогают разрабатывать систему поддержки принятия решений, например, классы элементов интерфейса или классы взаимодействия с сетью. Для работы над данным проектом необходимы следующие модули:

- QtCore - классы ядра библиотеки, используемые другими модулями;

- QtGui - компоненты графического интерфейса;

- QtWidgets - содержит классы для классических приложений на основе виджетов;

- QtSql - набор классов для работы с базами данных с использованием SQL.

Классы:

- QObject - базовый класс всех Qt объектов;

- QApplication - управление приложением и основными настройками;

- QDialog - класс диалогового окна;

- QWidget - класс объектов графического интерфейса;

- QGridLayout - класс, отвечающий за расположение виджетов в виде сетки;

- QPushButton - класс командной кнопки;

- QTableWidget - класс отображения таблиц;

- QMessageBox - класс информирующего окна;

- QLabel - класс отображения текста;

- QSql - класс, отвечающий за работу QtSql модуля;

- QSqlDatabase - класс управлениясоединениемс базой данных;

- QSqlQuery - класс, отвечающий за осуществление запросов к базе данных;

- QDebug - класс вывода отладочной информации.

Для хранения информации используется база данных под управлением компактной встраиваемой СУБД «SQLite». Данная система управления базами данных отличается простотой использования, кроссплатформенностью и высокой скоростью работы. Используется повсеместно, являясь довольно популярным, распространяемым по свободной лицензии, программным продуктом. Соответственно, для управления данными применяется язык структурированных запросов SQL.

Итоговый набор программных средств, выбранных для разработки системы поддержки принятия решений, выглядит так:

- языки программирования С++ и SQL,

- IDEQtCreator 4.6.0,

- фреймворк QT 5.10.1,

- компилятор MinGW 5.3.0 32bit для С++,

- отладчик GNUGDB 7.10.1,

- СУБД SQLite.

Таким образом, учитывая достоинства вышеперечисленных компонентов, они отлично подходят для реализации данного проекта.

6. Разработка программного обеспечения

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

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

Графический интерфейс реализован с применением модулей QtGui и QtWidgets фреймворка Qt, которые содержат классы готовых графических компонентов. Внешний вид приложения был создан при помощи дизайн редактора IDEQtCreator, который сам пишет файл графической формы, предоставляя интерфейс. Был разработан стандартный вид окна с виджетом табличного отображения QTableWidgetпо центру, текстовым заголовком QLabelи кнопками QPushButtonпо краям.

Для хранения исходных данных и результатов промежуточных вычислений в системе используется база данных под управлением СУБД SQLite. За взаимодействие с базой данных во фреймворке Qtотвечает модуль QtSql, содержащий классы для работы с базой с использованием языка SQL. Был создан класс DataBase, который реализует функции установления и разрыва соединения с базой данных, а также создания и удаления таблиц. Взаимодействие осуществляется через SQLзапросы.

7. Разработка программной документации

В этом разделе приведена программная документация, разработанная для системы поддержки принятия решений для построения сетей доступа. Она включает в себя документы: описание применения, руководство оператора, программа и методика испытаний.

7.1 Описание применения

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

7.2 Руководство оператора

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

Система поддержки принятия решений для построения сетей доступа представляет собой многооконное приложение. При запуске программы появляется стартовое окно (рис. 6) с названием системы и кнопкой «Начать», при нажатии на которую происходит переход к первому окну ввода критериев (рис. 7). Дальше переход между окнами осуществляется нажатием кнопки «Далее».

Рис. 6. Стартовое окно

Для добавления критериев необходимо нажать на кнопку «Добавить». Появится новое текстовое поле, куда можно вписать данные. Для удаления необходимо выделить текстовое поле и нажать кнопку «Удалить». Такой же похожий функционал имеют почти все окна ввода.

Рис. 7. Окно ввода критериев

Следующий этап - это добавление альтернативных проектов сетей (рис. 8). Отличие от предыдущего окна заключается в том, что по нажатию кнопок появляется/удаляется целая строчка, в данном случае соответствующая какой-либо альтернативе.

Рис. 8. Окно ввода альтернатив

Затем происходит переход к окну ввода граничных значений критериев (рис. 9), где применяется метод разложения вариантов на удовлетворительные и не удовлетворительные. Пользователь вводит номер критерия, по которому хочет произвести отбор, затем знак операции сравнения и само граничное значение параметра.

Рис. 9. Окно сортировки

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

Рис. 10. Окно результатов сортировки

Далее программа приступает к работе с экспертной коллективной оценкой. Появляется окно ввода групповых критериев (рис. 11). Пользователю необходимо ввести параметры групповой оценки.

Рис. 11. Окно ввода групповых критериев

На следующем этапе необходимо ввести матрицу сравнительных оценок групповых критериев (рис. 12), составленную на основе предпочтений ЛПР. Система сама создает таблицу нужных размеров и ожидает ввода информации.

Рис. 12. Окно ввода сравнительных оценок групповых критериев

На следующем этапе вызывается окно экспертных оценок (рис. 13). Здесь каждая строчка соответствует одному специалисту и его оценкам. При нажатии кнопки «Добавить» происходит вызов дочернего окна (рис. 14), где происходит добавление нового эксперта и его оценок каждой паре альтернатив по каждому критерию. При завершении ввода и нажатии кнопки «ОК» дочернее окно закрывается, возвращая управление окну предку, в котором автоматически создается запись в таблице оценок.

Рис. 13. Окно ввода экспертных оценок альтернатив

Рис. 14. Окно добавления нового эксперта и его оценок пар альтернатив по критериям

При нажатии кнопки перехода выводится новое окно добавления информации (рис. 15), где необходимо ввести матрицу сравнительных оценок критериев.

Рис. 15. Окно ввода сравнительных оценок критериев

И, наконец, вызывается последнее окно ввода (рис. 16), где нужно добавить оценки попарного сравнения альтернатив по критериям.

Рис. 16. Окно ввода парных оценок альтернатив по каждому критерию

Система производит необходимые расчеты и выдает последнее окно (рис. 17), где выведена итоговая ценность для каждой альтернативы и красным цветом выделен лучший результат. Завершение программы на кнопку «Завершить».

Рис. 17. Окно результатов

7.3 Программа и методика испытаний

Система поддержки принятия решений для построения сетей доступа должна отвечать следующим требованиям:

- Позволять вводить и редактировать исходные данные (критерии, их значения в виде альтернатив, условия отбора альтернатив, сравнительные оценки критериев и альтернатив);

- Выдавать итоговый результат в виде ранжированного списка альтернатив с указанием наиболее подходящего сетевого проекта;

- Выдавать сообщения об ошибке при попытке неполного ввода данных;

- Учитывать досрочное завершение программы.

Следовательно, вышеуказанные пункты подлежат проверке во время испытаний.

Окна ввода данных (рис. 18) содержат кнопки «Добавить» и «Удалить», редактируемые текстовые поля. Таким образом, пользователь может вводить любые необходимые данные и, в случае ошибки, изменить или удалить неверную информацию.

Рис. 18. Пример окна ввода

Последнее окно программы (рис. 19) выводит столбец рассчитанной итоговой ценности альтернатив в порядке их записи в таблице и выделяет красным цветом наиболее подходящий вариант.

Рис. 19. Окно результатов

При вводе данных при попытке совершить переход к следующему окну, не заполнив все текстовые поля, вызывается окно с предупреждающим сообщением (рис. 20). Программа не продолжит функционировать, пока пользователь не удовлетворит требование системы заполнить пустые поля.

Рис. 20. Уведомление о незаполненных полях

Также программа обрабатывает ситуации, когда оператор не добавил ни одной записи и пытается совершить переход на следующий этап. Например, для целесообразности расчёта необходимо ввести хотя бы один критерий, по которому можно проводить оценку, или хотя бы две альтернативы, чтобы было из чего выбирать. В таких случаях система выдает информирующее окно (рис. 21) и ожидает ввода.