Примерный план лекции №9 и основные определения

Диаграммы взаимодействияописывают взаимодействие объектов системы, выполняе-мое ими для получения некоторого результата. Диаграммы взаимодействия представля-ются в двух формах: диаграмма следования и диаграмма кооперации. И та, и другая описывают потоки сообщений (вызов методов или сигналы) между объектами, участвующими во взаимодействии.

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

Диаграмма следования делает упор на временную последовательность передаваемых сообщений; она имеет два измерения (см. рис. 9-8). Одно - слева направо в виде вертикальных линий, изображающих объекты, участвующие во взаимодействии.

Верхняя часть линий дополняется прямоугольником, содержащим имя класса объекта или имя экземпляра объекта. Второе измерение - вертикальная временная ось. Сообщения, посылаемые одним объектом другому, изображаются в виде стрелок с именем сообщения и упорядочены по времени возникновения. Слева на диаграмме взаимодействия могут присутствовать комментарии и текст программы на псевдокоде. На рис. 9-8 показана последовательность действий при телефонном соединении.

Диаграмма кооперации отображает не столько последовательность взаимодействия, сколько все окружение объектов, участвующих в нем. Показываются не только посылаемые и принимаемые сообщения, но и косвенные связи между ассоциированны-ми объектами. Диаграммы кооперации описывают полный контекст взаимодействия и представляют собой своеобразный временной "срез" конфигурации сети объектов, взаимодействующих для выполнения определенной цели программной системы. Диаграмма кооперации изображает объекты, участвующие во взаимодействии в виде прямоугольников, содержащих имя объекта, его класс и, возможно, значение атрибутов. Ассоциации между объектами, как и на диаграммах классов, изображаются в виде соединительных линий. Динамические связи - потоки сообщений - представляются также в виде соединительных линий между объектами, сверху которых располагается стрелка с указанием направления и имени сообщения.

Рис 9-8. Пример диаграммы следования

Диаграммы состояний описывают поведение объекта во времени, то есть моделируют все возможные изменения в состоянии объекта, вызванные внешними воздействиями со стороны других объектов или извне. В отличие от диаграмм взаимодействия данный тип диаграмм описывает изменение состояния только одного класса или объекта. Каждое состояние объекта представляется в виде прямоугольника с закругленными углами, содержащего имя состояния, и, возможно, значение атрибутов объекта в данный момент времени. Переход осуществляется при наступлении некоторого события: получении объектом сообщения или приемом сигнала и изображается в виде стрелки, соединяющей два соседних состояния. Имя события указывается на переходе.

Рис. 9-9. Пример: диаграмма состояний кондиционера воздуха

Кроме того, на переходе могут указываться действия, производимые объектом в ответ на внешние события (при переходе из одного состояния в другое или при нахождении в определенном состоянии). Срабатывание перехода может зависеть не только от наступления некоторого события, но и от выполнения определенного условия, называемого пусковым условием. Пусковое условие записывается в квадратных скобках. Объект перейдет из одного состояние в другое, только если произошло указанное событие и пусковое условие приняло значение "истина". Вопрос 3.

Диаграммы активности - частный случай диаграмм состояний. В то время как диаграмма состояний описывает, в основном, реакцию объекта на асинхронные внешние события, диаграммы деятельности предназначены для описания реакции на внутренние события – завершения действий. Каждое состояние - это выполнение некоторой операции, и переход в следующее состояние срабатывает только при завершении операции в исходном состоянии. Таким образом отображается принцип процедурного, синхронного управления. Графическая нотация практически не отличается от нотации диаграмм состояний, с той разницей, что на переходах отсутствует сигнатура события и добавлен символ "синхронизации" переходов для реализации параллельных алгоритмов – жирная горизонтальная или вертикальная черта

Рис. 9-10. Пример: диаграмма активности при приготовлении напитка

Изложенное описывает только небольшую часть SDL. В целом язык заимствует многое из известных методик и унифицирует, стандартизует все это. Степень общности, уровень абстракции языка виден уже из Таблицы 9-1. Язык нацелен на передачу знаний между разработчиками-программистами. Под моделированием понимается специфика-ция проекта и проверка спецификаций путем «прокрутки» проекта на бумаге или в голове. Предполагается, что разработчики будут применять в проектах свои подмножества средств языка, расширяя при необходимости ядро (средства расширения формализованы и потому понятны). При этом поощряется многомодельность – описание одного проекта различными моделями.

Вопрос 4.

Вопросы и задания

1. Детализируйте проект блока управления лифтом: спроектируйте наборы внешних и внутренних сигналов и нарисуйте SDL-диаграммы трех внутренних процессов блока.

2. Почему в UML не определены схемы потоков данных как отдельный вид диаграмм?

3. Какой модели КА – простого или расширенного КА – соответствует диаграмма состояний SDL?

4. Как в UML разрешается противоречие между стандартизацией и постоянным развитием языка?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: