SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Inżynieria oprogramowania
Wykład 8
UML:
diagram sekwencji
dr inż. Piotr Wrzeciono
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Diagramy sekwencji
Diagram sekwencji jest najprawdopodobniej jednym
z najwcześniej opracowanych schematów ogólnych. Jego
geneza wiąże się z wynalezieniem telefonu i potrzeby
opracowania jasnego opisu zestawiania i rozłączania
połączenia telefonicznego.
Ponieważ opis ten jest pewną sekwencją zdarzeń, wcześniej
wspomniany opis nazywa się również diagramem sekwencji.
Jednakże w odróżnieniu od diagramu UML, opis zestawiania
połączeń zawiera mniej możliwości opisu różnorodnych
sytuacji.
Zatem, w celu dobrego zrozumienia tego diagramu UML,
wrócimy teraz do analogowej telekomunikacji.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Sekwencja połączenia telekomunikacyjnego
W zestawianiu połączenia telefonicznego pojawiają się zwykle trzy
urządzenia: dwa telefony oraz centrala. Jednakże najbardziej
typowy układ, to dwa telefony i trzy centrale
Stary telefon
Stara centrala
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Konfiguracja zwykłej sieci telefonicznej
Do innej centrali Do innej centrali
Centrale lokalne
Centrala
międzystrefowa
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Sterowanie zestawianiem i rozłączaniem połączenia
System na schemacie jest w miarę prosty, gdyż taka sieć
umożliwia realizację połączeń pomiędzy różnymi centralami.
Jednakże wspomniana sieć nie będzie mogła pracować, gdy
nie opracuje się systemu sygnalizacji, zarówno pomiędzy
abonentami jak i centralami.
Dodatkowo trzeba opracować znacznie prostszy schemat
działania całości – diagram sekwencji połączenia.
W tym diagramie, zamiast rysunków przedstawiających
poszczególne elementy sieci, rysuje się pionowe proste linie,
a strzałki pomiędzy nimi reprezentują sekwencję.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Sygnalizacja jako określona sekwencja
Podstawową sprawą jest wybór telefonu innego rozmówcy
przez abonenta inicjującego połączenie.
Zatem, zaczynając od początku:
1.Abonent inicjujący musi podnieść słuchawkę i upewnić
się, że centrala działa.
2.Abonent wybiera numer
3.Abonent czeka na odpowiedź, czy można zestawić
połączenie czy jest to niemożliwe.
Oczywiście centrale muszą posiadać własne systemy
sygnalizacji.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Różne sekwencje dla różnych możliwych zdarzeń
Przyjmując na początek za wzór standard obowiązujący
w Polsce, mamy następującą sygnalizację na linii od centrali
do abonenta:
1.Podniesienie słuchawki przez abonenta – zmiana
rezystancji elektrycznej linii,
2.Wybranie numeru przez abonenta (dekadowe lub
tonowe)
3.Sygnał zwrotny informujący o zestawianiu połączenia
*)
,
4.Sygnał informujący o zestawieniu połączenia nazywany
zwrotnym sygnałem dzwonienia lub
5.Sygnał
informujący
o
niemożności
zestawienia
połączenia.
*)
W telefonii komórkowej zwrotny sygnał dzwonienia jest generowany
przez sam telefon, ale czasami można też usłyszeć sygnał pochodzący
z centrali (jest on cichszy)
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Różne sekwencje dla różnych możliwych zdarzeń
Jest oczywiście możliwa również sytuacja, gdy abonent
wywoływany nie może odebrać rozmowy – wówczas są
przyjęte dwa działania:
1.Po
określonym
czasie
oczekiwania,
centrala
automatycznie rozłącza połączenie, informując o tym
abonenta inicjującego połączenie za pomocą sygnału
zajętości.
2.Centrala czeka tak długo, aż abonent dzwoniący odłoży
słuchawkę.
Uwaga!!! Według prawa telekomunikacyjnego, w telefonii
stacjonarnej rozmowę zakończyć może tylko osoba
inicjująca połączenie!
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Różne sekwencje dla różnych możliwych zdarzeń
Sytuacja w przypadku niemożności zestawienia połączenia:
Są możliwe następujące zdarzenia:
1.Nie istnieje abonent o wybranym numerze (komunikat
z centrali do abonenta)
2.Abonent, którego numer został wybrany, jest czasowo
odłączony od sieci (na przykład nie odłożył słuchawki na
widełki lub nie zapłacił rachunków) – tutaj też stosowny
komunikat z centrali
3.Któraś z trzech central telefonicznych, wspomnianych na
początku przykładu, jest zablokowana i nie może
zestawić połączenia (sygnał zajętości).
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Pierwsze diagramy sekwencji - telekomunikacja
Jak przedstawiono wcześniej, istnieje wiele możliwych
sekwencji dla każdej z możliwej sytuacji. Jest to typowe
w telekomunikacji, gdzie każdemu zdarzeniu odpowiada
zazwyczaj jakaś sekwencja.
Celem
zobrazowania
danej
sekwencji
wymyślono
specyficzny diagram, w którym pojawiają się urządzenia,
sygnalizacja i wykonywane działania.
Diagram sekwencji w UML jest rozszerzeniem tego, co
zostało wymyślone przez inżynierów zajmujących się
telekomunikacją.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Diagram zestawiania połączenia (nr 1)
abonent
centrala
U
pły
w
c
za
su
Wybranie numeru
Sygnał ze
stawiania
połączen
ia
Zwrotn
y sygn
ał dzw
onieni
a
UWAGA!!
To nie jest
UML!!!
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Diagram zestawiania połączenia (nr 2)
Abonent A
Centrala 1
Centrala 2
Centrala 3
Abonent B
Wybranie
numeru
Syg
nał
ze
sta
wia
nia
poł
ącz
eni
a
Sprawdzanie
łącza
Sprawdzanie
łącza
Sprawdzanie
łącza
Wolne
łącze
Wolne
łącze
Wolne
łącze
Zwrotny
sygnał
dzwonie
nia
Sygnał
dzwonienia
Podnies
ienie
słuchaw
ki
Kanał
zestaw
iony
Kanał
zestawi
ony
Rozpoc
zęcie
rozmow
y
UWAGA!!
To nie jest
UML!!!
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Diagram telekomunikacyjny - podsumowanie
Ważną
zaletą
diagramu
telekomunikacyjnego
jest
wprowadzenie jednej osi czasu dla wszystkich sekwencji.
Oznacza to, że na wykresie można zaznaczyć poszczególne
kroki sekwencji wykonywanych przez wiele urządzeń w tym
samym momencie czasowym.
Natomiast zasadniczą wadą jest konieczność rysowania
diagramu dla każdego przypadku oddzielnie.
Na przykład diagram pozytywnego zestawienia połączenia
jest jeden, ale gdy nie można zestawić kanału, trzeba
rozrysować każdy przypadek oddzielnie. Zatem dla tego
przypadku uzyskujemy co najmniej 5 diagramów.
Diagram telekomunikacyjny stosuje się tylko w jednej
dziedzinie – sam z siebie nie jest ogólny.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
A gdyby tak spróbować diagram uogólnić?
Podczas
omawiania
diagramu
maszyny
stanowej
przywołany został jego protoplasta – graf automatu
z układów cyfrowych (elektronika, ale nie tylko).
Podobny
potencjał
posiada
diagram
sekwencji
w telekomunikacji.
W pierwszym kroku można zamienić urządzenia oraz
abonentów na obiekty (nie mogą to być klasy, bo sekwencja
istnieje w czasie, a klasa, jako idea (filozofia platońska), jest
niezmienna!!
Zatem istnieje możliwość utworzenia diagramu sekwencji w
UML na podstawie schematu telekomunikacyjnego.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Diagram sekwencji w UML
Dokonując uogólnienia diagramu telekomunikacyjnego,
zamieniamy uczestników ruchu telekomunikacyjnego na
obiekty, stosując symbol obiektu, ogólnie przyjęty w UML.
Dodatkowo, każdy obiekt uzyskuje tak zwaną linię życia
(lifeline), odpowiednik pionowej prostej w diagramie
telekomunikacyjnym.
Lifeline
zaznacza
się
kreską
przerywaną.
Dodatkowo, jeżeli obiekt wywołuje jakąś metodę pod
wpływem sekwencji, pojawia się dodatkowy prostokąt,
nazywany aktywacją.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Diagram sekwencji UML - obiekt
Obiekt
Linia życia
(lifeline)
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Obiekty i czas już jest – a co z komunikacją?
W diagramie telekomunikacyjnym przekazywana jest
informacja z wykorzystaniem sygnalizacji.
W diagramie UML uzyskuje się to za pomocą wiadomości
(analogia do sygnaliznacji jest oczywista). Dodatkowo,
w terminologii anglojęzycznej, określenia typów wiadomości
są identyczne jak w przypadku telekomunikacji!
Wiadomość to message, a główny rodzaj wiadomości
nazywa się call.
Wiadomości dzieli się na dwa rodzaje:
Synchroniczną – czyli wykonywaną natychmiast, na żądanie,
oraz asynchroniczną – niezwiązaną specjalnie z jakąś
czynnością.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Diagram sekwencji w UML - komunikacja
Najpierw abonent wybiera numer, a następnie Centrala wysyła sygnał
zestawiania połączenia. Jest to wywołanie asynchroniczne – gdyż nawet
w myśl prawa telekomunikacyjnego nie jest potrzebne, ale jest powszechne
w użyciu.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Diagram sekwencji w UML - komunikacja
Diagram sekwencji dla zestawienia połączeń z wykorzystaniem dwóch central
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Kilka uwag na temat oznaczeń
w diagramie sekwencji UML
Diagram sekwencji UML posiada specyficzne komunikaty.
Oznacza się je dwoma rodzajami kresek ze strzałkami.
Pierwsza z nich, bardzo często stosowana, oznacza
komunikat synchroniczny, wpływający bezpośrednio na
działanie danej akcji.
Drugi komunikat pojawia się jako informacja zwrotna po
zakończeniu
aktywności.
Komunikat
oznacza
się
następująco:
Asynchroniczny
kończy się
strzałką bez
wypełnienia!
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Kilka uwag na temat oznaczeń
w diagramie sekwencji UML
Ponieważ w UML operujemy na obiektach, to diagram
sekwencji posiada specjalne rozszerzenia służące do
powoływania obiektów do istnienia (create), jak i ich
niszczenia (destroy).
Powołanie
nowego obiektu
do istnienia
Zniszczenie Obiektu 2
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Specyficzne rodzaje linii życia (UML 2.1)
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Boundary Life line
Boundary Life line nazywa się często po polsku obiektem
granicznym.
Pojęciem tym określa się obiekt, który zawiera w sobie
elementy dwóch różnych rzeczywistości.
Na przykład interfejs użytkownika jest tego rodzaju obiektem,
bo zawiera w sobie zarówno część czysto informatyczną
(wywołanie
określonych
funkcjonalności
programu),
a jednocześnie swoim wyglądem przypomina świat
rzeczywisty (przyciski, wyświetlacze, wirtualne pokrętła,
suwaki itd., itp..).
Obiektem granicznym może być też zespół tworzący
oprogramowanie, a złożony z ludzi o różnych profesjach.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Control Lifeline
Control w języku angielskim oznacza przede wszystkim
sterowanie. W takim znaczeniu stosuje się to słowo
w automatyce i w elektronice.
Polskie słowo „kontrola” nie do końca odpowiada
znaczeniowo angielskiemu „control”, zatem powinno się
tłumaczyć nazwę tego typu obiektu jako obiekt sterowania.
Obiekt oznaczany jako „control” służy głównie do sterowania
innymi obiektami lub pełni specjalną funkcję nadzorującą.
Na przykład komputer sterujący sygnalizacją świetlną jest
tego rodzaju obiektem.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Entity Lifeline
Entity tłumaczy się na język polski jako encja, przy czym
samo słowo „encja” jest bardzo wieloznaczne.
Na przykład encją nazywa się znak w HTML zdefiniowany
poprzez &nazwa; , W ten sposób definiuje się niełamliwe
spacje, a dawniej używano tego sposobu do tworzenia stron
internetowych przeznaczonych dla internautów z różnych
krajów.
Encja jest również używana w XHTML, do definiowania wielu
parametrów.
W filozofii encją nazywa się niezależny byt.
Zatem co z tą encją?
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Entity Lifeline
Przyjmując tożsamość pomiędzy encją a bytem, możemy
powiedzieć, że każdy obiekt powołany do istnienia na
podstawie klasy jest encją.
Na przykład samochód „garbus” jest encją, komputer też jest
encją, itd..
Posługując się metodą eliminacji, można przyjąć, że encją
będzie taki obiekt, którego głównym celem jest istnienie
i działanie samo dla siebie, czym znacząco różni się od
pozostałych wspomnianych typów.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Zgrupowania w diagramach sekwencji UML
W diagramach sekwencji istnieją bardzo ważne rozszerzenia
konceptualne względem diagramu telekomunikacyjnego.
Są to zgrupowania aktywności, w celu podkreślenia ich
współdziałania.
Zgrupowanie oznacza się prostokątem, przy czym w lewym
górnym roku jest nazwa określająca typ zgrupowania.
Obecnie stosowane grupy to:
ref, loop, opt, par, alt
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Grupa ref
Grupa „ref” pochodzi od angielskiego określenia „interaction
occurrence”.
Tłumacząc to na język polski, jest to grupa umożliwiająca
ukrycie interakcji w osobnym makrze. Ty, samym zwiększa
się przejrzystość bardzo rozbudowanych diagramów
sekwencji UML.
W ogólności, to co się dzieje w grupie ref posiada charakter
prywatny.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Grupa loop
Grupa „loop” oznacza pętlę.
Grupowanie tego typu tworzy się, gdy dany fragment
algorytmu będzie musiał być wykonywany iteracyjnie.
Na przykład, gdy chcemy zaznaczyć, że trzeba sprawdzić
poprawność wprowadzanych danych w sposób hurtowy.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Grupa opt
Nazwa grupy „opt” pochodzi od „optional”. Jest to swoiste
polecenie warunkowe (konceptualne), które wykonuje się
tylko gdy warunek zostanie spełniony.
Należy jednak pamiętać, że w grupie należącej do „opt”,
nie ma możliwości zdefiniowania czegoś w rodzaju:
if(a>5) b = 7; else b = -7;
Tutaj jest tylko jedna możliwość. Aby wykorzystać else,
trzeba użyć bloku „alt”.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Grupa par
Grupa „par” to skrót od „parallel”. Czyli w grupie jest obecne
przetwarzanie równoległe.
Poszczególne wątki oddziela się od siebie przerywaną linią,
przy czym każdy z nich powinien rzeczywiście pracować
niezależnie od siebie.
Założeniem głównym tej grupy jest niedopuszczenie do
zatrzymania
się
działania
programu
z
powodu
„zakleszczenia się” wątków wchodzących w jej skład.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Grupa alt
Zgrupowanie określane jako „alt” to nic innego jak duże
blokowe polecenie warunkowe.
Skrót „alt” bierze się ze słowa „alternative”. Podobnie jak
w przypadku grupy „par”, następuje tutaj podział na
wykonanie określonych działań, pod określonymi warunkami.
Mimo iż diagramy sekwencji są w zasadzie konceptualne,
to szczególnie ten rodzaj grupy pozwala na zauważenie
wspólnej części wielu modułów, a tym samym, jako końcowy
efekt, uzyskuje się krótszy i bardziej przejrzysty kod.
SGGW Wydział Zastosowań Informatyki i Matematyki, Katedra Informatyki
© dr inż. Piotr Wrzeciono, 2012/13
Inżynieria oprogramowania – wykład 8
Podsumowanie
Omówione na tym wykładzie diagramy sekwencji są już
ostatnimi z najważniejszych rodzajów diagramów UML.
Jednakże nie należy zapominać, że jeszcze kilka rodzajów
diagramów nie zostało omówionych, a sam wykład nie może
do końca wyczerpać tak rozbudowanej problematyki, jaką
jest język UML.
Na kolejnych wykładach omawiane będą zagadnienia
związane z jakością tworzenia kodu – począwszy od
debugowania, a skończywszy na różnorodnych testach.
Znajomość i stosowanie UML pozwala na uniknięcie wielu
różnych błędów już na etapie konceptualnym – dlatego
zachęcam również do samodzielnego zainteresowania się
tym najważniejszym językiem inżynierii oprogramowania.