Діаграма послідовності (Sequence Diagram), Блог Java програміста

Нотатки про програмування на Java та Scala, а також про UML, Android та не тільки…

@author: Віталій Лігай (Java EE Architect/Android Developer)

Діаграма послідовності (Sequence Diagram)

Діаграма послідовності (Sequence Diagram)

Отже, пропоную розглянути просту діаграму послідовності. Візьмемо банальний приклад:

diagram

Ця діаграма показує як приготувати яєчню. Коли ми дивимося на таку діаграму послідовності, ми відразу розуміємо що: - потрібно не забути включити плиту - перед смаженням потрібно добре розігріти масло - першим потрібно покласти масло, а потім яйця, а не навпаки. -соль можна додатиасинхронно, в процесі смаження. Розберемо кожен елемент діаграми, окремо:

1. Об'єкт, Учасник (Object, Participant) Позначається прямокутником, у якому вказується інформація про учасника дій. Це, як правило, назва об'єкта та його клас, розділені двокрапкою. Наприклад:saveButton абоsaveButton:JButton або:JButton Тобто. за великим рахунком назву класу можна опустити або навпаки не вказувати назву об'єкта, але щось одне з двох (об'єкт або клас) слід вказати, а то залишиться щось зовсім анонімне. Якщо ім'я об'єкта не вказано, двокрапка перед назвою класу обов'язкова! У старій нотації (до UML 2.0) потрібно ще й підкреслювати. Приблизно ось так: oldButton:JButton Розташовуються об'єкти (як правило) вздовж верхнього краю діаграми. Від прямокутника вниз спускаєтьсяЛінія Життя.

2. Лінія життя (Life Line) Лінія, що йде вниз від учасника, що означає відведений об'єкту час життя. Позначається пунктирною лінією.

3. Активація, фрагмент виконання (Activation Bar, Execution Occurances) Позначається вузьким прямокутником (сірого або білого кольору), розташованим на лінії життя. Вказує початок та завершення дії, в якій бере участь об'єкт. Оскільки лінія життя - це метафора часу, то прямокутник на лінії життя вказує на активізацію об'єкта в часі.

4. Повідомлення, Стимул (Message, Stimulus) Стрілка від одного життя до іншого. Показує взаємодію об'єктів. Дуже легко запам'ятати так: Стимул - це латинське слово, древні римляни так називали загострений ціпок, яким гнали худобу. Так ось, стимул в UML позначається такою гострою ціпком. Стимули бувають різні, відрізняються наконечником. Синхронне повідомлення позначається зафарбованою стрілкою, асинхронне - незафарбованою. У нотації до 2.0 асинхронні повідомлення позначалися "спиляним" знизу наконечником стрілки. Повернення показується пунктирною стрілкою, у зворотному напрямку.

5. Знищення об'єкта позначається діагональним хрестом на лінії життя. Позначає кінець життя об'єкта.

UML чудовий тим, що в ньому можна забити багато чого не позначати деталі. Дуже багато позначень є необов'язковими, опціональними. Тобто. ми не повинні описувати взаємодію всіх-всіх об'єктів, які задіяні у варіанті використання. Понад те, це небажано. Оскільки головна мета - це зрозуміти і домовитися, що відбуватиметься у якомусь конкретному випадку. Ми можемо опустити не дуже необхідні нам об'єкти, які несуть допоміжну функцію. Якщо ви з колегами знаєте, що - потрібно записувати в лог - закривати потоки - перевіряти вхідні аргументи - обробляти винятки - здійснювати інші дії,які "маються на увазі" до виконання у вашому процесі розробки і вивже про них знаєте. Тоді ви можете не описувати всі об'єкти, а описати головне. Звичайно, якщо ви хочете спеціально акцентувати увагу, наприклад, на веденні логів або розглядаєте кейс "вилов та обробка винятків", то тоді ці об'єкти стають з допоміжних головними, і їх необхідно позначати на діаграмі. Але навіть у цьому випадку, вам не слід захаращувати діаграму зайвими об'єктами. Адже, якщо завалити діаграму всіма об'єктами, то з нею неможливо буде працювати. Наприклад, якщо повертатися до приготування яєчні. У тому випадку, якщо ми включимо в діаграму такі об'єкти як: нагрівальний елемент плити, регулятор температури, ручка сковорідки, прихватка, маслянка, холодильник, в якому зберігаються яйця, інструмент для відрізання шматочка олії, інструмент для перенесення шматочка олії в сковорідку , предмет для розбивання яєць, відро для сміття, механізм регулюючий кількість висипаної солі, лопатка, рука ліва, рука права і, нарешті, голова, то діаграма стане набагато менш зрозумілою, що погано.

Список літератури

Мартін Фаулер. UML. Основи. Короткий посібник зі стандартної мови об'єктного моделювання

IMHO: Можливо найкраща книжка з UML.

UML за вихідні! З плюсів – легко читається і зручна структура, з мінусів – немає українською.