Создание заметок о взаимодействиях

Чтобы описать последовательность более подробно, можно разместить Комментарий в любом месте схемы.

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

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

Используйте комментарий в следующих целях.

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

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

· Описать обязанности каждой линии жизни. Прикрепить комментарий к линии жизни. Пример. "Менеджер по обработке заказов собирает сведения о выбранных клиентом пунктах меню".

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

· В качестве более формальной альтернативы этого вида примечаний можно использовать фрагменты

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

Очень важно четко обозначить, что должно отображаться на схеме.

Инициирующее событие

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

· Пользователь, инициирующий вариант использования (например, открывающий веб-страницу для покупки еды).

· Сообщение от одного системного компонента другому, например, с запросом о доступности пунктов, которые желает приобрести клиент.

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

Уровень детализации

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

Линии жизни могут представлять один из уровней детализации.

· Объекты в существующем или разрабатываемом программном коде.

· Компоненты и их субкомпоненты, как правило, без видов, посредников и других соединительных механизмов.

· Система и внешние субъекты

Сообщения могут представлять один из уровней детализации.

· Программные сообщения в программном коде в API или веб-интерфейсе.

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

· Варианты использования — основные виды взаимодействий между пользователями и системой.

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

Описание вариантов

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

· Создать отдельные схемы последовательностей для описания этих сценариев.

· Использовать Описание структур управления с помощью фрагментов, чтобы показать циклы, альтернативные варианты и т. д.

Оценка конструкции

Схему можно использовать для оценки распределения задач между ее объектами или компонентами. Необходимо провести реструктуризацию, если наблюдаются следующие явления.

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

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

· Некоторые линии жизни выполняют несколько разных видов задач. Область ответственности каждой линии жизни должна описываться в одном кратком предложении. В этом предложении должны обобщаться сведения о том, что линия жизни делает в ответ на каждое получаемое сообщение.

Классы и линии жизни

Линии жизни на схемах последовательностей показывают экземпляры классов или интерфейсов компонентов. Существует два способа именования линии жизни.