Requirements Engineering Processes

Download Report

Transcript Requirements Engineering Processes

UML – Unified Modeling
Language (2)
Bartosz Baliś,
Na podstawie, m.in.:
Gunnar Övergaard, Bran Selic, Conrad Bock and
Morgan Björkander: UML Behavioral Modeling (tutorial)
Agile modeling: http://www.agilemodeling.com

Modele zachowania

Diagramy interakcji (interaction diagrams)




Diagramy sekwencji (sequence)
Diagramy kolaboracji (współpracy)
(collaborations)
Diagramy stanu (statecharts)
Diagramy aktywności (activity graphs)
Diagramy interakcji
Interakcje



Interakcja: zbiór komunikatów pomiędzy
instancjami, tj. wywołania operacji, tworzenie
i usuwanie instancji.
Komunikaty są częściowo uporządkowane
w czasie
Rodzaje diagramów interakcji:


Diagramy sekwencji
Diagramy kolaboracji
Diagramy interakcji
Diagram sekwencji
x
y
Diagram kolaboracji
z
1.1: a
1.2: c
x
a
y
b
1.1.1: b
c
z
Diagram sekwencji
Obiekt
name : Class
other
Linia życia
bodziec
name (…)
Aktywacja
new (…)
: Class
usunięcie
powrót
utworzenie
Rodzaje wiadomości
Synchroniczna – nadawca
zawiesza działanie,
dopóki odbiorca nie
zwróci sterowania
Asynchroniczna –
nadawca nie czeka na
odpowiedź, kontynuuje
działanie
Powrót
Rodzaje strzałek – przykład
Przykład – zapisywanie się studenta na
seminarium
Diagram kolaboracji
obiekt
połączenie
stereotyp
redisplay ()
bodziec
window
: Controller
1: displayPositions (window)
1.1 *[i := 1..n]: drawSegment (i)
stereotyp
stereotyp
1.1.1a: r0 := position ()
left : Bead
window «parameter»
ogranicze
nie
1.1.3.1 add (self)
wire
contents {new}
«local» line
wire :Wire
«self»
: Window
1.1.2: create (r0, r1)
1.1.3: display (window)
1.1.1b: r1 := position ()
right : Bead
{new}
: Line
ogranicze
nie
Kiedy używać diagramów interakcji?



Gdy chcemy pokazać interakcje pomiędzy
instancjami
Aby rozpoznać interfejsy klas
Użycie diagramów sekwencji


Aby lepiej pokazać kolejność między
wiadomościami
Użycie diagramów kolaboracji

Aby lepiej pokazać architekturę
Przykład: system rezerwacji lotu
Przypadek użycia: Zmień plan lotu



Aktorzy: podróżny, konto klienta db, system rezerwacji
lotów
Warunki wstępne: Podróżny się zalogował
Podstawowy przebieg:








Podróżny wybiera opcję ‘zmień plan lotu’
System pobiera konto użytkownika i plan lotu z bazy danych klientów
System prosi podróżnego, aby wybrał segment planu lotu, który chce zmienić;
podróżny wybiera segment
System prosi podróżnego o nowe informacje o odlocie i przylocie; podróżny
dostarcza tych informacji
Jeśli loty są dostępne, to …
…
System wyświetla podsumowanie transakcji.
Alternatywny przebieg:

Jeśli nie ma dostępnych lotów, to …
Diagram sekwencji: zmień plan lotu
Podróżny
:System rezerwacji
Konto klienta DBMS
System rezerwacji lotów
zmień plan podróży
pobierz konto użytk.
pobierz plan
pokaż plan
wybierz segment
pokaż detale
zmień dane
dostępne loty
:
:
Diagram kolaboracji: zmień planu lotu
1: zmień plan lotu
5: wybierz segment
7: zmień dane
2: pobierz konto użytk.
3: pobierz plan
: System rezerwacji
4: pokaż plan
Podróżny 6: pokaż detale
Konto klienta DBMS
8: dostępne loty
System rezerwacji lotów
Zmień plan lotu: dokładniejszy model
4: pobierz konto użytkownika
7: pobierz plan
1: zmień plan lotu
: Podróżny
Formularz planu lotu
10: pokaż
2: Utwórz
modyfikator
5: utwórz
Protokół DBMS
9: wyświetl
Modyfikator planu lotu
Konto
: Konto klienta DBMS
3: pobierz konto użytk.
6: pobierz plan
8: utwórz
Plan lotu
Protokół S.R.L.
: System Rezerwacji Lotów
Diagramy stanu
Automat


Maszyna, w której wyjściowe zachowanie zależy nie
tylko od aktualnych bodźców na wejściu, ale też
historii poprzednich bodźców
Posiada wewnętrzny stan, który reprezentuje
wczesniejsze doświadczenie
ON ON
OFF
Diagram maszyny stanowej (automatu)
on
Lamp On
on
off
off
Lamp Off
Diagram stanów UML
Stan
Pseudostan
początkowy
Wyzwalacz
(zdarzenie)
Ready
Przejście
stop /ctr := 0
Stan
końcowy
Done
Akcja
stop
Do czego nadaje się model stanów?

Maszyna stanów nadaje się do opisu
zachowania dyskretnego, sterowanego
zdarzeniami (event-driven)

Nie nadaje się do modelowania zachowania
ciągłego
threshold
time
Zachowanie sterowane zdarzeniami

Typy zdarzeń




interakcje:
 Synchroniczne wywołanie operacji obiektu (call event)
 Asynchroniczne otrzymanie sygnału (signal event)
wystąpienie chwili w czasie (time event)
 upłynięcie okresu czasu
 nadejście określonej daty / czasu
zmiana wartości jakiegoś bytu (change event)
Instancja zdarzenia = wystąpienie zdarzenia
określonego typu

występuje w określonej chwili czasowej, nie jest rozciągła
w czasie (nie trwa)
Przykład – wpisywanie numeru PESEL
Diagramy aktywności
Diagramy aktywności


UML-owe odpowiedniki diagramów
przepływu
Model przepływ wraz z decyzjami,
alternatywnymi i równoległymi ścieżkami, itp.
Przykład – pobierz pieniądze z bankomatu
Łączenie
Scalenie
Elementy diagramu (1)
Akcja
Przepływ sterowania (control flow)
Start / stan początkowy
Koniec całej aktywności
(wszystkich przepływów)
Koniec jednego przepływu w ramach
aktywności
Obiekt
Elementy diagramu (2)
Rozgałęzianie i scalanie –
rozgałęzianiu towarzyszy
warunek
Rozwidlenie i łączenie – początek
i koniec współbieżnych wątków.

Różnica między scalaniem i łączeniem


Łączenie sychronizuje wchodzące przepływy – dalszy przepływ może
się wykonać dopiero, gdy wszystkie wchodzące dojdą do tego punktu
Scalanie nie synchronizuje – każdy przepływ „przechodzi osobno”
i akcja następująca po scalaniu może być wykonana kilka razy (dla
każdego wchodzącego przepływu)
Elementy diagramu (3)
Przepływ obiektów
Przepływ obiektów –
notacja skrócona
Tory – podział akcji pomiędzy
obiekty
Zastosowanie diagramów aktywności




Modelowanie przepływu sterowania / danych
(obiektów) …
... a nie modeli sterowanych zdarzeniami (maszyn
stanowych)
Dobrze nadają się do modelowania
skomplikowanych scenariuszy
Dobrze modelują alternatywne scenariusze
UML – podsumowanie
Pięć punktów widzenia na system





Przypadków użycia (use case view) – przypadki użycia
i zachowanie systemu z punktu widzenia użytkowników
końcowych, analityków i testerów
 Diagramy przypadków użycia, interakcji
Projektu (design view) – klasy, interfejsy, schematy współpracy,
które tworzą podstawowy słownik problemu i jego rozwiązania
 Diagramy klas, obiektów, interakcji
Procesów (process view) – wątki i procesy, które składają się na
współbieżne przetwarzanie w systemie, synchronizacja
 Diagramy aktywności
Implementacji (implementation view) – komponenty i pliki, które
składają się na fizyczną instalację (release) systemu
 Diagramy komponentów
Wdrożenia (deployment view) – obejmują węzły, czyli topologię
sprzętową, na której działa system
 Diagramy wdrożeń