
- •Задание на курсовую работу по дисциплине «Системный анализ»
- •Введение
- •Краткое описание объекта исследования
- •Моделирование проблемосодержащей системы
- •Модель взаимосвязи системы с окружающей средой
- •Структурный анализ системы
- •Построение дерева причин
- •Постановка целей и поиск решений
- •Построение дерева целей
- •Оценка целей методом анализа иерархий
- •Разработка и оценка альтернатив решения по критерию среднего выигрыша
- •Разработка альтернатив
- •Описание метода выбора альтернативы по критерию среднего выигрыша
- •Разработка программного продукта, реализующего выбор альтернативы по критерию среднего выигрыша
- •Разработка алгоритма решения задачи
- •Описание программы
- •Тестирование программы
- •Заключение
- •Список использованных источников
- •Приложение а (обязательное) Расчёты локальных приоритетов
- •Приложение б (обязательное) Дерево целей с приоритетами
- •Приложение в (обязательное) Блок-схема программного продукта
Разработка программного продукта, реализующего выбор альтернативы по критерию среднего выигрыша
Разработка алгоритма решения задачи
Для решения задачи был разработан алгоритм, представленный в виде блок-схем представленных в приложении В. В представленной блок-схеме «Главное окно» сначала необходимо ввести количество вариантов управления и количество возможных состояний. Нажимается кнопка «Заполнить данные», после чего проверяется проверка введённых данных, если всё введено верно, то заполняются поля для ввода наименования вариантов управления и наименования возможных состояний. После чего нажимается кнопка «Начать анализ». Далее происходит переход в блок-схему «Окно матрицы», в котором высвечивается новое окно для заполнения и вспомогательное окно, информирующее о том, как заполнять данные. В окне для заполнения необходимо ввести коэффициенты для возможных состояний, сумма их должна быть равна 1, а ниже ввести экспертные оценки от 0 до 10, где 0 – это самый неподходящий вариант, а 10 – наиболее подходящий. После чего нажимается кнопка «Расчёт» и если всё введено верно, то происходит расчёт, показанный в блок-схеме на рисунке В.2, в котором происходит заполнения массива эффективности, путём нахождения математического ожидания. Далее в блок-схеме «Вывод» представленной на рисунке В.3 представлен поиск максимального элемента, среди этого массива и выводится значение этого элемента.
Описание программы
Для реализации алгоритма была разработана программа на языке python с использованием кросс-платформенной событийно-ориентированной графической библиотеки tkinter. Выбор языка программирования и графической библиотеки был сделан за счет простоты выполнения поставленной задачи и опыта работы с данными средствами разработки. Программа состоит из одного класса App, в котором существую такие методы, как __init__ для инициализации приложения, в котором инициализируются все важные блоки для дальнейшей работы программы. Метод run необходим для того, чтобы окна в приложении не закрывались, пока пользователь сам не закроет главное окно. На главном окне появляется текст, предлагающий ввести количество вариантов управления и возможные состояний среды. Когда в главном окне пользователь введёт данные и нажмёт на кнопку «Заполнить данные», которая была изначально инициализирована, запускается метод create_data. Данный метод создаёт поля для ввода названий альтернатив и возможных состояний и заменяет кнопку «Заполнить данные» на «Начать анализ», нажав на которую появиться дополнительное окно с матрицей и полями для ввода эффективности среды, сама кнопка пропадёт, а также будет дополнительное окно с информацией о заполнении полей. Создание этого «дочернего» окна происходит в методе create_window. Заполнив данные таблицы необходимо нажать на кнопку «Расчёт», после чего в главном окне появиться запись о том, какой объект получил наивысшую оценку по критерию среднего выигрыша. Расчёты происходят в методе calculation. Для получения данных с таблицы написаны методы get_matrix и get_koef. Так же предусмотрена обработка ошибок ввода.
Тестирование программы
Стартовое окно приложения, представлено на рисунке 5.1. В нем происходит ввод количества вариантов управления системой и количества ситуаций внешней среды.
Рисунок 5.1 – Стартовое окно приложения
Ввиду того, что данные, которые пользователь вводит в оба поля, должны быть целыми числами, то при вводе символов с клавиатуры, программа проверяет каждый символ на принадлежность к множеству цифр и не пропускает все лишние символы. В случае ошибки программа сообщает об этом пользователю с помощью модального окна (рис. 5.2).
Рисунок 5.2 – Уведомление об ошибке
Этап заполнения данных об альтернативах и ситуациях во внешней среде происходит в этом же окне, которое изменяет свой размер, заменяет кнопку «Заполнить данные» и выводит новые поле для ввода. Оно представлено на рисунке 5.3
Рисунок 5.3 - Окно ввода вариантов управления и состояний среды
После заполнения данных нажимается кнопка «Начать анализ». Нажав на кнопку, высветится окно, информирующее о том, как заполнять данные в новом окне. Окно информации представлено на рисунке 5.4, а окно для заполнения представлено на рисунке 5.5.
Рисунок 5.4 - Окно с информацией
Рисунок 5.5 – Окно для заполнения
Заполнив данные и нажав на кнопку «Расчёт» в главном окне будет представлен результат работы расчёта, окно с результатом представлено на рисунке 5.6.
Рисунок 5.6 – Окно с результатом вычислений
Пример вывода окна, информирующего об ошибке, представлен на рисунке 5.7.
Рисунок 5.7 – Окно, информирующее об ошибке