- •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. Последовательность событий «Выбор необходимой температуры»
3. Статическая модель предметной области
В статической модели отражаются статические отношения, существующие в системе управления вентиляцией. Для начала рассмотрим физические классы предметной области (рис.3). Вентиляция - это составной класс, содержащий один Датчик Температуры, Датчик загрязненности воздуха, систему охлаждения и систему обогрева, а также пульт ДУ. Система управления вентиляцией - это тоже составной класс, включающий Систему отопления и систему охлаждения.
Рис.3. Концептуальная статическая модель системы управления вентиляцией
Класс Вентиляция ассоциирован также с составным классом Датчики, включающим в себя классы Датчик температуры и Датчик загрязненности воздуха. Они извещают о состоянии окружающей среды.
Из диаграммы контекста системы видно, что, за исключением перечисленных составных классов, остальные классы на рис.3, представляющие объекты реального мира, - это внешние устройства, то есть датчики или приводы. Поэтому они изображены в виде классов внешних устройств (ввода или вывода), которые осуществляют интерфейс с системой управления вентиляцией (рис. 4).
Рис.4. Диаграмма контекста классов для системы управления вентиляцией
4. Разбиение на объекты
Чтобы подготовиться к динамическому моделированию, рассмотрим программные объекты в системе управления вентиляцией. Объект Вентиляция составлен из нескольких объектов. Поскольку он получает информацию от внешних объектов и управляет внешними объектами, то некоторые его компоненты - это объекты интерфейса устройств ввода/вывода, а именно датчики и пульт ДУ.
Для каждого объекта внешнего устройства существует соответствующий объект программного интерфейса. Так, Вентиляция получает команды от объектов Интерфейс Пульта ДУ, которым управляет пользователь, и Интерфейс Датчиков, который информирует Вентиляцию о текущем состоянии окружающей среды. В Вентиляции есть также объекты Интерфейс Системы охлаждения и Интерфейс Системы Обогрева. Вентиляция посылает команды этим объектам.
Помимо объектов интерфейса устройств, выявленных с помощью диаграммы контекста классов, нужны еще сущностные и управляющие объекты. Для Вентиляции необходим сущностный объект Состояние и План действий Вентиляции. Под Состоянием понимается информация о том, работает ли Вентиляция вообще, работает ли он после возникновения ошибки, работает он на обогревание или охлаждение воздуха. Сюда же относят План действий Вентиляции, включающий температуру, до которой Вентиляция должна охладить/нагреть воздух в помещении, и которую должен поддерживать. С Вентиляцией связан зависящий от состояния управляющий объект Управление Вентиляцией, в ведении которого находятся Системы охлаждения и Обогрева. Он управляет нагреванием и охлаждением воздуха, а также очисткой воздуха. Состояния этого объекта изображены на диаграмме состояний Вентиляции. Поскольку запросы на поддержание температуры могут поступать в любое время, то необходимо создать отдельный объект-координатор Координатор Вентиляции, который будет принимать запросы и обновлять план работы Вентиляции.