Сообщение, как основной элемент диаграмм.
Понятие диаграмм взаимодействия.
Диаграммы взаимодействия предназначены для моделирования поведения путем описания взаимодействия объектов для выполнения некоторой задачи или достижения определенной цели. Взаимодействие происходит путем обмена сообщениями.
Основные формы диаграмм взаимодействия.
Диаграммы взаимодействия изображаются в нескольких различных графических формах, из которых самыми важными являются диаграммы последовательности и диаграммы коммуникации. Наряду с этими основными формами описания взаимодействия в UML 2 применяются диаграммы синхронизации и обзорные диаграммы взаимодействия.
Диаграммы последовательности и диаграммы коммуникации семантически эквиваленты, хотя графически выглядят совсем по-разному. Семантически эти диаграммы эквиваленты потому, что описывают одно и то же: последовательность передачи сообщений между объектами в процессе их взаимодействия. А выглядят по-разному они потому, что в диаграмме последовательности графически подчеркивается упорядоченность во времени передаваемых сообщений, в то время как в диаграмме коммуникации на передний план выдвигается структура связей между объектами, по которым передаются сообщения. Сразу подчеркнем главное: оба типа диаграмм моделируют поведение "по индукции", от частного к общему, путем описания конкретного протокола передачи сообщений. В этом и сила и слабость данного способа описания поведения. Сильная сторона состоит в том, что в объектно-ориентированной парадигме обмен сообщениями — это и есть само выполнение программы, поэтому протокол передачи сообщений является наиболее точной моделью поведения. Диаграммы взаимодействия находятся "ближе" к реальному выполнению программы, чем другие средства описания поведения. Слабость диаграмм взаимодействия состоит в том, что эти диаграммы описывают поведение на уровне экземпляров, а не классификаторов; на уровне протоколов выполнения алгоритма, а не самого алгоритма. Диаграммы взаимодействия менее "алгоритмичны", чем диаграммы автомата и диаграммы деятельности. Наряду с основными сущностями и отношениями на диаграммах последовательности и коммуникации применяется множество дополнительных элементов семантики и нотации. Основным элементом этих диаграмм является сообщение.
Сообщение, как основной элемент диаграмм.
Сообщение (message) – это передача управления и данных от одного объекта (отправителя) к другому (получателю).
Отправка сообщения является действием, а получение сообщения – событием. В UML 1 следующие действия связаны с передачей информации и отправкой сообщений:
· вызов метода (call);
· создание объекта (create);
· уничтожение объекта (destroy);
· возврат значения (return);
· посылка сигнала (send).
Действие записывается в виде текста над (или рядом со) стрелкой, символизирующей сообщение. Если действие имеет параметры (вызов метода, создание объекта, посылка сигнала), то аргументы, соответствующие параметрам по числу и типам, записываются справа от имени действия в круглых скобках. Синтаксис вызова метода имеют различия в UML 1 и в UML 2. Если действием является вызов метода, возвращающего значения, то в UML 1 слева от имени метода записывается список переменных для возвращаемых значений (их может быть несколько) и знак присваивания =. 29 Таким образом, та часть нотации сообщений, которая относится к выполняемому действию по вызову метода, в UML 1 имеет следующий синтаксис.
Переменные : = ИМЯ ( аргументы )
В UML 2 используется несколько иной синтаксис:
Атрибуты = ИМЯ ( аргументы ) : переменные
Поскольку получение сообщения является событием, то получатель сообщения вместе с информацией получает и управление (для того, чтобы иметь возможность выполнить действия, инициируемые полученным сообщением). В UML различается несколько типов передачи управления с помощью сообщения. Чтобы отличить тип передачи сообщения, в UML применяется специальная графическая нотация, а именно, различаются виды стрелок, которыми обозначаются сообщения. Хотя на диаграммах коммуникации и последовательности сообщения обозначаются различным образом, принципы изображения одинаковы и перечислены в Таблице 1.
Таблица 1. Типы передачи сообщений.
Для того чтобы сообщение могло быть передано от отправителя к получателю, отправитель должен "знать" получателя, т.е., например, должна существовать ассоциация между классификаторами отправителя и получателя, экземпляр которой (связь) и служит тем путем, по которому передается сообщение. На диаграмме коммуникации эта связь всегда изображается в явном виде, как линия, а на диаграмме последовательности она подразумевается как часть самой стрелки сообщения. Однако поведение определяется не только и не столько тем, какие объекты посылают какие сообщения, но прежде всего тем, в каком порядке это происходит. UML позволяет определить относительный порядок сообщений во взаимодействии, причем это делается несколькими различными способами. На диаграмме последовательности порядок сообщений определяется временем их отправки, а время отсчитывается на диаграмме сверху вниз. Таким образом, сообщения, изображенные выше, предшествуют сообщениям, изображенным ниже. Порядок можно задать с помощью последовательного номера сообщения. Данные номера уникальны и обладают тем свойством, что сообщения с меньшими номерами, предшествуют сообщениям с большими. Таким образом, сообщение может быть довольно сложной синтаксической конструкцией. Сразу отметим, что абсолютно все возможные части описания сообщения, как правило, нет нужды использовать — обязательным является только имя. Общий синтаксис текста описания сообщения следующий.
предшественники / повторность номер : атрибуты = ИМЯ ( аргументы ) : переменные