Diagram Sekwencji w Analizie Biznesowej

Jednym z typów diagramów, używanych w Analizie Biznesowej i wspomnianym w artykule o modelowaniu, jest Diagram Sekwencji. Jest to jeden z typów diagramów zdefiniowanych w notacji UML. Często Diagram Sekwencji uważany jest za bardzo „techniczny” i „implementacyjny”, a zatem przeznaczony głównie dla architektów oprogramowania, developerów itd. Czy jest zatem użyteczny w Analizie Biznesowej i to w kontakcie z „biznesowymi” interesariuszami? Oczywiście, że tak. Warunkiem jest zastosowanie odpowiedniego poziomu abstrakcji, czyli modelowanie na poziomie konceptualnym.

Oczywiście Diagram Sekwencji ma bardzo bogatą bibliotekę elementów. Daje to zaawansowanym użytkownikom możliwość modelowania skomplikowanych interakcji. Nic jednak nie stoi na przeszkodzie, aby używać jedynie podzbioru elementów jakie oferuje nam notacja UML i na tymże podzbiorze prostych do zrozumienia elementów budować diagramy wykorzystywane w kontakcie z „biznesem”.

Bazowe elementy Diagramu Sekwencji

Co zatem możemy przedstawić na Diagramie Sekwencji na poziomie konceptualnym? Przede wszystkim uczestników interakcji i wymieniane pomiędzy nimi komunikaty. Przyjrzyjmy się bliżej dostępnym elementom:

  • Linia życia (ang. Lifeline) – reprezentuje uczesników interakcji, wymieniajacych między sobą komunikaty
  • Boks aktywacji (ang. Activation Box) – wskazuje, czas w którym poszczególni uczestnicy interakcji są aktywni (czas wykonywania operacji, przetwarzania danych)
  • Wiadomość (ang. Message) – komunikat przesyłany pomiędzy uczestnikami interakcji (występują wiadomości synchroniczne (ang. Synchronous Message) i asynchroniczne (Asynchronous Message)

Wiadomości synchroniczne i asynchroniczne

Wiadomość synchroniczna różni się od asynchronicznej tym, że wysyłając ją, uczestnik interakcji przekazuje kontrolę nad procesem, tzn, nie może nic zrobić, do momentu otrzymania wiadomości zwrotnej. Przykładem może być przesłanie zapytania o niezbędne dane. Wysyłając zapytanie o dane niezbędne do dalszego przetwarzania, obiekt wstrzymuje aktywność (musi to zrobić), aż do momentu otrzymania odpowiedzi zwrotnej. Oznacza to, że kontrolę nad procesem przejmuje obiekt, do którego przesłano zapytanie. To on decyduje, kiedy odeśle odpowiedź.

Inna sytuacja ma miejsce w przypadku wiadomości asynchronicznej. Obiekt ją wysyłający nie musi oczekiwać na odpowiedź i może kontynuować dalsze operacje. Przykładem może być powiadomienie innego uczestnika interakcji o zaistniałym fakcie, bez konieczności oczekiwania na reakcję informowanego.

Kolejność przesyłania wiadomości

Diagram prezentuję chronologię przesyłanych wiadomości. Chronologia ta reprezentowana jest przez kolejność wiadomości, od góry do dołu. Wiadomości przesyłane wcześniej są umieszczone wyżej, analogicznie te wysyłane później, są umieszczone niżej.

Do czego używać diagramów sekwencji?

Diagram Sekwencji skupia się na interakcji. Pozwala graficznie zobrazować jej uczestników, przesyłane wiadomości (w porządku chronologicznym), czas w jakim poszczególni uczestnicy są aktywni oraz pozwala przedstawić opisaną wyżej różnicę w wiadomościach synchronicznych i asynchronicznych.

Nadaje się więc świetnie do graficznego przedstawiania i doprecyzowywania Przypadków Użycia, również opisujących interakcję. Diagram Sekwencji, pozwala na ich graficzne przedstawienie w łatwiejszej do zrozumienia formie, walidację poczynionych założeń, znalezienie ewentualnych błędów i możliwych optymalizacji oraz ogólnie mówiąc skorzystanie z wszystkich zalet modelowania opisanych we wcześniejszym artykule.

Przykład Diagramu Sekwencji

Poniżej prezentuję Diagram Sekwencji na poziomie konceptualnym, przydatnym w kontakcie ze wspomnianymi wyżej interesariuszami „biznesowymi”. Posłużę się ulubionym w IT przykładem, a jakże, bankomatem. Oczywiście jest to uproszczony przykład, służący prezentacji użycia diagramu, nie odzwierciedlający rzeczywistego przypadku użycia.

Diagram Sekwencji

Używając takiego diagramu możemy przekazać następujące informacje:

W interakcji bierze udział 4 uczestników (reprezentowanych za pomocą „Linii życia”): Klient, Bankomat, Bank, Usługa wysyłania SMS. Widzimy, kiedy poszczególni uczestnicy procesu są aktywni.

Interakcja rozpoczyna się od przesłania wiadomości od Klienta do Bankomatu. Wiadomość ta zawiera kwotę. Jest to wiadomość synchroniczna, a więc Klient przekazuje kontrolę nad procesem do Bankomatu i nie może nic zrobić do momentu otrzymania od Bankomatu informacji zwrotnej.

Dalej Bankomat przekazuje wiadomość do Banku. Wiadomość zawiera kwotę. Również jest to wiadomość synchroniczna, a więc Bankomat oczekuje na informację zwrotną z Banku.

Bank przesyła odpowiedź zwrotną do Bankomatu, po czym Bankomat przekazuje odpowiedź zwrotną do Klienta. Widzimy tutaj mechanizm działania wiadomości synchronicznych, wymagających oczekiwania na odpowiedź przed podjęciem dalszego działania.

Niezależnie od przesłania odpowiedzi na wiadomość otrzymaną z Bankomatu, Bank wysyła również wiadomość do Usługi wysyłania SMS zawierającą szczegóły operacji. Jest to wiadomość asynchroniczna, a więc Bank nie musi oczekiwać na odpowiedź i może kontynuować proces.

Na diagramie widzimy również kiedy poszczególni uczestnicy procesu są aktywni. Widzimy, że Klient jest aktywny przez cały czas trwania interakcji, od wysłania pierwszej wiadomości, do otrzymania informacji zwrotnej. Usługa wysyłania SMS jest aktywowana w momencie otrzymania wiadomości z Banku. Niedługo późnej przestaje być aktywna.

Moje rekomendacje

  • Używaj Diagramu Sekwencji celu doprecyzowania i walidacji opisanych Przypadków Użycia
  • Zapoznaj się ze szczegółami notacji UML dotyczącymi Diagramu Sekwencji
  • Dopasowuj stopień skomplikowania oraz stopień abstrakcji diagramu do odbiorców
  • Zacznij od używania prostych elementów notacji, jeśli interesariusze poczują się z nimi komfortowo, wprowadź te bardziej zaawansowane

Źródła

A Guide to the Business Analysis Body of Knowledge® (BABOK® Guide). Version 3. 2015.

Diagram wykonany przy użyciu: Gliffy