- •Министерство образования Российской Федерации
- •Введение
- •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. Последовательности событий
- •Заключение
- •Список литературы
10. Разработка детального проекта программы
Итак, задачи и скрывающие информацию классы определены. Далее нужно выполнить детальное проектирование. Сюда входит проектирование объектов-разъемов и составных задач, в которые вкладываются скрывающие информацию объекты.
10.1. Проектирование объектов-разъемов
На этапе детального проектирования интерфейсы описываются более точно с помощью объектов-разъемов, как показано на рис.26. Так, объекту Диспетчер поступают сильно связанные сообщения, не требующие ответа. Данный интерфейс отображается на объект-разъем Буфер сообщений диспетчера. Обычно такого рода разъем существует между одним производителем и одним потребителем, однако в нашем случае есть две задачи-производителя – Интерфейс датчика наличия неполадок и Интерфейс датчика исправления ошибок, которые отправляют сообщения Диспетчеру (при этом последний находится в различных состояниях).
Диспетчер является производителем в трех интерфейсах со слабо связанным обменом. Во всех трех случаях потребители находятся в других распределенных подсистемах. Следовательно, мы будем использовать три очереди-разъема (см. рис.26), которые скрывают детали асинхронного обмена сообщениями с потенциально удаленными задачами, Очередь сообщений диспетчера инкапсулирует детали обмена с Диспетчером, а Очередь сообщений датчика наличия неполадок и Очередь сообщений датчика исправления ошибок – детали обмена с Подсистемой шлюзов.
В распределенном приложении разъемы следует проектировать так, чтобы они могли во время выполнения определить, находится задача-получатель в том же или в удаленном узле. Отправители не должны знать о расположении получателей. Такая независимость от места позволит реализовать гибкую стратегию конфигурирования, при которой распределенные подсистемы проектируются в виде распределенных компонентов. Экземпляры таких компонентов отображаются на физические узлы на этапе конфигурирования.
Рис. 26. Проектирование разъемов диспетчера
10.2. Проектирование составных задач
Рассмотрим теперь проектирование составной сгруппированной задачи Диспетчер, чтобы показать вложенные в нее объекты, скрывающие информацию. Объекты, описывающие каждое исправление ошибок, размещаются внутри Диспетчера. Это зависящий от состояния объект Управление исправлением ошибок. На рис.27 приведен детальный проект задачи Диспетчер.
Любой объект интерфейса асинхронного устройства ввода/вывода помещается внутрь асинхронной задачи, поддерживающей это устройство. Например, все экземпляры объектов Интерфейс кнопки включения, Интерфейс кнопки выключения, Интерфейс кнопки включения автомата, Интерфейс кнопки исправления ошибок принадлежат задаче Интерфейс кнопок.
Рис. 27. Детальный проект диспетчера
11. Конфигурирование целевой системы.
На этапе конфигурирования целевой системы производится отображение подсистем на физические узлы. Одна из возможных конфигураций такова: по одному узлу для каждого экземпляра Подсистемы
Рис.24. Диаграмма развертывания нераспределенной системы управления дамбой.
12. Анализ производительности системы управления дамбой.
В этом разделе мы применим теорию планирования в реальном времени к анализу производительности распределенного варианта системы управления дамбой.