- •Министерство образования и науки Российской Федерации Московский государственный институт электронной техники (технический университет) Факультет мп и тк
- •«Программный комплекс многокритериальной оптимизации систем на основе мультихромосомных моделей и генетических алгоритмов»
- •Содержание
- •Перечень сокращений
- •Введение
- •1. Специальный раздел
- •1.1. Исследовательская часть
- •1.1.1. Обзор существующих программ для оптимизации
- •1.1.3. Информационные потребности пользователя
- •1.2. Конструкторская часть
- •1.2.1. Требования, предъявляемые к системе
- •1.2.2. Структура входных и выходных данных
- •1.2.3. Конфигурация технических средств
- •1.2.4. Модули комплекса
- •1.2.5. Общий алгоритм работы программы
- •1.2.6. Иерархия классов
- •1.2.7. Переменные в выражениях и их использование в программе
- •1.2.8. Основные алгоритмы и особенности программной реализации
- •1.2.9. Проверка отказоустойчивости программы
- •1.2.10. Проверка работы комплекса на контрольных примерах
- •1.3. Выводы
- •2. Технологический раздел
- •2.1. Использование стандартных библиотек
- •2.1.1. Библиотека stl
- •2.1.2. Библиотека mfc
- •2.1.3. Применение библиотек stl и mfc в программе
- •2.1.4. Средство ClassWizard
- •2.2.2. Встроенные средства языка для отладки программ
- •2.2.3. Отладка программного кода, содержащего stl и mfc
- •2.4. Приёмы объектно-ориентированного проектирования
- •2.4.1. Применение паттернов проектирования в программе
- •2.5. Выводы
- •3. Организационно-экономический раздел
- •3.1. Метод анализа иерархий
- •3.2. Метод парных сравнений.
- •3.2.1. Определение собственных векторов
- •3.3. Применение метода для выбора среды программировани
- •3.3.1. Характеристики сред программирования
- •3.3.2. Таблица сравнений важности критериев
- •3.3.3. Таблицы попарного сравнения сред разработки по каждому критерию
- •3.4. Результаты применения метода
- •3.5. Выводы
- •4. Производственная и экологическая безопасность
- •4.1. Опасные и вредные факторы, воздействующие на программиста
- •4.1.1. Микроклимат рабочей зоны программиста
- •4.1.2. Воздействие шума на программиста. Защита от шума
- •4.1.3. Уровень напряжённости электромагнитного поля
- •4.1.4. Электробезопасность. Статическое электричество
- •4.1.5. Освещенность рабочего места
- •4.2. Заключение
- •Заключение
- •Список литературы
- •Исходный текст программы
- •Результаты испытаний
- •Руководство оператора
- •Аннотация
- •2. Условия выполнения программы
- •2.1. Климатические условия эксплуатации
- •2.2. Состав аппаратных и программных средств
- •3. Требования к персоналу (пользователю)
- •4.2.2. Выполнение функции сохранения модели в файл
- •4.2.3. Выполнение функции ввода информации о системе
- •4.2.4. Выполнение функции задания различных параметров системы
- •4.2.5. Правила записи выражений
- •4.2.6. Выполнение функции задания параметров генетических алгоритмов
- •4.2.7. Выполнение функции поиска решения
- •5.3. Ошибки при проверке модели
- •5.4. Ошибки во время поиска решения
2.4. Приёмы объектно-ориентированного проектирования
На сегодняшний день существует огромное количество приёмов объектно-ориентированного проектирования. Остановлюсь немного подробнее на приёме, получившем название паттерны проектирования. Под паттернами проектирования понимается описание взаимодействия объектов и классов, адаптированных для решения общей задачи проектирования в конкретном контексте. Паттерн проектирования вычленяет участвующие классы и экземпляры, их роль и отношения, а также функции [9]. Применение паттернов проектирования позволяет существенно снизить время на создание иерархий классов разрабатываемой системы, т.к. паттерны описывают способы решения широкого класса задач. Вот примеры некоторых паттернов проектирования:
Абстрактная фабрика (abstract factory) – предоставляет интерфейс для создания семейства взаимосвязанных или взаимозависимых объектов, не специфицируя их конкретных классов;
Мост (bridge) – служит для отделения абстракции от её реализации так, чтобы то и другое можно было менять независимо;
Состояние (state) – позволяет объекту варьировать своё поведение в зависимости от внутреннего состояния. Извне создаётся впечатление, что изменился класс объекта.
Наряду с этими существует немалое количество и других паттернов проектирования. Опишу паттерн проектирования Одиночка (singleton), идея которого реализована в разработанной программе.
2.4.1. Применение паттернов проектирования в программе
В программном комплексе есть несколько классов, объекты которых создаются в единственном экземпляре и существуют на протяжении всей работы комплекса. К таким объектам относятся, например, объекты GLOBLexer и GLOBParser, осуществляющие разбор и проверку правильности выражений, объект GLOBParamStorage, хранящий в себе настройки параметров модуля ГА, и др. Эти объекты создаются и инициализируются один раз при запуске программы. Для реализации классов этих объектов хорошо подходит паттерн проектирования Одиночка. Назначение этого паттерна – гарантировать, что у класса есть только один экземпляр, и предоставить к нему глобальную точку доступа. Как было сказано выше, в программе реализована идея этого паттерна; сама реализация несколько упрощена. В частности, нет механизма, обеспечивающего создание единственного экземпляра. В данном механизме нет необходимости, т.к. логика программы такова, что создание нескольких объектов классов, которые должны иметь только по единственному экземпляру, невозможно.
2.5. Выводы
В технологической части были описаны библиотеки классов, широко применяемые при проектировании программных продуктов, рассмотрены некоторые технологии создания приложений с использованием средств автоматизации проектирования (так называемых Мастеров). Были также рассмотрены средства отладки приложений с графическим интерфейсом пользователя с использованием средств отладки среды программирования Microsoft Visual Studio C++ 6.0. Кроме того, было уделено внимание таким современным технологиям объектно-ориентированного дизайна, как паттерны проектирования.
Организационно-экономический раздел
Выбор среды разработки с использованием
метода анализа иерархий
Консультант Пискунова Н.Н.
Исполнитель Жданов В.А.