Стереотипы сообщений

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

“саll” (вызвать) — сообщение, требующее вызова операции или процедуры принимающего объекта. Если сообщение с этим стереотипом рефлексивное, то оно инициирует локальный вызов операции у самого пославшего это сообщение объекта;

“return” (возвратить) — сообщение, возвращающее значение выполненной операции или процедуры вызвавшему ее объекту. Значение результата может инициировать ветвление потока управления;

“сreate” (создать) — сообщение, требующее создания другого объекта для выполнения определенных действий. Созданный объект может получить фокус управления, а может и не получить его;

“destroy” (уничтожить) — сообщение с явным требованием уничтожить соответствующий объект. Посылается в том случае, когда необходимо прекратить нежелательные действия со стороны существующего в системе объекта, либо когда объект больше не нужен и должен освободить задействованные им системные ресурсы;

“send” (послать) — обозначает посылку другому объекту некоторого сигнала, который асинхронно инициируется одним объектом и принимается (перехватывается) другим. Отличие сигнала от сообщения заключается в том, что сигнал должен быть явно описан в том классе, объект которого инициирует его передачу.

Ниже представлена диаграмма последовательности для рассмотренного выше случая ветвления, дополненная стереотипными значениями (рис. 8.7).

Кроме стереотипов, сообщения могут иметь собственное обозначение операции, вызов которой они инициируют у принимающего объекта. В этом случае рядом со стрелкой записывается имя операции с круглыми скобками, в которых могут указываться параметры или аргументы соответствующей операции. Если параметры отсутствуют, то скобки все равно должны присутствовать после имени операции. Примерами таких операций могут служить следующие: “выдать клиенту наличными сумму (n)”, “установить соединение между абонентами (а, b)”, “сделать вводимый текст невидимым()”, “подать звуковой сигнал тревоги ()”.

Примечание

Согласно принятой в языке UML системе обозначений такие имена операций
записываются на английском с малой буквы и одним словом, возможно, со-
стоящим из нескольких сокращенных слов, написанных без пробела и без ка-
вычек. Если нет никаких дополнительных ограничений со стороны инструмен-
тальных средств визуализации канонических диаграмм, то дело вкуса отечест-
венного разработчика, какие обозначения ему использовать в русскоязычной
транслитерации. Возможно, для этой цели больше подходит вариант с нижней
черточкой, исключающей пробелы в имени операции: "сделать_вводимый_текст_
невидимым()", чем вариант с заглавными буквами в середине имени операции:
"сделатьВводимыйТекстНевидимым()".