Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Общепринятые операторы для фреймов взаимодействия



Оператор Значение
alt Несколько альтернативных (alternative) фрагментов; выполняется только тот фрагмент, условие которого истинно
opt Необязательный (optional) фрагмент; выполняется, только если условие истинно
par Параллельный (parallel); все фрагменты выполняются параллельно
loop Цикл (loop); фрагмент может выполняться несколько раз, а защита обозначает тело операции
region Критическая область (critical region); фрагмент может иметь только один поток, выполняющийся за один прием
neg Отрицательный (negative) фрагмент; обозначает неверное взаимодействие
ref Ссылка (reference); ссылается на взаимодействие, определенное на другой диаграмме последовательности. Фрейм рисуется, чтобы охватить линии жизни, вовлеченные во взаимодействие. Можно определять параметры и возвращать значение
sd Диаграмма последовательности (sequence diagram); используется для очерчивания всей диаграммы последовательности, если это необходимо

 

Стандарт UML не представляет графических средств для обозначения передаваемых данных; вместо этого они показываются с помощью параметров в имени сообщения и на стрелках возврата.

 

Синхронные и асинхронные вызовы

В UML 2.0 закрашенные стрелки показывают синхронное сообщение, а простые – обозначают асинхронное сообщение (см. рис. 6.12).

Если вызывающий объект посылает синхронное сообщение (synchronous message), то он должен ждать, пока обработка сообщения не будет закончена, например, при вызове подпрограммы. В случае асинхронного сообщения вызывающий объект может продолжать работу, не дожидаясь ответа. Асинхронные вызовы можно встретить в многопоточных приложениях и в промежуточном программном обеспечении, ориентированном на сообщения. Асинхронность улучшает способность к реагированию и уменьшает количество временных соединений, но сложнее в отладке.

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

Для анализа поведения одного объекта в нескольких вариантах использования следует применять диаграмму состояния. Если же надо изучить поведение нескольких объектов в нескольких вариантах использования или потоках управления, следует использовать диаграмму деятельности.

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

Другим полезным видом диаграмм взаимодействия являются коммуникационные диаграммы, которые показывают соединения, и временные диаграммы, показывающие временные интервалы.

 

Коммуникационные диаграммы

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

Основными символами в диаграммах являются прямоугольник, называемый классификатором роли, и линия, обозначающая сообщение и называемая связь. Классификатор роли представляет объект. Связи представляют взаимодействие объектов, а стрелки с клиентами обозначают сообщения, а также указывают отправителя и получателя. На рис. 6.14 представлена диаграмма последовательности, показанная на рис. 6.11, но преобразованная в коммуникационную диаграмму.

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

Коммуникационные диаграммы не предусмотрены для использования фреймов взаимодействия, в результате чего они не передают такого количества информации, как диаграммы последовательности. Коммуникационные диаграммы имеют другие общие элементы, такие как примечания, ограничения и стереотипы. Эти элементы используются таким же образом, как и в диаграммах последовательности. Коммуникационные диаграммы не имеют точно определенных нотаций для управляющей логики. Они допускают применение маркеров итерации (UML 1.0) и защиты, но не позволяют полностью определить алгоритм управления. Не существует также специальных обозначений для создания и удаления объектов, но ключевые слова “ сreate” и “delete соответствуют общепринятым соглашениям.

 

 

Рис. 6.14. Коммуникационная диаграмма для функции поиска вакансий работ на сайте jobs.com

 

 

Временные диаграммы

Язык UML определяет временные диаграммы в качестве своих стандартных диаграмм. Временные диаграммы – это еще одна форма диаграмм взаимодействия, которая акцентирована на временных ограничениях: либо для одиночного объекта, либо, что более полезно, для группы объектов.

Рассмотрим простой сценарий, основанный на использовании насоса (Pump) и нагревательного элемента (Hotplate) в кофеварке (Coffee pot). Представим себе правило, которое гласит, что между включением насоса и включением нагревательного элемента должно пройти, по крайней мере, 10 секунд. Когда емкость с водой становится пустой (WaterEmpty), насос выключается, а нагревательный элемент не может оставаться включенным более 15 минут.

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

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

 

Рис 6.15. Временная диаграмма, на которой состояния представлены в виде линий

 

Рис. 6.16. Временная диаграмма, на которой состояния представлены

в виде областей

 

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


Поделиться:



Последнее изменение этой страницы: 2017-05-11; Просмотров: 573; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.019 с.)
Главная | Случайная страница | Обратная связь