- •Министерство образования Российской Федерации
- •Введение
- •2.5. Абстрактный прецедент «Автоматический режим работы системы»
- •2.6. Абстрактный прецедент «Планирование работы системы управления дамбой»
- •2.7. Конкретный прецедент «Запуск системы»
- •2.8. Конкретный прецедент «Исправление ошибки функционирования дамбы»
- •3. Статическая модель предметной области
- •4. Разбиение на объекты
- •5. Динамическая модель
- •5.1. Диаграмма кооперации для прецедента «Запуск системы»
- •5.2. Диаграмма кооперации для прецедента «Исправление ошибок»
- •5.3. Диаграмма кооперации для прецедента «Остановка системы»
- •5.4. Консолидация диаграмм кооперации
- •6. Разбиение на подсистемы
- •7. Разбиение системы на задачи
- •7.1. Выделение задач в подсистеме управления исправлением ошибок
- •7.2. Выделение задач в подсистеме шлюзов
- •7.3. Выделение задач в подсистеме диспетчера
- •7.4. Определение интерфейсов задач
- •7.5. Проектирование класса абстрагирования данных
- •7.6. Обсуждение альтернативных архитектур
- •8. Проект распределенной системы управления дамбой
- •8.1. Структура подсистемы управления дамбой
- •8.2. Структура подсистемы шлюзов
- •8.3. Структура подсистемы диспетчера
- •8.4.Интерфейсы подсистем
- •9. Проектирование скрывающих информацию классов
- •9.1. Проектирование классов интерфейса устройств
- •9.2. Проектирование класса, зависящего от состояния
- •10. Разработка детального проекта программы
- •10.1. Проектирование объектов-разъемов
- •10.2. Проектирование составных задач
- •11. Конфигурирование целевой системы.
- •12. Анализ производительности системы управления дамбой.
- •12.1. Сценарий для анализа производительности
- •12.2. Последовательности событий
- •Заключение
- •Список литературы
5.3. Диаграмма кооперации для прецедента «Остановка системы»
Диаграмма кооперации для прецедента Остановка системы изображена на рис.7.
Система останавливается кнопкой «Стоп», передача запросов осуществляется Диспетчером. Вот описание последовательности сообщений:
А1: Поступил Запрос кнопки выключения объекту Интерфейс кнопки выключения.
А2: Объект Интерфейс кнопки выключения посылает Запрос на обслуживание объекту Диспетчер.
Рис. 7. Диаграмма кооперации для прецедента «Остановка системы»
5.4. Консолидация диаграмм кооперации
Результат консолидации диаграмм кооперации, описывающих все три прецедента, показан на рис.8. Некоторые объекты принимают участие в нескольких прецедентах. Так, объекты Интерфейс кнопки включения, Интерфейс датчика функционирования шлюза, Датчик функционирования шлюза, Интерфейс датчика исправления ошибок и Датчик исправления ошибок участвуют в прецедентах Запуск системы и Исправление ошибок. Другие объекты – к примеру, Интерфейс кнопки выключения и Интерфейс кнопки включения автомата – задействованы только в одном прецеденте.
Для объектов, которые принимают участие лишь в одном прецеденте, все взаимодействия изображены на диаграмме кооперации, описывающей этот прецедент. Если же объект занят в нескольких прецедентах, его взаимодействия представлены на разных диаграммах и объединены на консолидированной диаграмме кооперации.
На консолидированной диаграмме кооперации должны присутствовать все взаимодействия объектов.
В результате консолидации мы получаем диаграмму кооперации, которая описывает все вышеописанные прецеденты.
Рис. 8. Управление дамбой: консолидированная диаграмма кооперации
6. Разбиение на подсистемы
На следующем шаге система разбивается на подсистемы. Поскольку потенциально это приложение является распределенным, то, прежде всего, применяются рекомендации, касающиеся географического местоположения и агрегирования/композиции.
В частности, все кнопки, отвечающие за работу системы, и связанные с процессом управления исправлением ошибок являются частями составного объекта Подсистема управления исправлением ошибок. С другой стороны, объекты Датчик функционирования шлюза и Интерфейс датчика исправления ошибок входят в состав шлюза, они образуют составной объект Подсистема шлюза. Наконец, объект-координатор Диспетчер помещается в своей собственной подсистеме, поскольку не зависит ни от шлюзов, ни от процесса исправления ошибок.
На рис. 9 показана общая структура разбиения на подсистемы управления исправлением ошибок, шлюзов и диспетчера. Подсистема управления исправлением ошибок – это управляющая подсистема, Подсистема шлюзов – подсистема сбора данных, а подсистема Диспетчер - координирующая. Структура Подсистемы управления исправлением ошибок представлена на рис.10, а Подсистемы шлюзов – на рис.11.
Рис. 9. Разбиение на подсистемы
Рис. 10. Структура подсистемы управления исправлением ошибок
Рис. 11. Структура подсистемы шлюзов
Дополнительно разрабатывается уточненная статическая модель, изображаемая на диаграмме классов. Эта диаграмма выводится из общей архитектуры подсистем и структуры каждой подсистемы. На диаграмме классов отражены все классы, из которых создаются объекты, представленные на диаграммах кооперации, а также отношения между этими классами, то есть сами кооперации. На рис.12 приведена уточненная статическая модель, в которой каждая подсистема предстает в виде составного класса. Становится очевидным, как программные понятия соответствуют статической модели предметной области, созданной ранее (см. рис.3). Так, составной класс Подсистема управления дамбой включает несколько классов, в том числе классы интерфейса устройств, например Интерфейс кнопки включения, Интерфейс кнопки выключения, Интерфейс кнопки включения автомата и Интерфейс кнопки исправления ошибок, которые взаимодействуют с внешними классами, в частности Датчик функционирования шлюза и Датчик исправления ошибки, представленными в статической модели. Аналогичные наблюдения справедливы в отношении составного класса Подсистема шлюзов и его составляющих. Операции каждого класса определены в разделах 9.5 и 11, посвященных проектированию классов.