Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Шаврин С.М. Моделирование и проектирование ИС.doc
Скачиваний:
4
Добавлен:
01.07.2025
Размер:
1 Мб
Скачать
☆

Сообщения

В языке UML определено следующих три типа сообщений: синхронные, асинхронные и ответные.

Определение. Синхронное сообщение – это сообщение, после отправки которого отправитель дожидается завершения его обработки.

Определение. Асинхронное сообщение – это сообщение, после отправки которого отправитель может выполнять другие действия, не дожидаясь завершения его обработки.

Определение. Ответное сообщение – это сообщение, уведомляющее отправителя о завершении обработки его сообщения. Может использоваться для передачи результата.

Синхронные сообщения обозначаются при помощи сплошной линии с закрашенным треугольником на конце, асинхронные – сплошной линией со стрелкой на конце, а ответные –пунктирной линией со стрелкой на конце (рис. 66).

Рис. 66. Типы сообщений

Каждое сообщение кроме ответных сообщений имеет имя и, при необходимости, параметры. Имена сообщений должны содержать глаголы в повелительном наклонении и отражать те действия, которые должны быть выполнены в ответ на сообщение (рис. 67).

Рис. 67. Имена и параметры сообщений

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

Рис. 68. Повторяющиеся сообщения

При анализе взаимодействия между объектами нередко встречается такая ситуация, когда некоторое сообщение отправляется несколько раз, причем обычно заранее неизвестно сколько. Для отражения такой ситуации на диаграммах последовательностей используется символ «*» перед именем сообщения, который означает, что сообщение может быть отправлено ноль, один или более раз (рис. 68).

Если требуется изобразить на диаграмме последовательностей сразу два или более сценариев, которые отличаются только некоторыми шагами, то для этого можно использовать условные сообщения – сообщения, которые отправляются только при выполнении определенного условия. Условие отправки на диаграмме записывается перед именем сообщения в квадратных скобках и может быть сформулировано в произвольной форме (рис. 69).

Рис. 69. Условные сообщения

Чаще всего условные сообщения встречаются в тех случаях, когда в зависимости от некоторого условия отправляется либо одно, либо другое (или одно из нескольких) сообщение. Такие сообщения называются альтернативными и изображаются на диаграмме при помощи условных сообщений, начала которых соединены (см. рис. 70).

Строго говоря, на рис. 70 изображены два параллельных сообщения с взаимоисключающими условиями отправки. Параллельность сообщений означает, что порядок их отправки неважен, в том числе допускается их одновременная отправка, что и иллюстрируется совмещенным началом соответствующих стрелок на диаграмме.

Рис. 70. Альтернативные сообщения

Описание системных операций

Каждому системному сообщению соответствует системная операция. Функциональность системы определяется набором системных операций. Прежде чем приступать к реализации системы (или ее части), необходимо определить все системные операции. Для этого можно использовать описания системных операций.

Определение. Описание системной операции – это документ, описывающий предполагаемые результаты ее выполнения; он составляется в декларативной форме и акцентирует внимание на том, что должно произойти, а не на том, как этого достичь.

В UML не определяется стандарта для описания системных операций. На практике рекомендуется использовать шаблон со следующими полями:

  • имя – имя системной операции;

  • обязанности – краткое описание того, за что отвечает данная системная операция;

  • ссылки – прецеденты, в которых используется данная системная операция;

  • примечание – комментарии, замечания о реализации и т.д.;

  • исключения – возможные исключительные ситуации и реакции на них;

  • предусловия – условия, которые должны быть выполнены перед началом операции;

  • постусловия – описание изменений в системе, которые должны произойти после выполнения системной операции.

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

Рис. 71. Концептуальная модель продажи

Рассмотрим описание системных операций на примере операции «ввестиТоварнуюПозицию». Пусть данная операция используется в прецеденте «Продажа товара» для некоторой системы розничной торговли. На рис. 71 приведена часть концептуальной модели, которая понадобится для описания.

Имя: ввестиТоварнуюПозицию(код, количество)

Обязанности: Добавить товарную позицию к текущей продаже.

Ссылки: Прецедент «ПокупкаТовара»

Примечание: Использовать самый быстрый доступ к БД.

Исключения: Если код товара не известен, то запросить повторный ввод.

Предусловия: нет

Постусловия:

  • Для новой продажи создан объект :Продажа (создание экземпляра).

  • Для новой продажи объект :Продажа связан с объектом :СистРознТорговли (формирование связи).

  • Создан объект :ТоварнаяПозиция (создание экземпляра).

  • Объект :ТоварнаяПозиция связан с объектом :Продажа (формирование связи).

  • Атрибут :ТоварнаяПозиция.Кол-во принял значение «количество» (модификация атрибута).

  • Объект :ТоврнаяПозиция связан с объектом :ОписаниеТовара на основе соответствия кода товара (формирование связи).

На этапе анализа нет необходимости генерировать полный и точный набор постусловий. Некоторые интересные детали прояснятся на этапе проектирования. Новые открытия инициируют новые итерации. Это одно из преимуществ итеративной разработки.

Наиболее типичной ошибкой при описании системных операций является невключение формирования связей в число постусловий операции. Установка связей играет особо важную роль при создании новых экземпляров.

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

Вопросы для самоконтроля

  1. В чем разница между системным сообщением и системной операцией? Что общего между ними?

  2. В чем заключается принцип «черного ящика»?

  3. Какие виды сообщений бывают и чем они различаются?

Задания для самостоятельной работы

  1. Постройте концептуальную модель диаграммы последовательностей.

  2. Постройте диаграммы последовательностей для учебного задания. При необходимости опишите системные операции.