- •1. Описание задачи
- •2. Модель прецедентов
- •2.1. Прецедент «Выбор необходимой температуры»
- •2.2. Прецедент «Поддержание оптимальной частоты воздуха и заданной температуры»
- •2.3. Абстрактные прецеденты
- •2.4. Абстрактный прецедент «Планирование вентиляционной установки при аварии»
- •2.5. Абстрактный прецедент «Забор воздуха с улицы»
- •2.6. Конкретный прецедент «Выбор необходимой
- •2.7. . Конкретный прецедент «Поддержание оптимальной частоты воздуха и заданной температуры»
- •3. Статическая модель предметной области
- •4. Разбиение на объекты
- •5. Динамическая модель
- •5.1. Диаграмма кооперации для прецедента «Выбор необходимой температуры»
- •5.2. Диаграмма кооперации для прецедента «Забор воздуха с улицы»
- •6. Модель состояний
- •7. Консолидация диаграмм кооперации
- •8. Разбиение на подсистемы
- •9. Разбиение системы на задачи
- •9.1. Выделение задач в подсистеме Вентиляции
- •9.2. Выделение задач в подсистеме датчиков
- •9.3. Выделение задач в подсистеме планировщика
- •9.4. Определение интерфейсов задач
- •10. Проект распределенной системы управления вентиляцией
- •10.1. Структура подсистемы вентиляции
- •10.2. Структура подсистемы датчиков
- •10.3. Структура подсистемы планировщика
- •10.4. Интерфейсы подсистем
- •11. Проектирование скрывающих информацию классов
- •11.1. Проектирование классов интерфейса устройств
- •11.2. Проектирование класса, зависящего от состояния
- •12. Разработка детального проекта программы
- •12.1. Проектирование объектов-разъемов для Вентиляции
- •12.2. Проектирование составных задач
- •13. Конфигурирование целевой системы
- •14. Анализ производительности нераспределенной системы управления Вентиляцией
- •14.1. Сценарий для анализа производительности
- •14.2. Последовательности событий
- •14.3. Назначение приоритетов
- •14.4. Планирование в реальном времени для нераспределенной архитектуры
- •14.5. Последовательность событий «Забор воздуха с улицы»
- •14.6. Последовательность событий «Выбор необходимой температуры»
7. Консолидация диаграмм кооперации
Результат консолидации диаграмм кооперации, описывающих все четыре прецедента, показан на рис.9. Некоторые объекты принимают участие в нескольких прецедентах. Так, объекты Интерфейс Пульта ДУ, Интерфейс Датчиков в прецедентах Выбор необходимой температуры и Забор воздуха с улицы. Другие объекты – к примеру, Интерфейс Системы охлаждения и Интерфейс Системы обогрева – задействованы только в одном прецеденте.
Для объектов, которые принимают участие лишь в одном прецеденте, все взаимодействия изображены на диаграмме кооперации, описывающей этот прецедент. Если же объект занят в нескольких прецедентах, его взаимодействия представлены на разных диаграммах и объединены на консолидированной диаграмме кооперации.
На консолидированный диаграмме кооперации должны присутствовать все взаимодействия объектов, в том числе и альтернативы, которые обычно на отдельных диаграммах кооперации не изображаются.
Рис.9. Иерархическая диаграмма состояний объекта Управление Вентиляцией
Рис.10. Система управления вентиляцией: консолидированная диаграмма кооперации
8. Разбиение на подсистемы
На следующем шаге система разбивается на подсистемы. Поскольку потенциально это приложение является распределенным, то, прежде всего, применяются рекомендации, касающиеся географического местоположения и агрегирования/композиции. В частности, все объекты-вентиляции (числом n) являются частями составного объекта Подсистема Вентиляции. С другой стороны, объекты Интерфейс ПДУ, Интерфейс Датчики, Интерфейс Системы Охлаждения, Интерфейс Системы обогрева и Интерфейс Системы очистки входят в состав одной вентиляции, хотя можно централизировать ПДУ всей системы. Помимо этого, каждой вентиляции нужны объекты Управление Вентиляцией, Диспетчер Вентиляции и Состояние и План Вентиляции.
На рис.11 показана общая структура разбиения. Подсистема вентиляции сбора данных, а подсистема Планировщик – координирующая. Структура Подсистемы Вентиляции представлена на рис.12, а Подсистемы Датчиков– на рис.13.
Дополнительно разрабатывается уточненная статическая модель, изображаемая на диаграмме классов. Эта диаграмма выводится из общей архитектуры подсистем и структуры каждой подсистемы. На диаграмме классов отражены все классы, из которых создаются объекты, представленные на диаграммах кооперации, а также отношения между этими классами, то есть сами кооперации. На рис.14 приведена уточненная статическая модель, в которой каждая подсистема предстает в виде составного класса. Становится очевидным, как программные понятия соответствуют статической модели предметной области, созданной ранее (см. рис.3). Так, составной класс Подсистема Вентиляции включает несколько классов, в том числе классы интерфейса устройств, например Интерфейс Системы Датчики, которые взаимодействуют с внешними классами, в частности Датчиком, представленными в статической модели. Однако в класс Подсистема Вентиляции входят также и другие классы. Аналогичные наблюдения справедливы в отношении составного класса Подсистема Датчиков и его составляющих. Операции каждого класса определены в разделах 9.5 и 11, посвященных проектированию классов.
Рис.11. Разбиение на подсистемы
Рис.12. Структура подсистемы вентиляции
Рис.13. Структура подсистемы датчики