Projektowanie
systemów
informatycznych
Diagramy UML
GK (PSI(4) - 2009)
2
Wstęp
UML
(Unified Modeling Language) jest formalnym
językiem służącym do opisu obiektów świata rzeczywistego w
analizie obiektowej (Object-oriented analysis) oraz
programowaniu obiektowym (Object-oriented programming).
UML jest językiem modelowania wizualnego,
pozwalającym twórcom systemów na konstruowanie projektów, na
których ich wizje zostają uchwycone i wyrażone w standardowy,
łatwy do zrozumienia sposób. Dostarcza też mechanizmów
ułatwiających wymianę informacji i przekazywanie projektów
innym.
Właściwości UML:
UML jest standardowym językiem do specyfikacji, wizualizacji,
budowy i dokumentowania wszystkich wytworów (artefaktów)
dowolnego systemu,
UML jest językiem o szerokim zakresie zastosowań,
UML nadaje się do opisu systemów programowych i
nieprogramowych (tzw. systemów biznesowych) w różnych
dziedzinach i branżach, np. w produkcji, bankowości, handlu
elektronicznym itd.,
UML może być stosowany w całym procesie tworzenia systemu
informatycznego, od gromadzenia wymagań, aż po implementację
systemu,
UML nie jest to zastrzeżonym i zamkniętym językiem
modelowania.
GK (PSI(4) - 2009)
3
Wstęp
Rozwój UML:
lata 80-90: różnorodne metodologie, techniki , różnorodne
notacje, symbole, oznaczenia,
lata 90-95: wyróżniają się 3 główne metody:
•
Grady’ego Boocha (Booch ’93) kładzie nacisk na
projektowanie i tworzenie systemów oprogramowania.
Niewielka przydatność dla analizy,
•
Jamesa Rumbaugha (OMT-2 - Object Modeling Technique)
kładzie nacisk na analizę systemów informatycznych.
Niewielka przydatność dla projektowania,
•
Ivara Jacobsona (OODE - Object-Oriented Software
Engineering) kładzie nacisk na modelowanie biznesowe i
analizę wymagań,
lata 95-97:
•
Powstał język UML 1.0 w firmie Rational Software
Corporation jako wynik współpracy James’a Rumbaugh,
Ivar’a Jacobson’a i Grady’ego Boocha,
po roku 97:
•
standaryzacja, korekty i prace nad wersją 2.0
GK (PSI(4) - 2009)
4
Wstęp
Cele UML:
wyposażenie użytkowników i analityków w graficzny
język modelowania,
dostarczenie mechanizmów rozszerzania i
specjalizacji (do koncepcji bazowej):
• budowanie modeli dla standardowych aplikacji,
• dodawanie nowych pojęć i notacji do koncepcji
podstawowej,
• wybór pomiędzy różnymi wariantami.
wspomaganie specyfikacji niezależnych od języka
programowania i metod tworzenia,
wspomaganie koncepcji: wzorców, komponentów,
współpracy, programów ramowych.
UML jest
językiem modelowania a
nie metodą projektowania
systemów informatycznych
5
Bibliografia:
1. Booch G., Raumbaugh J., Jacobson I.,
UML: Przewodnik
użytkownika
, WNT, Warszawa 2001.
2. Cheesman J., Daniels J.,
Komponenty w UML
, WNT, Warszawa 2004.
3. Booch G., Raumbaugh J., Jacobson I., UML:
Przewodnik
użytkownika
, WNT, Warszawa 2001.
4. Flower M., Scott K.,
UML w kropelce
, Wydawnictwo LT&P, Warszawa
2002.
5. Wrycza S., Marcinkowski B., Wyrzykowski K.,
Język UML 2.0 w
modelowaniu systemów informatycznych
, Helion, Gliwice 2005.
6. Śmiałek M.,
Zrozumieć UML. Metody modelowania obiektowego
,
Helion, Gliwice 2005.
7. Wrycza S. (red.),
Ćwiczenia UML 2.1
, Helion 2006.
8. Maksimchuk R.A., Nalburg E.J.,
UML dla zwykłych śmiertelników
,
PWN SA, Warszawa 2007.
9. Dąbrowski W., Stasiak A., Wolski M,
Modelowanie systemów
informatycznych w języku UML 2.1 w praktyce
, PWN SA, Warszawa
2009.
10.Schmuller J.,
UML dla każdego
, Helion, Gliwice 2003.
11.Graessle P., Baumann H., Baumann P.,
UML 2.0 w akcji.
Przewodnik oparty na projektach
, Helion, Gliwice 2005.
Wstęp
GK (PSI(4) - 2009)
Wstęp
W praktycznej realizacji UML przyjmuje postać graficznej
prezentacji projektowanego systemu za pomocą logicznie
powiązanych
diagramów
. Diagramy opisują projektowany system
z różnych punktów widzenia.
W UML są tworzone następujące diagramy:
6
GK (PSI(4) - 2009)
1. Diagramy struktury
• Klas
• Obiektów
• Pakietów
• Przypadków użycia
• Struktur złożonych
• Wdrożeniowe
• Komponentów
2. Diagramy dynamiki
• Czynności
• Maszyny stanowej
• Zależności czasowych
• Interakcji:
o
Sekwencji
o
Komunikacji
o
Sterowania
interakcją
Projektując system informatyczny, rozpoczyna się
przeważnie od tworzenia diagramów w następującej kolejności:
Przypadków użycia
,
Klas
,
Czynności
i
Sekwencji
. Są to
wykorzystywane najczęściej. Pozostałe z nich bywają pomijane,
zwłaszcza przy tworzeniu niedużych systemów informatycznych.
Wstęp
7
GK (PSI(4) - 2009)
Lp.
Diagram
Opis
1
Diagram klas (Class
Diagram)
Graficzne przedstawienie statycznych,
deklaratywnych elementów dziedziny
przedmiotowej oraz związków między nimi
2
Diagram obiektów
(Object Diagram)
Wystąpienie (realizacja, instancja) diagramu
klas, odwzorowujące strukturę systemu w
wybranym momencie jego funkcjonowania
3
Diagram pakietów
(Package Diagram)
Graficzne przedstawienie logicznej struktury
systemu w postaci pakietów połączonych
zależnościami i zagnieżdżeniami
4
Diagram struktur
złożonych
(Composite
Structure Diagram)
Graficzne przedstawienie współdziałających ze
sobą elementów w celu osiągnięcia wymaganej
wspólnej funkcjonalności
5
Diagram
komponentów
(Component
Diagram)
Rodzaj diagramu wdrożeniowego, który
odwzorowuje organizację i zależności między
komponentami
6
Diagram
rozlokowania
(Deployment
Diagram)
Rodzaj diagramu wdrożeniowego, który
przedstawia sieć połączonych ścieżkami
komunikowania węzłów z ulokowanymi w nich
artefaktami
7
Diagram
przypadków użycia
(Use Case Diagram)
Graficzne przedstawienie przypadków użycia i
aktorów oraz związków między nimi
występujących w dziedzinie przedmiotowej
8
Diagram czynności
(Activity Diagram)
Graficzne przedstawienie sekwencyjnych i
współbieżnych przepływów sterowania oraz
danych pomiędzy uporządkowanymi ciągami
czynności, akcji i obiektów
9
Diagram maszyny
stanowej (State
Machine Diagram)
Graficzne odzwierciedlenie skokowego
zachowania skończonych systemów stan-
przejście
10
Diagram sekwencji
(Sequence Diagram)
Rodzaj diagramu interakcji, opisujący interakcje
pomiędzy instancjami klasyfikatorów systemu w
postaci sekwencji komunikatów wymienianych
między nimi
11
Diagram
komunikacji
(Communication
Diagram)
Rodzaj diagramu interakcji, opisujący
strukturalne związki pomiędzy instancjami
klasyfikatorów, biorącymi udział w interakcji oraz
wymianę komunikatów między nimi
12
Diagram zależności
czasowych (Timing
Diagram)
Rodzaj diagramu interakcji, reprezentujący na
osi czasu dopuszczalne zmiany stanów, które
może przyjmować instancja klasyfikatora
uczestnicząca w interakcji
13
Diagram sterowania
interakcją
(Interaction
Overview Diagram)
Diagram dokumentujący przepływ sterowania
pomiędzy logicznie powiązanymi diagramami i
fragmentami interakcji z wykorzystaniem
kategorii modelowania diagramów czynności
Pełna lista
diagramów
UML:
GK (PSI(4) - 2009)
8
Modelowanie złożonych systemów jest zadaniem trudnym i
angażuje wiele osób o różnym sposobie postrzegania systemu.
Uwzględniający te różne punkty widzenia, UML jest często
określany jako język modelowania posiadający 4+1 perspektyw.
Cztery pierwsze opisują wewnętrzną strukturę systemu na różnych
poziomach abstrakcji i szczegółowości. Ostatnia perspektywa (+1)
opisuje funkcjonalność systemu widzianą przez jego
użytkowników.
Są to następujące perspektywy:
Perspektywa przypadków użycia
– opisuje funkcjonalność,
oczekiwanej od systemu przez przyszłych użytkowników (mówi
co
powinien robić system),
Perspektywa logiczna
– zawiera opis sposobu realizacji
funkcjonalności, strukturę systemu widzianą przez projektanta
(opisie
jak
funkcjonalność systemu ma być realizowana),
Perspektywa implementacyjna
– opisuje szczegółowo
poszczególne moduły i ich interfejsy wraz z zależnościami, z
określeniem ograniczeń wynikających z zastosowanego języka
programowania, wybranych technologii etc., jest sposobem
widzenia systemu przez programistę,
Wstęp
GK (PSI(4) - 2009)
9
Perspektywa procesowa
– zawiera podział systemu na
procesy (czynności) i procesory (jednostki wykonawcze),
opisuje właściwości niefunkcjonalne systemu i służy
programistom i integratorom,
Perspektywa wdrożenia
– definiuje fizyczny podział
elementów systemu i sposób ich rozmieszczenia w
infrastrukturze, perspektywa taka służy integratorom i
instalatorom systemu.
Każda perspektywa korzysta z własnego
zestawu diagramów pozwalających czytelnie
przedstawić modelowane zagadnienie.
Wstęp
Diagram
Przypadków użycia
10
GK (PSI(4) - 2009)
Diagram Przypadków użycia
(User Case Diagram –
UCD), narzędzie stosowane w
perspektywie przypadków
użycia
,
odwzorowuje funkcjonalności tworzonego systemu
wraz z jego otoczeniem poprzez graficzną prezentację:
własności
tworzonego systemu informatycznego,
postrzeganych i wymaganych przez
użytkownika
tego
systemu,
usług
oferowanych przez tworzony system informatyczny,
postrzeganych przez
otoczenie
tego systemu.
Diagram UCD jest tworzony przed rozpoczęciem prac
projektowych nad systemem informatycznym i odgrywa
najważniejszą rolę w procesie tworzenia tego systemu, gdyż
pozwala na identyfikację oczekiwanych funkcjonalności
systemu, weryfikację postępów w dalszym modelowaniu,
projektowaniu i implementacji tego systemu oraz zapewnia
komunikatywność kontaktów między zespołem projektantów,
a użytkownikiem systemu.
W procesie tworzenia przypadków użycia
najistotniejsze jest to, że opisują,
co robi system z punktu
widzenia zewnętrznego obserwatora
, a
nie jak to robi
, co
oznacza, iż przypadki użycia, oprócz funkcjonalności, nie
definiują jednocześnie sposobu ich implementacji. Określają
one zatem wymagane zachowanie, ale nie narzucają sposobu
jego rozwiązania, a więc dzięki nim użytkownicy i eksperci w
dziedzinie problemu mogą rozmawiać z projektantami i
programistami bez konieczności analizowania nieistotnych
szczegółów.
Diagram
Przypadków użycia
11
GK (PSI(4) - 2009)
Własności przypadków użycia. Przypadki użycia:
określają zbiory ciągów akcji, z których każdy reprezentuje
interakcję elementów z otoczenia systemu z funkcjami
samego systemu, których na etapie identyfikacji wymagań i
analizy używa się do obrazowania, specyfikowania, tworzenia i
dokumentowania spodziewanego zachowania systemu,
reprezentują wymagania funkcjonalne dla systemu jako
całości,
obejmują interakcje aktorów i systemu, przy czym aktor
(człowiek, system itp.) reprezentuje spójny zbiór ról
odgrywanych przez użytkowników przypadku użycia w czasie
jego realizacji,
mogą mieć warianty, które są uszczegółowionymi wersjami
innych przypadków użycia, są częściami innych przypadków
użycia lub rozszerzają znaczenie innych podstawowych
przypadków użycia
mają za zadanie dostarczyć istotne wyniki,
służą do analizy całego systemu, ale można je również
stosować do analizy części systemu (np. podsystemów), a
nawet pojedynczych jego elementów,
są podstawą do opracowania testów dla modelowanych
funkcjonalności systemu.
Diagram
Przypadków użycia
notacja i semantyka
12
GK (PSI(4) - 2009)
Przypadek użycia
(User Case). Przypadek użycia reprezentuje
z
espół czynności realizowanych przez system w celu
wytworzenia określonego wyniku, mającego znaczenie dla
aktora (użytkownika). Zatem:
przypadek użycia reprezentuje sekwencję, inicjowanych
przez aktora, niezbyt odległych w czasie operacji
wykonywanych przez system,
przypadek użycia modeluje oczekiwanie zachowanie systemu
wobec danego aktora, nie precyzując sposobu realizacji tego
zachowania,
uruchomienie danego przypadku użycia ma dostarczyć
aktorowi wymiernych wyników,
przypadek użycia zwykle opisuje pewien proces a nie
elementarną czynność (działanie),
przypadek użycia jest całością zadania widzianego z punktu
widzenia
aktora
.
Graficzna symbol przypadku użycia:
Wystawienie faktury
Diagram
Przypadków użycia
notacja i semantyka
13
GK (PSI(4) - 2009)
Każdy przypadek użycia może być opisany za pomocą:
•nazwy,
•przepływu zdarzeń (scenariuszy),
•zależności i relacji,
• listy działań charakteryzujących przypadek użycia (przebieg
zdarzeń)
,
•wymagań specjalnych,
•warunków wstępnych i/lub końcowych.
W zależności od potrzeb przypadek użycia może być
zaopatrzony w dodatkowy opis szczegółowy.
Nazwa
przypadku użycia może być tekstem
zawierającym dowolną liczbę liter, cyfr i znaków
przestankowych (z wyjątkiem dwukropka oddzielającego
nazwę przypadku użycia od nazwy jego pakietu), zapisanym w
wielu wierszach. W praktyce nazwę podaje się w formie
krótkiego wyrażenia z czasownikiem w formie bezosobowej
(najczęściej) na początku, określającego pewną czynność
pochodzącą ze słownictwa modelowanego systemu, np.:
Diagram
Przypadków użycia
notacja i semantyka
14
GK (PSI(4) - 2009)
Aktor
(Actor). Aktor to d
owolny byt będący w interakcji z
przypadkiem użycia (systemem), np. człowiek, inny program,
sprzęt elektroniczny, składnica danych, sieć komputerowa, firma,
jednostka organizacyjna.
Aktor reprezentuje spójny zbiór ról
odgrywanych przez użytkowników przypadku użycia w czasie
interakcji z tym przypadkiem. Aktorzy nie są elementami
tworzonego systemu informatycznego. Istnieją poza systemem.
Zatem:
aktorami mogą być ludzie, urządzenia, inne systemy
informatyczne,
pojęcia aktora odpowiada roli jaką on odgrywa w stosunku do
systemu,
pojęcia aktora nie odpowiada zawsze np. konkretnej osobie
fizycznej, bo ta może wcielać się w różne role (np. raz jako
administrator, a raz jako zwykły użytkownik),
jeden aktor może reprezentować całą grupę fizycznych
użytkowników systemu (aktor pracownik reprezentuje wszystkich
pracowników firmy),
aktorzy są zwykle aktywni - inicjują przypadki użycia, choć mogą
być również pasywni (np. aktor tylko korzystający z danych
przetworzonych w systemie).
Klient
Graficzny symbol aktora:
Diagram
Przypadków użycia
notacja i semantyka
15
GK (PSI(4) - 2009)
Nazwa
aktora jest to zwykle rzeczownik lub określenie
rzeczownikowe w liczbie pojedynczej. Nazwa aktora nie ma
identyfikować poszczególnych, realnie istniejących obiektów, ale
role, które pełnią.
W procesie ustalania aktorów należy kierować się następującymi
przesłankami:
jaka grupa użytkowników (w tym także systemów, aplikacji itp.)
potrzebuje wspomagania swojej działalności przez tworzony
system,
jacy użytkownicy i w jakim zakresie są niezbędni do
prawidłowego funkcjonowania tworzonego systemu (użytkownicy
merytoryczni i użytkownicy wspomagający),
w jakie środki komunikacji z tworzonym systemem będą
wyposażeni użytkownicy
i jakie techniki komunikacji z systemem będą przez nich
stosowane.
Każdy aktor musi użytkować co najmniej jeden przypadek
użycia (musi być z nim połączony na diagramie), natomiast
przypadek użycia musi być użytkowany przez co najmniej jednego
aktora (musi być z nim połączony na diagramie). Takie połączenie
aktora z przypadkiem użycia oraz połączenia między przypadkami
użycia noszą nazwę związków.
Diagram
Przypadków użycia
notacja i semantyka
16
GK (PSI(4) - 2009)
Związek
(Relationship). Związek oznacza interakcję aktora z
przypadkami użycia, która może oznaczać ich inicjowanie
(uruchamianie), dostarczanie im danych, otrzymywanie od nich
danych przetworzonych lub inne użytkowanie funkcjonalności
realizowanej przez ten przypadek użycia. Związek nie oznacza
żadnych konkretnych rozwiązań, np. nie wskazuje na to, jakie
dane są przekazywane od aktora do przypadku użycia.
Symbolami graficznymi związku są
asocjacje
nieskierowane i skierowane, obrazowane za pomocą
następujących znaków graficznych:
Asocjacja nieskierowana
(linia bez strzałki) wskazuje na
domyślną dwustronną komunikację pomiędzy aktorem a
przypadkiem użycia.
Asocjacja skierowana
(linia ze strzałką) jest
stosowana w przypadku, gdy zachodzi potrzeba wskazania
inicjatora
usługi. Skierowana asocjacja wskazuje również na fakt,
że element inicjujący zna zawsze element inicjowany, natomiast
element inicjowany nie zna tego pierwszego.
Diagram
Przypadków użycia
notacja i semantyka
17
GK (PSI(4) - 2009)
Przykład związku:
Możliwości uszczegółowiania związków
między przypadkami
użycia
stwarzają zależności (dependencies), które wskazują na
taki związek, w którym zmiana jednego przypadku użycia wpływa
na drugi. Wyróżnia się zależności:
•zawierania (include),
•rozszerzania (extend).
Klient
Złożenie zamówienia
Diagram
Przypadków użycia
notacja i semantyka
18
GK (PSI(4) - 2009)
Związek
zawierania
polega na tym, że
zawierający
(bazowy) przypadek użycia rozszerza swoją funkcjonalność na
zachowanie innego,
zawieranego
przypadku użycia, który stanowi
wydzieloną część funkcjonalności zawierającego przypadku
użycia. Zawierany przypadek użycia nie jest elementem
samodzielnym, uruchamianym tylko i zawsze, gdy jest
uruchamiany zawierający przypadek użycia. Przykład:
istota zależności
przykład realizacji
zależności
Tworzenie związku zawierania jest zasadne, gdy:
•istnieje możliwość wyłączenia w postaci zawieranego przypadku
użycia pewnej funkcjonalności, wspólnej dla kilku różnych
przypadków użycia,
•interakcje aktor-system są bardzo liczne.
Związki zawierania powodują istotne uproszczenie złożoności
modelu systemu oraz oprogramowania systemu.
Dokonanie wypłaty
Sprawdzenie stanu kasy
<<include>>
Zawierający
Zawierany
<<include>>
GK (PSI(4) - 2009)
19
Źródło: R. Simiński: Diagramy przypadków użycia (Internet).
Diagram
Przypadków użycia
notacja i semantyka
Przykład związku
zawieranie
:
Diagram
Przypadków użycia
notacja i semantyka
20
GK (PSI(4) - 2009)
Związek
rozszerzania
polega na tym, że
rozszerzany
(bazowy) przypadek użycia rozszerza swoją funkcjonalność o
funkcjonalność innego,
rozszerzającego
przypadku użycia, który
w sposób fakultatywny może zostać włączony do rozszerzanego
przypadku użycia. Rozszerzający przypadek użycia może być
elementem samodzielnym. Przykład:
istota zależności
przykład realizacji
zależności
Uruchamianie rozszerzającego przypadku użycia następuje
łącznie z rozszerzanym przypadkiem użycia, ale dopiero po
spełnieniu warunków określonych przez użytkownika, które mogą
być zapisane na diagramie w dowolnym języku.
Dokonanie wypłaty
Zapytanie o nominały
<<extend>>
Rozszerzany
Rozszerzający
Warunek roszerzenia
<<extend>>
Diagram
Przypadków użycia
notacja i semantyka
21
GK (PSI(4) - 2009)
Przykład związku
rozszerzanie
:
Źródło: R. Simiński: Diagramy przypadków użycia (Internet).
Diagram
Przypadków użycia
notacja i semantyka
22
GK (PSI(4) - 2009)
Generalizacja
(Generalization). Generalizacja (także uogólnienie)
jest związkiem pomiędzy aktorami lub przypadkami użycia, w
którym jeden z nich jest
przodkiem
, a drugi –
potomkiem
.
Potomek posiada wszystkie atrybuty przodka i dodatkowo jeszcze
specyficzne, własne: potomek jest niejako specjalizacją
(uszczegółowieniem) przodka. Generalizacja umożliwia tworzenie
hierarchii
dziedziczenia
(inheritance), która oznacza, że obiekty
będące potomkami dziedziczą atrybuty przodka, dodając własne
atrybuty indywidualne.
Generalizację graficznie oznacza się strzałką z pustym
grotem, skierowanym od potomka do przodka. Przykłady związku
generalizacji:
Generalizacja pomiędzy
aktorami
oznacza, że jeden aktor
odgrywa wszystkie role drugiego aktora i dodatkowo może
odgrywać jeszcze inne, własne role, a pomiędzy
przypadkami
użycia
– że jeden przypadek użycia jest uszczegółowioną wersją
drugiego i ten uszczegółowiony dziedziczy zachowanie ogólnego
oraz może dodawać dodatkowe zachowania własne.
Dyrektor
Pracownik
GK (PSI(4) - 2009)
23
Diagram
Przypadków użycia
notacja i semantyka
Przykład
diagramu
przypadk
ów użycia
Diagram
Przypadków użycia
proces tworzenia
24
GK (PSI(4) - 2009)
Proces tworzenia diagramu przypadków użycia obejmuje
następujące podstawowe etapy:
1.Identyfikacja aktorów.
2.Identyfikacja przypadków użycia.
3.Opracowanie związków (asocjacji).
4.Uszczegółowienie diagramu.
Podstawowy zbiór danych niezbędnych do utworzenia diagramu
przypadków użycia analityk, twórca tego diagramu, uzyskuje
poprzez opracowanie – wspólnie z przyszłym użytkownikiem
systemu informatycznego – wymagań do tego systemu.
Zwykle
pod pojęciem wymagań rozumie się wyrażenie odczuwalnej
potrzeby rozwiązania określonych problemów, których
rozwiązanie pozwoli na osiągnięcie zamierzonego celu.
W
szczególności wymagania powinny obejmować:
potrzeby i ograniczenia dotyczące funkcjonalności tworzonego
systemu informatycznego, własności oprogramowania, interfejsu
użytkownik-system, serwisu itp. (wymagania funkcjonalne),
określenie sposobu prezentacji potrzeb i ograniczeń (język
wymagań),
potrzeby, których spełnienie nie jest konieczne i wymagania o
różnych priorytetach (wymagania niefunkcjonalne).
Diagram
Przypadków użycia
proces tworzenia
25
GK (PSI(4) - 2009)
Jedną z najczęstszych przyczyn niepowodzenia projektów
systemów informatycznych są problemy związane z
wymaganiami do nich. Brak części wymagań, wymagania
niekompletne, źle sformułowane, różnie rozumiane przez
użytkownika i projektanta bądź często zmieniane w trakcie
trwania prac projektowych nad systemem są najczęściej
wymienianymi przyczynami powstawania systemów z usterkami
bądź przerywania w ogóle prac nad systemem. W celu uniknięcia
tych przykrych następstw, konieczne jest przed rozpoczęciem
prac projektowych możliwie najbardziej sformalizowane
zapisanie wymagań dotyczących całego systemu.
W przypadku systemu informatycznego wymagania
obejmują dwie ich kategorie: wymagania funkcjonalne i
wymagania niefunkcjonalne.
Wymagania funkcjonalne
to wymagania związane z
szeroko pojętą funkcjonalnością systemu, rozumianą jako
określenie tego,
co system ma robić
.
Wymagania niefunkcjonalne
odnoszą się do właściwości
systemu takich, jak jego bezpieczeństwo, niezawodność,
skalowalność itp., które w sumie mają określać
jaki system ma
być
.
Wyniki modelowania wymagań funkcjonalnych są
prezentowane w postaci diagramów przypadków użycia.
GK (PSI(4) - 2009)
26
Diagram
Klas -
notacja i
semantyka
Diagram Klas
(Class Diagram - CD) przedstawia
statykę systemu i stanowi podstawę do projektu przyszłej
obiektowej bazy danych. Formalnie diagram Klas można
określić jako graficzna prezentacja statycznych,
deklaratywnych elementów dziedziny przedmiotowe oraz
związków między nimi.
Podstawowymi pojęciami przy tworzeniu diagramu
klas są pojęcia
obiektu
i
klasy
.
Obiektem
jest każdy byt (osoba, rzecz, pojęcie)
umiejscowiony w dziedzinie przedmiotowej tworzonego
systemu informatycznego i mający znaczenie dla tego
systemu.
Z punktu widzenia modelowania obiekt jest
opisywany za pomocą trzech elementów:
tożsamości,
stanu,
zachowania.
Graficzny symbol obiektu:
student_Abacki
GK (PSI(4) - 2009)
27
Diagram
Klas -
notacja i
semantyka
Każdy obiekt jest opisywany za pomocą stałego zbioru
charakteryzujących go
atrybutów
(cech, właściwości – property)
np. nazwisko, imię, wzrost. Z każdym atrybutem jest związany
zbiór możliwych jego wartości (np. zbiorem wartości atrybutu
imię jest zbiór imion), przy czym atrybut w danej chwili może
przyjmować tylko jedną wartość.
Stan obiektu
(state) jest definiowany poprzez zbiór
wartości wszystkich jego atrybutów.
Tożsamość obiektu
(identity) jest określana przez wartość
atrybutu wyróżniającą ten obiekt spośród innych o takich samych
atrybutach. Np. tożsamość studenta na uczelni jest określana
poprzez wartość atrybutu „Numer albumu”.
Zachowanie obiektu
(behavior) jest to zbiór usług, które
obiekt potrafi wykonać na rzecz innych obiektów. Zachowanie
obiektu zapewnia możliwość modelowania dynamiki
(funkcjonowania) systemu. W ramach tej dynamiki obiekt może
prosić inny obiekt o wykonanie przez niego na swoją rzecz
określonej usługi, oczywiście możliwej do wykonania przez obiekt
poproszony. Wykonanie usługi może prowadzić do zmiany stanu
obiektu. Zwracanie się o wykonanie usługi następuje w formie
komunikatu
(message) z
parametrami
(parameters), które
stanowią wartości atrybutów obiektu, pozwalające na
odpowiednie sterowanie realizacją usługi.
Efekt wykonania
usługi zależy od stanu obiektu, parametrów wysłanego przez
niego komunikatu oraz od stanu obiektów biorących udział w
wykonaniu usługi.
GK (PSI(4) - 2009)
28
Klasa
(Class) jest nazwanym opisem grupy obiektów
o podobnych właściwościach. Klasa nie jest zbiorem
obiektów, lecz typem obiektu i jego właściwości: cech
strukturalnych i behawioralnych. Do cech strukturalnych
należą atrybuty i asocjacje. Do cech behawioralnych
(zachowań) należą operacje i metody. Każdy obiekt
przynależny do tej samej klasy, nazywany
instancją
, ma
wszystkie atrybuty charakteryzujące tę klasę oraz dostarcza
wszystkich usług określonych przez cechy behawioralne
klasy.
Klasa przechowuje definicje atrybutów, natomiast
wartości atrybutów przechowywane są w obiektach.
Atrybut klasy
jest to nazwana właściwość klasy,
określająca zbiór wartości, które mogą przyjmować jej
instancje. Atrybutu klas charakteryzują pojedyncze obiekty
lub niewielkie grupy obiektów, tworząc dla każdego z nich
niezależną instancję. Atrybuty mogą być przedstawiane na
diagramach na różnym poziomie szczegółowości.
Operacja
jest specyfikacją usługi udostępnianej przez
obiekt.
Metoda
jest implementacją operacji w klasie.
Określa jak obiekt z danej klasy wykonuje swoje działania.
Operacja może mieć zasięg obiektu (instancji) lub całej
klasy. Większość operacji ma zasięg obiektu. Szczególnym
przypadkiem operacji o zasięgu klasy jest operacja
tworzenia nowych obiektów w klasie, tzw. konstruktor.
Diagram
Klas -
notacja i
semantyka
GK (PSI(4) - 2009)
29
Ze względu na różnorodność sposobów
specyfikowania klas, stosuje się w diagramach różne ich
symbole:
na diagramie klasy nie występują sekcje atrybutów i
operacji:
klasa z niewyspecyfikowanymi operacjami lub atrybutami:
klasa z wyspecyfikowanymi atrybutami i operacjami:
Diagram
Klas -
notacja i
semantyka
Student
+NrAlbumu
+Pesel
+Nazwisko
+Imię
Student
+aktualizuj()
Student
Student
+NrAlbumu
+Pesel
+Nazwisko
+Imię
+aktualizuj()
Składnia atrybutów klasy:
[widoczność]
nazwa
[
: typ
[krotność] [{ograniczenia}] = wartość domyślna
30
GK (PSI(4) - 2009)
Diagram
Klas -
notacja i
semantyka
widoczność
•
opcjonalna, nie ma wartości domyślnej,
•
wskazuje czy atrybut jest dostępny spoza klasy,
+
-
publiczny
– atrybut jest widoczny przez każdy element
systemu,
-
-
prywatny
– atrybut jest widoczny tylko we własnej klasie,
#
-
chroniony
– atrybut jest widoczny tylko wewnątrz własnej
klasy i w jej podklasach,
~
-
publiczny wewnątrz pakietu
– atrybut jest widoczny tylko
wewnątrz własnego pakietu,
typ
•
jest opcjonalny, nie ma wartości domyślnej,
•
typem atrybutu może być inna klasa,
•
pozostałe typy: boolean, integer, real, string.
GK (PSI(4) - 2009)
31
krotność (liczność)
•
oznacza liczbę wartości, które mogą być związane
jednocześnie z tym samym atrybutem w atrybucie, krotność,
powtarzalność atrybutu (np. imiona – najwięcej 2),
•
opcjonalna, ma wartość domyślną równą 1,
•
oznaczenia krotności:
1..*
- jedna lub wiele wartości,
3..5
– od 3 do 5 wartości (przedział),
2,4,18
– 2 lub 4 lub 18 wartości (wyliczenie),
*
- dowolna liczba wartości,
1..*
- fakultatywność: co najmniej 1 wartość,
0..1
– opcjonalnie: co najwyżej 1 wartość,
ograniczenia
•
ordered
- wskazuje, że wartości atrybutu są
uporządkowane,
•
unordered
- wskazuje, że wartości nie są uporządkowane
(domyślnie),
•
unique
– wartości atrybutu nie powtarzają się (np. numer
albumu studenta),
•
nonunique
– wartości atrybutu mogą się powtarzać (np.
imię studenta),
•
frozen
– wartość atrybutu nie może być zmodyfikowana po
jej przypisaniu.
Diagram
Klas -
notacja i
semantyka
[widoczność]
nazwa({lista_parametrów}) [: typ zwracany]
[{ograniczenia}]
Operacja to proces, który klasa potrafi wykonać.
32
GK (PSI(4) - 2009)
Diagram
Klas -
notacja i
semantyka
lista_parametrów ([rodzaj] nazwa : typ [=
wartość_domyślna])
• rodzaj - jest opcjonalny, ma wartość domyslną in i może być
następujący:
o in – parametr jest tylko wejściowy i nie może być modyfikowany
przez operację,
o out – parametr jest tylko wyjściowy i może być modyfikowany
przez operację,
o inout – parametr jest wejściowo-wyjściowy, wprowadzany jako
wejściowy, a następnie modyfikowany przez operację,
o return – zwracany z operacji.
• typ zwracany i wartość-domyślna – są opcjonalne i nie
posiadają wartości domyślnych.
33
GK (PSI(4) - 2009)
Diagram
Klas -
notacja i
semantyka
ogranizczenia
isQuery
- operacja jest zapytaniem i zwraca wartość bez
jakiejkolwiek modyfikacji klasy,
sequential
-
operacja może być wykonana tylko przez
jeden wątek programu,
leaf
-
operacja nie może być przedefiniowana przez klasy
pochodne (jest odwzorowywana na final w Javie, a w C++
odpowiada metodom zadeklarowanym bez słowa
kluczowego virtual),
guarded
-
podobnie jak sequential, ale współbieżne
wywołania tej operacji są obsługiwane sekwencyjne, bez
udziału obsługującego,
concurrent
-
operacja może jednocześnie obsługiwać wiele
wątków ją wywołujących.
wyszukaj(tytuł: String) : Wydawnictwo[]
post:
wynik != null
wynik instanceof
Wydawnictwo[]
pre:
tytuł != null
Warunki
wstępne
opisują stan
systemu
wymagany przed
wykonaniem
operacji
Warunki
końcowe
gwarancje dotyczące
stanu systemu po
wykonaniu operacji
34
GK (PSI(4) - 2009)
Diagram
Klas -
notacja i
semantyka
GK (PSI(4) - 2009)
35
Diagram
Klas -
notacja i
semantyka
W diagramie klas klasy mogą być ze sobą łączone za
pomocą związkami, następujących rodzajów:
asocjacja
– obiekty klas są czasowo ze sobą powiązane,
uogólnienie (generalizacja)
– jedna klasa (podklasa) jest
szczególnym przypadkiem drugiej klasy (nadklasy),
zależność
– zmiana jednej klasy wpływa na drugą,
agregacja
– obiekt jednej klasy jest częścią obiektu drugiej
klasy.
Zależności
są najprostszym i najsłabszym rodzajem
relacji łączących klasy. Graficzne zależność jest obrazowana w
sposób następujący:
Klasa A
Klasa B
<<call>>
GK (PSI(4) - 2009)
36
Diagram
Klas -
notacja i
semantyka
Zależności oznaczają, że zmiana klasy wywołującej (A) w
pewien sposób wpływa na klasę wywoływaną (B), np.:
«call»
- klasa A wywołuje operację w klasie B,
«create»
- klasa A tworzy instancje klasy B,
«instantiate»
- obiekt A jest instancją klasy B,
«use»
- do funkcjonowania klasa A wymaga klasy B,
«import»
- część publiczna klasy B jest dołączana do klasy A,
«permit»
- klasa B zezwala klasie A na dostęp do swoich
atrybutów prywatnych.
Pracownia
StanowiskoBadawcze
<<use>>
Asocjacja
reprezentuje czasowe powiązanie pomiędzy
obiektami dwóch (asocjacje binarne) lub więcej (asocjacje n-arne)
klas. Obiekty związane asocjacją są od siebie niezależne.
Asocjacja jest też używana jako alternatywny (obok atrybutu)
i równorzędny sposób zapisu właściwości klasy. Graficznie asocjacja
w najprostszej formie jest przedstawiana za pomocą linii:
asocjacja binarna
asocjacja n-arna
37
GK (PSI(4) - 2009)
Diagram
Klas -
notacja i
semantyka
Klasa A
Klasa A
Klasa B
Klasa A
Klasa C
Pełna interpretacja asocjacji
wymaga znajomości takich
jej atrybutów, jak:
nazwa
,
role powiązanych klas
,
nawigacji
,
liczebności
i
agregacji
.
GK (PSI(4) - 2009)
38
Diagram
Klas -
notacja i
semantyka
Nazwa asocjacji
. Asocjacje mogą być nienazwane i
nazwane, a te ostatnie – także czasami ze wskazaniem
kierunku odczytu asocjacji (strzałka przy nazwie):
asocjacja nienazwana
asocjacja
nazwana
Role
. Każda klasa pełni rolę jakąś rolę w asocjacji. W
asocjacji binarnej rola klasy oznacza powinność pełnioną
przez nią na rzecz drugiej klasy. W asocjacji n-arnej rola klasy
oznacza powinność, którą ona pełni na rzecz każdej z
powiązanych pozostałych klas. Graficzne oznaczenie ról w
asocjacji:
Klasa D
Klasa E
Klasa D
Klasa E
zarządza
Klasa D
Klasa E
zarządzanie
+zarządzany
+zarządca
GK (PSI(4) - 2009)
39
Diagram
Klas -
notacja i
semantyka
Nawigacja
oznacza komunikowanie się klas procesie
wykonywania operacji. Zwykła asocjacja (linia) oznacza
komunikowanie się dwukierunkowe, co oznacza, że klasy
wymieniają między sobą komunikaty w trakcie wykonywania
operacji. W przypadku, gdy taka komunikacja jest planowana
jako jednokierunkowa, do jej oznaczania stosuje się
oznaczenie w postaci strzałki, skierowanej od nadawcy do
odbiorcy, np.:
Nawigacja kierunkowa może być uzupełniona o warunki jej
realizowalności.
Liczebność
oznacza liczbę obiektów jednej klasy, które
w tym samym czasie mogą być związane z jednym obiektem
drugiej klasy znajdującej się w tej samej asocjacji z klasą
pierwszą. Liczebność jest określana dla każdej klasy w
asocjacji i jej interpretacja polega na rozpatrzeniu sytuacji,
gdy po jednej stronie asocjacji występuje jeden obiekt,
natomiast liczba obiektów drugiej klasy, które są z nim
związane, jest ustalana.
Klasa G
Klasa F
GK (PSI(4) - 2009)
40
Diagram
Klas -
notacja i
semantyka
Oznaczenia liczebności i ich interpretacja są podobne
do oznaczeń krotności atrybutów klas. I tak:
1
- dokładnie jeden obiekt,
n
- dokładnie
n>1
obiektów,
n..m
- od
n
do
m
obiektów (
n,m>1
,
m>n
),
*
- dowolna liczba obiektów,
1..*
- fakultatywność: co najmniej 1 wartość,
0..1
– opcjonalnie: co najwyżej 1 obiekt,
0..*
- opcjonalnie: żaden obiekt lub wiele obiektów.
Klient
Samochód
zakup +produkt
+właściciel
1..*
1
Jeden
klient
(obiekt), drogą
zakupu, może stać się
właścicielem co najmniej
jednego produktu w postaci
samochodu, natomiast jeden
samochód
(obiekt) może
mieć tylko jednego
właściciela.
GK (PSI(4) - 2009)
41
Diagram
Klas -
notacja i
semantyka
Agregacja
(aggregation) opisuje związek całość-część
pomiędzy klasami. Oznacza to, że agregacja umożliwia
oznaczanie sytuacji, w których wiele obiektów cząstkowych
składa się na obiekt całościowy. Wyróżnia się dwa typy
agregacji:
agregację całkowitą
(kompozycja), inaczej agregację silną
lub składową, służącą do modelowania „nierozerwalnego”
związku całość-część, w którym nie ma sensu samodzielne
istnienie części,
agregację częściową
, inaczej agregację słabą lub
współdzieloną.
Symbole graficzne agregacji występują agregatach, przy czym
romb wypełniony
oznacza agregację całkowitą, a romb pusty -
częściową.
Obydwie relacje oparte są na pojęciach
agregatu
(obiekt stanowiący całość) oraz
segmentu
(część obiektu).
Role poszczególnych składników relacji agregacji są ściśle
określone:
agregat
– „składa się z..”, „zawiera”, „obejmuje”,
segment
– „wchodzi w skład”, „należy do”, „jest zawarty
w”.
GK (PSI(4) - 2009)
42
Diagram
Klas -
notacja i
semantyka
W przypadku
agregacji całkowitej
segmenty, tj.
obiekty będące częściami agregatów nie mogą istnieć
samodzielnie i niezależnie funkcjonować, co oznacza, że
usunięcie agregatu powoduje automatyczne usunięcie jego
segmentów.
W przypadku
agregacji częściowej
segmenty, tj.
obiekty będące częściami agregatów mogą samodzielnie
istnieć i funkcjonować, co oznacza, że usunięcie agregatu
nie powoduje automatycznego usunięcie jego segmentów.
Komputery (
Komputer
)
będące (jeżeli były) na
wyposażeniu laboratorium
(
Laboratorium
) nie ulegają
likwidacji w przypadku
likwidacji laboratorium i
mogą być wykorzystane gdzie
indziej.
Laboratorium
Komputer
1
0..*
Laboratorium
StanowiskoBadawcze
1
1..*
Stanowiska badawcze
(
StanowiskoBadawcze
)
ulegają likwidacji w
przypadku likwidacji
laboratorium
(
Laboratorium
).
Uogólnienie (generalizacja)
reprezentuje hierarchiczny związek pomiędzy
elementem ogólnym
(klasa abstrakcyjna, nadklasa, przodek) a
specyficznym jego
rodzajem
– klasa konkretna (podklasa, potomek). Klasy abstrakcyjne nie mają
instancji (konkretnych obiektów), ale stanowią uogólnienie obiektów klas
konkretnych. O klasie abstrakcyjnej mówi się, że jest generalizacją klasy
konkretnej, natomiast o klasie konkretnej mówi się, że jest specjalizacją klasy
abstrakcyjnej.
Klasom abstrakcyjnym można przypisywać atrybuty i operacje podlegające
dziedziczeniu
zgodnie z hierarchią klas dzięki, któremu własności klasy
abstrakcyjnej są importowane do jej klas konkretnych, które oprócz własności
indywidualnych posiadają także wszystkie własności swojej klasy abstrakcyjnej.
43
GK (PSI(4) - 2009)
Diagram
Klas -
notacja i
semantyka
Pracownik
PracownikEtatowy
PracownikSezonowy
Klasy na najniższym poziomie
hierarchii noszą nazwę liści
(leafs), a na najwyższym poziomie
hierarchii – korzeni (roots).
Na związek uogólnienia mogą być nakładane następujące ograniczenia:
{complete}
– zawiera wszystkie klasy konkretne dla danej klasy
abstrakcyjnej<
{incomplete}
– zestaw klas konkretnych przypisany danej klasie
abstrakcyjnej nie jest kompletny,
{disjoint}
– domyślny typ uogólnienia oznaczający, że każda klas
konkretna występująca w danej hierarchii jest związana w ogóle tylko z
jedną klasa abstrakcyjną,
{overlapping}
– występujące w hierarchii klasy mogą mieć wspólne
klasy konkretne (dziedziczenie wielokrotne).
44
GK (PSI(4) - 2009)
Diagram
Klas -
notacja i
semantyka
Pracownik
PracownikEtatowy
PracownikSezonowy
{incomple
te}
Jeszcze mogą być inne
kategorie
pracowników niż tylko
wymienione dwie.
45
GK (PSI(3) - 2009)
1. Zidentyfikuj kandydujące rzeczowniki ze sformulowania
problemu i wymagań jako potencjalne klasy.
2. Szukaj transakcji, zdarzeń, ról, i rzeczy dotykalnych, np.
3. Sklasyfikuj rzeczowniki jako: ludzie, miejsca, rzeczy,
organizacje, pojęcia (zasady, pomysły, reguły), zdarzenia
(rzeczy, które się zdarzają).
4. Zidentyfikuj rzeczowniki, które nie mają kompletnej definicji.
Przypisz je do kategorii atrybutów lub klas obiektów.
Transakcje: pożyczka, spotkanie, sprzedaż
Zdarzenia: lądowanie, zapytanie
Role: matka, ojciec, nauczyciel, pasażer
Rzeczy dotykalne: samochód, czujnik, składnik, samolot
Diagram
Klas -
notacja i
semantyka – identyfikacja
obiektów i klas
46
GK (PSI(3) - 2009)
5. Zidentyfikuj potencjalne kolekcje (zbiory). Pewne
rzeczowniki implikuja kolekcje i mogą stać się kontenerami
(container). Kolekcje wymagają bazy danych i specjalnego
programowania.
6. Zidentyfikuj obiekty stanowiące pogranicze systemu: obiekty
dostępne dla innych systemów, linie komunikacyjne,
urzadzenia peryferyjne, obiekty wejścia/wyjścia,..
Np.: każdy dostęp jest rejestrowany w dzienniku – dziennik jest kolekcją.
Charakterystyczne cechy obiektów we/wy:
• ich atrybuty lub stan są ulotne (niestabilne),
• zmieniają się pod wpływem bodźców zewnętrznych,
• są źródłem/przechowalnią komunikatów z zewnątrz,
• nie można ich usunąć.
Diagram
Klas -
notacja i
semantyka – identyfikacja
obiektów i klas
47
GK (PSI(3) - 2009)
1. Rzeczownik może być atrybutem, jeżeli nie można
przypisać mu zachowania i atrybutów.
2. Rzeczownik może być atrybutem, jeżeli wyjaśnienie jego
znaczenia zmusza do odwołania się do jakiegoś innego
rzeczownika (oznaczającego obiekt).
Np. rzeczownik
“kolor” zmusza do zadania pytania “kolor czego?”
.
3. Zastanów się czy coś, co może być atrybutem, nie jest
asocjacją między klasami.
4. Zidentyfikuj klasę lub asocjację, która jest najlepszym
kandydatem jako “właściciel” atrybutu.
Diagram
Klas -
notacja i
semantyka – identyfikacja
atrybutów
48
GK (PSI(3) - 2009)
1. Wyciągnij przed nawias wszelkie wspólne własności
(operacje i atrybuty) kilku powiazanych klas.
2. Zgrupuj te wspólne własności w jedną super-klasę.
3. Nazwij tę superklasę w taki sposób, aby każda pochodna
klasa mogła byc uważana za podklasę.
Np. pies jest
superklasą, pekińczyk, jamnik, pudel są podklasami klasy
pies
.
4. Podklasy moga mieć puste lub niepuste przecięcie. Oznacz
je odpowiednio.
Diagram
Klas -
notacja i
semantyka – generalizacja
GK (PSI(4) - 2009)
49
Diagram
Czynności -
notacja i
semantyka
Diagram Czynności
(Activity Diagram - AD) jest
jednym z diagramów opisujących dynamikę systemu i
stanowi graficzną reprezentację przepływu sterowania.
Diagram AD:
powinien być stosowany:
do analizowania przypadków użycia - gdy interesują
bardziej operacje niezbędne do realizacji danego
przypadku (czy też wzajemne zależności między tymi
operacjami), a nie to, kto jest odpowiedzialny za ich
przeprowadzenie,
do zrozumienia interakcji zachodzących między
przypadkami użycia,
do modelowania przetwarzania wielowątkowego,
nie powinien być stosowany:
do pokazywania współpracy między obiektami w
trakcie realizacji przypadku użycia – do tego bardziej
nadają się diagramy interakcji,
do pokazywania zachowań obiektów w trakcie ich życia
- w tym celu powinno się wykorzystywać diagramy
stanów.
Diagramy AD są tworzone z wykorzystaniem
następujących podstawowych elementów graficznych:
czynności
,
akcje
,
przepływy sterowania
,
początek
,
koniec
i
zakończenie przepływu
oraz
składnicy danych
.
GK (PSI(4) - 2009)
50
Diagram
Czynności -
notacja i
semantyka
Czynności
(activities) mogą określać rozbudowaną
funkcjonalność, tzn. reprezentować złożone procesy
biznesowe bądź algorytmy przetwarzania. Czynność definiuje
się jako określone zachowanie, złożone z logicznie
uporządkowanego ciągu czynności (akcji) oraz obiektów w
celu zrealizowania pewnego procesu.
Graficzny symbol czynności: .
W celu precyzyjniejszego opisu czynności dokonuje się ich
dekompozycji na czynności bardziej proste. Czynnościami
nie podlegającymi dalszemu dekomponowaniu są
akcje
,
które definiuje się jako elementarne jednostki specyfikacji
zachowania, które reprezentują transformację
(przetwarzanie) w modelowanym systemie.
Przykłady graficznej prezentacji akcji:
GK (PSI(4) - 2009)
51
Diagram
Czynności -
notacja i
semantyka
Przepływ sterowania
(control flow) jest relacją między
dwoma czynnościami bądź akcjami, wskazująca na kolejność
wykonywania tych czynności bądź akcji. Symbolem graficzny
przepływu sterowania jest strzałka , której
kierunek wyznacza kierunek przepływu sterowania i
następstwo wykonania czynności bądź akcji.
Prezentacja rzeczywistych sytuacji wymaga
umiejętności graficznego prezentowania przepływów
decyzyjnych oraz przepływów współbieżnych. Przepływy
decyzyjne są to przepływy alternatywne, uzależnione od
spełnienia
warunków
, czy wykonania
scalenia
lub
rozwidlenia
.
Warunek graficznie prezentuje się za pomocą
symbolu decyzyjnego postaci: .
Scalenie
i
rozwidlenie
oznacza się za pomocą symboli:
oraz .
GK (PSI(4) - 2009)
52
Diagram
Czynności -
notacja i
semantyka
Początek i koniec
są oznaczane na diagramie za pomocą symboli:
początek - , koniec - .
Zakończenie przepływu
to punkt zatrzymania wybranego
przepływu sterowania. Na jednym diagramie czynności może
wystąpić więcej niż jedno zakończenie
przepływu, które jest oznaczane symbolem .
Na diagramach czynności mogą również występować
sygnały
, które definiuje się jako asynchroniczne bodźce
inicjujące czynności lub akcje. Wyróżnia się sygnały
nadawcze
oraz
odbiorcze
, odpowiednio wysyłane i odbierane przez
czynności lub akcje. Graficzne symbole sygnałów:
•nadawczy: ,
•odbiorczy: .
GK (PSI(4) - 2009)
53
Diagram
Czynności -
notacja i
semantyka
Zobrazowanie sposobu realizacji przypadków użycia lub
innych procesów wymaga niejednokrotnie wskazania na
diagramach czynności źródła danych wejściowych do czynności
lub akcji względnie ujścia wytworzonych przez nie danych
wyjściowych. W tym celu wykorzystywane są
składnice danych
(data store nodes), które definiuje się jako pojemnik (bez
wskazywania jego implementacji) na dane przechowywane w
dłuższym okresie.
Graficzny symbol składnicy: .
Powiązanie symbolu składnicy z symbolem czynności lub akcji
następuje za pomocą linii przerywanej zakończonej otwartym
grotem.
W celu poprawienia czytelności diagramu są stosowane
na nim poziome i pionowe
partycje
(tory), służące do dzielenia
czynności (akcji) na grupy, z których każda reprezentuje
jednostkę (organizacji lub systemu) odpowiedzialną za realizację
przydzielonych czynności (akcji). Każda partycja ma nazwę,
unikatową w obrębie jednego diagramu, a każda czynność
(akcja) należy tylko do jednej partycji, ale przepływy mogą
przecinać granice partycji. Graficzne symbole pionowej i
poziomej
partycji: , .
GK (PSI(4) - 2009)
54
Diagram
Czynności -
notacja i
semantyka
GK (PSI(4) - 2009)
55
Diagram
Czynności –
proces
tworzenia
Diagram Czynności
powstaje w wyniku analizy
przypadków
użycia
i przebiega w następujących zasadniczych etapach:
1.Analiza przypadku użycia i jego scenariuszy.
2.Identyfikacja podstawowych czynności na podstawie
scenariusza przypadków użycia.
3.Połączenie czynności za pomocą przepływów sterowania.
4.Identyfikacja decyzyjnych i współbieżnych przepływów
sterowania.
5.Wprowadzenie warunków i ograniczeń przepływów sterowania.
GK (PSI(4) - 2009)
56
Diagram
Sekwencji -
notacja i
semantyka
Diagram Sekwencji
(Sequence Diagram – SD) jest
rodzajem diagramu interakcji i opisuje interakcje pomiędzy
instancjami klasyfikatorów systemu w postaci komunikatów
wymienianych między nimi. Jest związany z diagramem
przypadków użycia.
Interakcja
rozumiana jako zbiór komunikatów pomiędzy
instancjami klasyfikatorów, tj. wywołania operacji, tworzenie i
usuwanie instancji, jest opisywana w diagramie SD jest w dwóch
kierunkach:
poziomym
– jako oś na której zostały umieszczone instancje
klasyfikatorów biorących udział w interakcji (składowa
statyczna),
pionowym
– jako oś czasu przedstawiająca rozmieszczone
chronologicznie komunikaty (składowa dynamiczna).
Podstawowymi elementami diagram sekwencji są:
klasyfikator
,
komunikat
,
linia życia
i
ośrodek sterowania
.
Klasyfikator
to abstrakcyjna kategoria modelowania
uogólniająca kolekcje instancji o tych samych własnościach.
Klasyfikatorem może być aktor, przypadek użycia, klasa.
Linia życia
(lifeline)
to linia powiązana z konkretną
instancją klasyfikatora wskazująca na diagramie okres istnienia
instancji.
Komunikat
(message)
to specyfikacja wymiany danych
między instancjami klasyfikatorów, zawierająca zlecenia
wykonania określonych operacji przez adresata komunikatu.
nazwa1
Instancja klasyfikatora
Linia życia
Aktywacja
nazwa2
komunikat
Treść i parametry
odpowiedzi
(…)
odpowiedź
Ośrodek sterowania
Dezaktywacja
Treść i parametry
komunikatu
(…)
57
GK (PSI(4) - 2009)
Diagram
Sekwencji -
notacja i
semantyka
GK (PSI(4) - 2009)
58
Diagram
Sekwencji -
notacja i
semantyka
Linia życia
reprezentuje okres życia instancji
klasyfikatora, która w pewnych okresach swojego życia jest
aktywna, aktywowana przez komunikaty, a w pozostałych
okresach życia – nie jest aktywna, jest w stanie czuwania. W
okresach aktywności instancja klasyfikatora przejmuje
sterowanie interakcją oraz podejmuje działania zlecone w
komunikacie, a po ich wykonaniu i wysłaniu odpowiedzi
nadawcy komunikatu może przechodzić w stan czuwania.
Okresy aktywności instancji klasyfikatora noszą nazwę
ośrodków sterowania
(execution specification).
Ośrodek
sterowania na diagramie przyjmuje postać prostokąta
położonego na linii życia.
Ośrodek sterowania jest inicjowany
aktywacją
, a
przejście w stan czuwania –
dezaktywacją
.
Zaawansowanymi składnikami diagramu są m.in:
•rodzaje komunikatów,
•tworzenie i niszczenie obiektów,
•warunki,
•samowywołanie,
•iteracja,
•Rozgałęzienie.
GK (PSI(4) - 2009)
59
Diagram
Sekwencji -
notacja i
semantyka
Rodzaje komunikatów:
synchroniczny
,
asynchroniczny
,
zwrotny
,
utracony
,
znaleziony
,
opcjonalny
,
oczekujący
.
Wysłanie komunikatu
synchronicznego
oznacza
przekazanie sterowania do klasyfikatora-odbiorcy. W chwili
przesłania tego komunikatu aktualny
przepływ sterowania klasyfikatora-nadawcy zostaje przerwany
i będzie wznowiony dopiero po wykonaniu przez klasyfikator-
odbiorcę czynności lub operacji inicjowanej przez ten
komunikat.
GK (PSI(4) - 2009)
60
Diagram
Sekwencji -
notacja i
semantyka
Komunikat
asynchroniczny
nie
powoduje przerwania przepływu
sterowania klasyfikatora-nadawcy.
Klasyfikator-nadawca pozostaje w
stanie aktywności i nie oczekuje
odpowiedzi.
Komunikat
zwrotny
wskazuje na
powrót sterowania do
klasyfikatora-nadawcy po
wykonaniu komunikatu
synchronicznego. Komunikat
zwrotny nie tylko przekazuje
sterowanie, ale ma również za
zadanie zainicjowanie operacji.
GK (PSI(4) - 2009)
61
Diagram
Sekwencji -
notacja i
semantyka
Komunikat
utracony
– nieznany odbiorca:
Komunikat
znaleziony
– nieznany nadawca:
GK (PSI(4) - 2009)
62
Diagram
Sekwencji -
notacja i
semantyka
Komunikat
opcjonalny
oznacza,
że nadawca wysyła do odbiorcy
komunikat oczekując jego
bezzwłocznego obsłużenia. W
przypadku, gdy obsługa
komunikatu nie może być
natychmiastowa, nadawca nie
podejmuje dalszych prób jego
przesyłania, komunikat
opcjonalny nie zawsze może być
obsłużony.
Komunikat
oczekujący
– podobny
do opcjonalnego, tylko, że
nadawca czeka na jego wykonanie
przez określony odcinek czasu, a
potem rezygnuje i komunikatu
nie ponawia.
GK (PSI(4) - 2009)
63
Diagram
Sekwencji -
notacja i
semantyka
Tworzenie
lub
niszczenie
obiektu następuje po
przesłaniu odpowiedniego komunikatu
(<<create>>
lub
<<destroy>>
). Obiekt utworzony jest umieszczany na
diagramie sekwencji poniżej pierwotnie istniejących instancji
klasyfikatorów tak, aby jego położenie było zgodne z czasem
utworzenia. Po słowie
create
fakultatywnie może być
umieszczona nazwa operacji tworzącej obiekt.
Obiekt przestaje istnieć po odebraniu od niego komunikatu
destroy
, co na diagramie jest oznaczane znakiem X na linii
życia obiektu niszczonego.
Po słowie
destroy
fakultatywnie
może być umieszczona nazwa operacji niszczącej obiekt.
GK (PSI(4) - 2009)
64
Diagram
Sekwencji -
notacja i
semantyka
Wykonanie komunikatu może zależeć od spełnienia
określonych
warunków
.
Sposób zapisu warunków nie jest
skodyfikowana, ale najczęściej występują one w formie tekstu
ujętego w kwadratowe nawiasy i są umieszczane przed nazwą
komunikatu.
GK (PSI(4) - 2009)
65
Diagram
Sekwencji -
notacja i
semantyka
Samowywołanie
oznacza
sytuację, że instancja klasyfikatora
wywołuje własną operację. Na
diagramie oznaczane jest to za pomocą
zagnieżdżenia ośrodka sterowania
(iteracja).
Iteracja
oznacza wielokrotne, o
określonej wielokrotności,
powtórzenie komunikatu. Iteracja jest
opisana w nazwie komunikatu, a
krotność jej wykonania jest oznaczana
symbolem „
*
” , po którym następuje
liczba wykonań. Podstawowa notacja
iteracji:
*
|
*[
<specyfikacja-iteracji>
]
<nazwa-
operacji>
.
Przykłady:
*[i := 1..10] - komunikat będzie wysłany 10
razy,
*[x < 10] - komunikat będzie wysyłany
dopóki x < 10,
*[pozycja znaleziona] - komunikat będzie
wysyłany dopóty, dopóki pozycja nie
zostanie znaleziona
(do momentu, gdy warunek przyjmie
wartość FALSE)
GK (PSI(4) - 2009)
66
Diagram
Sekwencji -
notacja i
semantyka
Rozgałęzienie
jest sposobem przekazywania sterowania
z linii życia (ośrodka sterowania) klasyfikatora-nadawcy do
klasyfikatorów-odbiorców
(klasyfikatora-odbiorcy) w
zależności od spełnienia warunku przypisanego do
komunikatu.
Wspólny punkt czasowy
:
warunki muszą się
wykluczać – wysłany będzie
tylko jeden komunikat.
Wysyłane komunikaty mogą
być do jednego lub kilku
odbiorców (np. każdy
komunikat do innego
odbiorcy). W pierwszym
przypadku następuje
rozgałęzienie linii życia
odbiorcy (ilustracja).
GK (PSI(4) - 2009)
67
Diagram
Sekwencji –
proces
tworzenia
Diagram Sekwencji
powstaje w wyniku analizy
przypadków
użycia
i przebiega w następujących zasadniczych etapach:
1.Analiza przypadku użycia i jego scenariuszy.
2.Identyfikacja klasyfikatorów, których instancje będą
uczestniczyć w interakcjach.
3.Opracowanie koncepcyjnego (ogólnego) diagramu sekwencji
zawierającego:
•zidentyfikowane instancje klasyfikatorów, rozmieszczone na osi
poziomej,
•komunikaty, uporządkowane na osi pionowej,
•ośrodki sterowania, zlokalizowane na liniach życia instancji
klasyfikatorów.
4.Opracowanie implementacyjnego diagramu sekwencji poprzez
uszczegółowienie diagramu koncepcyjnego o:
•uszczegółowienie warunków komunikatów,
•tworzenie i niszczenie obiektów,
•samowywołania, iteracje, rozgałęzienia itp.