Главная » Delphi » Delphi 2006 – Диаграммы последовательностей (Sequence Diagram)

0

Новый вид диаграмм взаимодействия (.Interactive Diagram) в версии UML 2.0 состоит из двух дополнительных видов диаграмм: диаграмм последовательностей (Sequence Diagram) и диаграмм коммуникаций ( Communicate Diagram). Они представляют одну и ту же модель с разных точек зрения.

В диаграммах последовательностей версии UML 2.0 появился элемент Lifeline (Линия жизни). Он заменяет ранее существовавший элемент Object и выражает как исходный объект, так и соответствующую ему временную линию существования.

Названия участников взаимодействия в диаграммах последовательностей можно задавать в более свободном виде, нежели в версии UML 1.5. Ранее использовалось понятие объекта, а название его подчеркивалось. В версии UML 2.0 введено понятие участника взаимодействия. Название его желательно записывать в формате «имя : класс».

В диаграммах последовательностей UML 2.0 улучшен способ выражения алгоритмических конструкций. В версии UML 1.5 для этого использовался элемент Statement Block. Теперь введено более общее понятие фрейма взаимодействия. Фрейм позволяет наглядно представлять охватывающие друг друга действия (блоки, циклы, условия).

К выделенной полосе активности на линии жизни объекта можно добавить составной, комбинированный фрагмент алгоритма (элемент Combined fragment). При его размещении на полосе активности среда Delphi предложит выбрать тип операции для создаваемого алгоритмического блока (например, loop — цикл). В результате на линии жизни сформируется прямоугольник с толстой каймой, в левом верхнем углу которого указано название фрагмента (например, loop). Список доступных типов операций приведен в таблице 8.1.

Таблица 8.1. Операции алгоритмических блоков

alt

Аналог условного оператора. Задает исполнение только того вложенного фрагмента, для которого указанное условие является истинным

opt

Вариант условного оператора, у которого отсутствует ветвь else

par

Параллельное выполнение всех вложенных фрагментов

loop

Цикл

region

Критическая область. Она должна быть выполнена за один шаг

neg

Выделение неверного фрагмента

ref

Ссылка на фрагмент, расположенный, возможно, на другой диаграмме

seq

Обозначение локальной диаграммы последовательности

Во фрагментах алгоритма на диаграммах последовательностей UML 2.0 можно указывать логику исполняемого действия на языке OCL. Для этого пунктиром выделяется вложенный в фрагмент блок. В его свойство Constraint text вводится выражение OCL. Если фрагмент подразумевает условное выполнение, то таких пунктирных разделов в нем может быть два (по числу направлений ветвления).

В длину фрагмент увеличивается (по продолжительности) с помощью элемента State invariant. Выбрав этот инструмент на панели инструментов, следует щелкнуть мышью на линии жизни над областью удлиняемого фрагмента — и он увеличится. Подобные манипуляции бывают необходимы при согласовании некоторых событий на соседних линиях жизни.

Если в алгоритме надо сформировать ссылку на вынесенный блок или внешнюю диаграмму, следует использовать средство Interaction use палитры инструментов. Для охвата нескольких соседних линий жизни одним блоком служит инструмент Tie frame.

Элемент Execution specification служит для размещения на линии жизни точек, уточняющих конкретные моменты существования объекта. Этот элемент отображается в виде точки со стрелкой и присоединенным комментарием. Точки спецификации позволяют уточнить схему взаимодействия между объектом и интерфейсом. Сама точка соединяется с линией жизни объекта, видимого в текущем взаимодействии как интерфейс. А стрелка точки спецификации указывает на объект, которому данный интерфейс поставляется.

В версии UML 2.0 четко выделено различие между синхронными и асинхронными вызовами. Для отображения сообщений остался только один графический символ — Message. Но его внешний вид теперь можно задать с помощью свойства Sort. Синхронные вызовы отмечаются в этом свойстве значением SynchCall. Они выделяются на диаграмме сплошной линией с закра-

Рис. 8.47. Вызовы и сообщения

шенной стрелкой. Асинхронные вызовы задаются значениями AsynchCall (асинхронный вызов) или AsynchSignal (асинхронная отправка извещения) в свойстве Sort. Они выделяются серой открытой стрелкой.

Диаграммы коммуникации (Communication Diagram)

Диаграммы коммуникации в версии UML 1.5 назывались диаграммами кооперации. В версии UML 2.0 их существенно упростили, и теперь они позволяют показывать лишь объекты. Объекты теперь обозначаются элементом Lifeline (Линия жизни). Нумерация последовательности шагов выполняется, как и ранее, автоматически.

Бобровский С. И. Технологии Delphi 2006. Новые возможности. — СПб.: Питер, 2006. — 288 е.: ил.

По теме:

  • Комментарии