Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовой по СРВ.doc
Скачиваний:
118
Добавлен:
02.05.2014
Размер:
2.59 Mб
Скачать

5.3. Диаграмма кооперации для прецедента «Остановка системы»

Диаграмма кооперации для прецедента Остановка системы изображена на рис.7.

Система останавливается кнопкой «Стоп», передача запросов осуществляется Диспетчером. Вот описание последовательности сообщений:

А1: Поступил Запрос кнопки выключения объекту Интерфейс кнопки выключения.

А2: Объект Интерфейс кнопки выключения посылает Запрос на обслуживание объекту Диспетчер.

Рис. 7. Диаграмма кооперации для прецедента «Остановка системы»

5.4. Консолидация диаграмм кооперации

Результат консолидации диаграмм кооперации, описывающих все три преце­дента, показан на рис.8. Некоторые объекты принимают участие в нескольких прецедентах. Так, объекты Интерфейс кнопки включения, Интерфейс датчика функционирования шлюза, Датчик функционирования шлюза, Интерфейс датчика исправления ошибок и Датчик исправления ошибок участвуют в прецедентах Запуск системы и Исправление ошибок. Другие объекты – к примеру, Интерфейс кнопки выключения и Интерфейс кнопки включения автомата – задействованы только в одном прецеденте.

Для объектов, которые принимают участие лишь в одном прецеденте, все взаи­модействия изображены на диаграмме кооперации, описывающей этот прецедент. Если же объект занят в нескольких прецедентах, его взаимодействия представлены на разных диаграммах и объединены на консолидированной диаграмме кооперации.

На консолидированной диаграмме кооперации должны присутствовать все взаимодействия объектов.

В результате консолидации мы получаем диаграмму кооперации, которая описывает все вышеописанные прецеденты.

Рис. 8. Управление дамбой: консолидированная диаграмма кооперации

6. Разбиение на подсистемы

На следующем шаге система разбивается на подсистемы. Поскольку потенци­ально это приложение является распределенным, то, прежде всего, применяются рекомендации, касающиеся географического местоположения и агрегирования/композиции.

В частности, все кнопки, отвечающие за работу системы, и связанные с процессом управления исправлением ошибок являются частями со­ставного объекта Подсистема управления исправлением ошибок. С другой стороны, объекты Датчик функционирования шлюза и Интерфейс датчика исправления ошибок входят в состав шлюза, они образуют составной объект Подсистема шлюза. Наконец, объект-координатор Диспетчер помещается в сво­ей собственной подсистеме, поскольку не зависит ни от шлюзов, ни от процесса исправления ошибок.

На рис. 9 показана общая структура разбиения на подсистемы управления исправлением ошибок, шлюзов и диспетчера. Подсистема управления исправлением ошибок – это управляющая подсистема, Подсистема шлюзов – подсистема сбора данных, а подсистема Диспетчер - координирующая. Структура Подсистемы управления исправлением ошибок представлена на рис.10, а Подсистемы шлюзов – на рис.11.

Рис. 9. Разбиение на подсистемы

Рис. 10. Структура подсистемы управления исправлением ошибок

Рис. 11. Структура подсистемы шлюзов

Дополнительно разрабатывается уточненная статическая модель, изображаемая на диаграмме классов. Эта диаграмма выводится из общей архитектуры подсистем и структуры каждой подсистемы. На диаграмме классов отражены все классы, из которых создаются объекты, представленные на диаграммах кооперации, а также отношения между этими классами, то есть сами кооперации. На рис.12 приведе­на уточненная статическая модель, в которой каждая подсистема предстает в виде составного класса. Становится очевидным, как программные понятия соответству­ют статической модели предметной области, созданной ранее (см. рис.3). Так, составной класс Подсистема управления дамбой включает несколько классов, в том числе клас­сы интерфейса устройств, например Интерфейс кнопки включения, Интерфейс кнопки выключения, Интерфейс кнопки включения автомата и Интерфейс кнопки исправления ошибок, которые взаимодейству­ют с внешними классами, в частности Датчик функционирования шлюза и Датчик исправления ошибки, представленными в статической мо­дели. Аналогичные наблюдения справедливы в отношении составного класса Подсистема шлюзов и его составляющих. Операции каждого класса опреде­лены в разделах 9.5 и 11, посвященных проектированию классов.