Рекомендуемое содержание пункта «Создание диаграммы последовательности». В этом пункте пояснительной записки приводится и описывается последовательность действий по созданию диаграммы последовательности для одного из прецедентов информационной подсистемы (см. лабораторное занятие «Построение диаграмм последовательности (Sequencediagram)»). Выбор рассматриваемого прецедента должен быть обоснован ранее во втором разделе пояснительной записки.
Диаграмма последовательности – одна из видов диаграмм взаимодействия.
Диаграммы взаимодействия (interactiondiagrams) описывают поведение взаимодействующих групп объектов.
Как правило, диаграмма взаимодействия охватывает поведение объектов в рамках только одного варианта использования. На такой диаграмме отображается ряд объектов и те сообщения, которыми они обмениваются между собой.
Сообщение (message) - средство, с помощью которого объект-отправитель запрашивает у объекта-получателя выполнение одной из его операций.
Информационное (informative) сообщение –сообщение, снабжающее объект-получатель информацией для обновления его состояния.
Сообщение-запрос (interrogative) - сообщение, запрашивающее выдачу информации об объекте-получателе.
Императивное (imperative) сообщение –сообщение, запрашивающее у объекта-получателя выполнение действий.
Существуют два вида диаграмм взаимодействия: диаграммы последовательности (sequencediagrams) и кооперативные диаграммы (collaborationdiagrams).
Диаграммы последовательности. Диаграммы последовательности отражают поток событий, происходящих в рамках варианта использования. Например, вариант использования «Снять деньги со счета» предусматривает несколько возможных последовательностей, таких как снятие денег, попытка снять деньги, не имея их достаточного количества на счете, попытка снять деньги по неправильномуPIN-коду и некоторых других. Нормальный сценарий снятия некоторой суммы денег со счета показан на рисунке 2.5. Под сценарием понимается конкретный экземпляр потока событий.
Рисунок 2.5 – Диаграмма последовательности
Эта диаграмма последовательности отображает поток событий в рамках варианта использования «Снять деньги со счета». Все действующие лица показаны в верхней части диаграммы; в приведенном выше примере изображено действующее лицо Клиент (Customer). Объекты, требуемые системе для выполнения варианта использования «Снять деньги со счета», также представлены в верхней части диаграммы. Стрелки соответствуют сообщениям, передаваемым между действующим лицом и объектом или между объектами для выполнения требуемых функций.
На диаграмме последовательности объект изображается в виде прямоугольника на вершине пунктирной вертикальной линии. Эта вертикальная линия называется линией жизни (lifeline)объекта. Она представляет собой фрагмент жизненного цикла объекта в процессе взаимодействия.
Каждое сообщение изображается в виде стрелки между линиями жизни двух объектов. Сообщения появляются в том порядке, как они показаны на странице, сверху вниз. Каждое сообщение помечается как минимум именем сообщения; при желании можно добавить также аргументы и некоторую управляющую информацию и, кроме того, показать самоделегирование (self-delegation) – сообщение, которое объект посылает самому себе, при этом стрелка сообщения указывает на ту же самую линию жизни.
Хороший способ первоначального обнаружения некоторых объектов – это изучение имен существительных в потоке событий. Можно также прочитать документы, описывающие конкретный сценарий. Поток событий для варианта использования «Снять деньги со счета» говорит о человеке, снимающем некоторую сумму денег со счета с помощью банкомата.
Не все объекты, показанные на диаграмме, явно присутствуют в потоке событий. Там, например, может не быть форм для заполнения, но их необходимо показать на диаграмме, чтобы позволить действующему лицу ввести новую информацию в систему или просмотреть ее. В потоке событий, скорее всего, также не будет и управляющих объектов (controlobjects). Эти объекты управляют последовательностью событий в варианте использования.