Діаграма послідовності (англ. sequence diagram) — різновид діаграми в UML. Діаграма послідовності відображає взаємодії об'єктів впорядкованих за часом. Зокрема, такі діаграми відображають задіяні об'єкти та послідовність надісланих повідомлень[1].

Проста діаграма послідовності відвідування ресторану.
Проста діаграма послідовності відвідування ресторану.

Огляд ред.

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

 
Діаграма послідовності для операції копіювання і вставлення

Визначені стандартом UML 2.0 діаграми послідовностей мають ті ж можливості, що і визначені стандартом UML 1.x, і підтримують додаткові можливості зміни стандартного порядку повідомлень.

Основні елементи діаграми послідовності ред.

На діаграмі послідовності паралельними вертикальними лініями ("лініями життя" - англ. lifelines) показано різні процеси або об'єкти, які існують одночасно, а горизонтальними стрілками - повідомлення, якими вони обмінюються між собою, у порядку їх виникнення. Це дозволяє специфікувати прості сценарії виконання у графічній формі.

Діаграма послідовності системи повинна визначати і показувати наступне:

  • Зовнішні актори
  • Повідомлення (методи), що викликаються цими акторами
  • Значення, що повертаються (якщо такі є), пов'язані з попередніми повідомленнями
  • Вказівка на будь-які цикли або області ітерацій

Системне використання діаграми послідовності ред.

 

Фахівці, розробляючи проект, часто використовують діаграми послідовності роботи системи, щоб проілюструвати, як виконуються певні завдання між користувачами та системою. Ці завдання можуть включати повторювані, прості або складні завдання.

Мета полягає в тому, щоб проілюструвати варіант використання у візуальному форматі.

Для того, щоб побудувати діаграму послідовності дій системи, потрібно бути знайомим з уніфікованою мовою моделювання (UML). Ці моделі показують логіку дій акторів (людей, які впливають на систему) і системи при виконанні завдання.

Читання діаграми послідовності починається зверху з актора (акторів) або системи (систем) (яка знаходиться у верхній частині сторінки). Під кожним актором або системою є довгі пунктирні лінії, які називаються лініями життя, що приєднані до них. Дії виконуються за допомогою ліній, які простягаються між цими лініями. Коли лінія дії з'єднана з лінією життя, вона показує взаємодію між актором або системою.

Повідомлення часто з'являються вгорі або внизу діаграми послідовності системи, щоб детально проілюструвати дію. Наприклад, актор може попросити увійти в систему, це буде представлено логіном (ім'ям користувача, паролем). Після виконання кожної дії відповідь або наступна дія знаходиться під попередньою. Читаючи далі, ви побачите в деталях, як виконуються певні дії в наданій моделі, і в якому порядку.

Структурні блоки діаграми послідовності ред.

Якщо лінія життя - це лінія життя об'єкта, вона демонструє роль. Якщо залишити ім'я об'єкта порожнім, можна зобразити анонімні та безіменні об'єкти.

Повідомлення, написані горизонтальними стрілками з назвою повідомлення над ними, відображають взаємодію. Суцільні стрілки позначають синхронні виклики, відкриті стрілки позначають асинхронні повідомлення, а пунктирні лінії позначають повідомлення-відповіді. Якщо абонент надсилає синхронне повідомлення, він повинен зачекати, поки повідомлення не буде виконано, наприклад, виклик підпрограми. Якщо абонент надсилає асинхронне повідомлення, він може продовжити обробку і не чекати на відповідь. Асинхронні виклики присутні у багатопотокових програмах, програмах, керованих подіями, та у проміжному програмному забезпеченні, орієнтованому на повідомлення. Поля активації або поля виклику методів - це непрозорі прямокутники, намальовані поверх ліній життя, щоб показати, що процеси виконуються у відповідь на повідомлення (ExecutionSpecifications в UML).

Об'єкти, які самі викликають методи, використовують повідомлення і додають нові поля активації поверх будь-яких інших, щоб вказати наступний рівень обробки. Якщо об'єкт знищується (видаляється з пам'яті), внизу лінії життя малюється хрестик, а пунктирна лінія перестає малюватися під ним. Це має бути результатом повідомлення, або від самого об'єкта, або від іншого.

Повідомлення, надіслане ззовні діаграми, може бути представлене повідомленням, що походить від заповненого кола (знайдене повідомлення в UML; англ. found message) або від межі діаграми послідовності ("ворота" в UML; англ. gate).

UML внесла значні покращення в можливості діаграм послідовності. Більшість з цих удосконалень ґрунтується на ідеї фрагментів взаємодії, які представляють собою менші фрагменти взаємодії, що охоплює взаємодію. Кілька фрагментів взаємодії об'єднуються для створення різноманітних комбінованих фрагментів, які потім використовуються для моделювання взаємодій, що включають паралелізм, умовні розгалуження, необов'язкові взаємодії.

Див. також ред.

Джерела ред.

  • Benedikt Bollig (2006). 7. Message Sequence Charts. Formal Models of Communicating Systems. Springer. ISBN 978-3-540-32922-0.

Примітки ред.

  1. James Rumbaugh, Ivar Jacobson, Grady Booch (1999). The unified modeling language reference manual (англ.) . Addison Wesley Longman Inc. ISBN 0-201-30998-X.