Bloki konstrukcyjne UML

Transkrypt

Bloki konstrukcyjne UML
Unified Modeling Language
Wprowadzenie do UML
Igor Gocaliński
Odrobina historii
• Połowa lat 70-tych i koniec 80-tych to początek analizy
obiektowej
• Wiele opracowanych metod w połowie lat 90-tych
– Metoda Boocha
– Object-Oriented Software Engineering (Jacobson)
– Object Modeling Technique (Rumbaught)
• Październik 1994 – oficjalny początek prac nad UML
• Październik 1995 – publikacja UML 0.8.
– Do Booch’a i Rumbaught’a dołącza Jacobson
• Czerwiec 1996 – powstaje UML 0.9
• Styczeń 1997 – przekazanie UML 1.0
• Jesień 1999 – publikacja UML 1.3
Modele
• Model to uproszczenie rzeczywistości
• Modele opracowujemy po to, żeby lepiej
zrozumieć system, który budujemy
• Modele złożonych systemów tworzymy,
ponieważ nie potrafimy ogarnąć tych
systemów w całości
– zasada „dziel i rządź”
Znaczenie modelowania
• Modelowaniu ma na celu
– Ułatwienie wyobrażenia całego system
– Wyspecyfikowanie struktury i zachowania
systemu
– W wyniku modelowania otrzymujemy
szablony, które ułatwiają sterowanie
procesem tworzenia oprogramowania
– Modele stanowią dokumentację systemu
Bloki konstrukcyjne UML
• Elementy
–
–
–
–
strukturalne
czynnościowe
grupujące
komentujące
• Związki
–
–
–
–
zależności
powiązania
uogólnienia
realizacji
• Diagramy
–
–
–
–
–
–
–
–
–
klas
obiektów
przypadków użycia
przebiegu
kooperacji
stanów
czynności
komponentów
wdrożenia
Elementy strukturalne
• Klasa
– zbiór obiektów, które
mają takie same
atrybuty i operacje
SQL_Query
+Database
+SQL
-CursorPos
+Open()
+ExecSQL()
Elementy strukturalne
• Interfejs
– zestaw operacji, które
wyznaczają usługi
oferowane przez klasę
lub komponent
IPisownia
Elementy strukturalne
• Kooperacja
– definiuje interakcję
– zestaw ról i innych
bytów, współpracujących
w celu wywołania
pewnego zespołowego
działania, niemożliwego
do uzyskania w
pojedynkę
Hierarchia
odpowiedzialności
Elementy strukturalne
• Przypadek użycia
– opis zbioru ciągów
akcji wykonywanych
przez system w celu
dostarczenia danemu
aktorowi godnego
uwagi wyniku
Wystaw zamówienie
Elementy strukturalne
• Klasa aktywna
– zawiera obiekty, które
są procesami lub
wątkami
Zarządca
+wstrzymaj()
+roześlij()
Elementy strukturalne
• Komponent
– fizyczna część
systemu, która
wykorzystuje i
realizuje pewien zbiór
interfejsów.
– komponenty
• COM+
• Java Beans
Formularz
Elementy strukturalne
• Węzeł
– fizyczny składnik
działającego systemu
– reprezentuje zasoby
obliczeniowe
• ilość pamięci
• zdolności przetwarzania
Serwer
Bloki konstrukcyjne UML
• Elementy
–
–
–
–
strukturalne
czynnościowe
grupujące
komentujące
• Związki
–
–
–
–
zależności
powiązania
uogólnienia
realizacji
• Diagramy
–
–
–
–
–
–
–
–
–
klas
obiektów
przypadków użycia
przebiegu
kooperacji
stanów
czynności
komponentów
wdrożenia
Elementy czynnościowe
• Interakcja
– zachowanie,
polegające na
wymianie
komunikatów między
obiektami
Odwołaj
Elementy czynnościowe
• Maszyna stanowa
– określa ciąg stanów,
jakie obiekt lub
interakcja przyjmuje w
odpowiedzi na
zdarzenia zachodzące
w czasie ich życia
Oczekiwanie
Bloki konstrukcyjne UML
• Elementy
–
–
–
–
strukturalne
czynnościowe
grupujące
komentujące
• Związki
–
–
–
–
zależności
powiązania
uogólnienia
realizacji
• Diagramy
–
–
–
–
–
–
–
–
–
klas
obiektów
przypadków użycia
przebiegu
kooperacji
stanów
czynności
komponentów
wdrożenia
Elementy grupujące
• Pakiet
– służy do grupowania
elementów
– zawiera elementy
strukturalne, czynnościowe
lub grupujące
Grafika
Bloki konstrukcyjne UML
• Elementy
–
–
–
–
strukturalne
czynnościowe
grupujące
komentujące
• Związki
–
–
–
–
zależności
powiązania
uogólnienia
realizacji
• Diagramy
–
–
–
–
–
–
–
–
–
klas
obiektów
przypadków użycia
przebiegu
kooperacji
stanów
czynności
komponentów
wdrożenia
Elementy komentujące
• Notatka
– rola objaśniająca
– używana w celu
wzbogacenia diagramu o
ograniczenia i objaśnienia
Przekazać
do weryfikacji
Bloki konstrukcyjne UML
• Elementy
–
–
–
–
strukturalne
czynnościowe
grupujące
komentujące
• Związki
–
–
–
–
zależności
powiązania
uogólnienia
realizacji
• Diagramy
–
–
–
–
–
–
–
–
–
klas
obiektów
przypadków użycia
przebiegu
kooperacji
stanów
czynności
komponentów
wdrożenia
Związki zależności
• Związek znaczeniowy
między dwoma
elementami
• Zmiany w definicji
jednego (niezależnego)
Punkt
mogą mieć wpływ na
-pozycja
znaczenie drugiego
+Narysuj()
(zależnego)
TCanvas
Związki powiązania
• Związek strukturalny, określający zbiór wiązań
między obiektami
• Agregacja: całość-część
+Pracownik
+Pracodawca
Osoba
Przedsiębiorstwo
1..*
*
1
*
Dział
Związki uogólnienie
• Związek między dwoma
bytami
– ogólnym
– szczegółowym
• Obiekt bytu szegółowego
może być używany w
zastępstwie obiektu bytu
ogólnego
Osoba
Student
Związki realizacji
• Związek między
klasyfikatorami, z których
jeden określa kontrakt, a
drugi zapewnia
wywiązanie się z niego
• Występują zwykle między
– interfejsem a klasami
– przypadkami użycia a
kooperacjami
«interface»
IObsługaReguł
+DodajRegułę()
+ZmienRegułę()
+UzasadnijAkcję()
RegułyDlaKont
Weryfikuj
użytkownika
Weryfikacja
Bloki konstrukcyjne UML
• Elementy
–
–
–
–
strukturalne
czynnościowe
grupujące
komentujące
• Związki
–
–
–
–
zależności
powiązania
uogólnienia
realizacji
• Diagramy
–
–
–
–
–
–
–
–
–
klas
obiektów
przypadków użycia
przebiegu
kooperacji
stanów
czynności
komponentów
wdrożenia
Diagramy klas
• Diagramy strukturalne
• Zawierają
–
–
–
–
klasy
interfejsy
kooperacje
związki między nimi
• Spotykane najczęściej
Archive
1
+ReadFile()
+ReadMemory()
+WriteFile()
+WriteMemory()
1
1
VolumeBufor
-data
+ReadVolume()
+WriteVolume()
#Copy()
File
SumBufor
+CalculateSum()
1
Diagramy obiektów
• Diagramy strukturalne
• Wyobrażają „zrzut” systemu
w danej chwili
• Zwierają
– obiektów
– wiązania pomiędzy obiektami
o1 : Obszar
r : Robot
s : Swiat
o2 : Obszar
Diagramy przypadków użycia
• Przedstawiają
– przypadki użycia
– aktorów
– związki między nimi
• Pomocne przy wyznaczaniu
i modelowaniu zachowania
systemu
Telefon komórkowy
Zainicjuj
połączenie
Operator
Zaakceptuj
połączenie
Uż yj programu
wybierającego
Użytkownik
«extends»
«extends»
Zainicjuj
telekonferencję
Zaakceptuj
dodatkowe połączenie
Diagramy przebiegu i kooperacji
• To rodzaje diagramu interakcji
• Przestawiają interakcje jako zbiór obiektów i
związków między nimi, w tym też komunikaty,
jakie obiekty przekazują między sobą.
• Izomorfizm
• Zawierają
– obiekty
– wiązania
– komunikaty
Diagramy przebiegu
• Diagramy czynnościowe
• Obrazują kolejność
przesyłania komunikatów
w czasie
P:Wplata
<<create>>
:Trans
StartTrans
TransStarted
<<create>>
:Konto
Dodaj(k)
OK
<<destoy>>
Commit
OK
<<destoy>>
Diagramy kooperacji
• Diagramy czynnościowe
• Obrazują organizację obiektów
uczestniczących w interakcji
3: <<create>>
4: Dodaj(k)
5: <<destroy>>
:Trans
«local »
7: <<destroy>>
6: CommitTrans
2: StartTrans
1: <<create>>
P:Wplata
«local »
:Konto
Diagramy stanów
• Diagramy czynnościowe
• Obrazują maszynę stanową,
–
–
–
–
stany
przejścia
zdarzenia
czynności
Oczekiwanie
WyślijFaks
PołączeniePrzerwane
Transmisja
Diagramy czynności
• Diagramy czynnościowe
• Szczególny przypadek
diagramu stanów
• Obrazuje strumień kolejno
wykonywanych czynności
WczytajDane
[Złe Dane]
[Dane OK]
ObliczWynik
PokażWynik
WyswietlBłąd
Diagramy komponentów
• Przedstawiają fizyczne
aspektu systemu
• Obrazują organizację
komponentów
i zależności między nimi
• Zawierają
– komponenty
– interfejsy
– zależności, uogólnienia,
powiązania i realizacje
«document»
Find.html
«executable»
Szukaj.exe
«library»
Jet40.dll
Diagramy wdrożenia
• Przedstawiają fizyczne
aspektu systemu
• Obrazują konfigurację
węzłów i zainstalowane na
nich oprogramowanie
• Zawierają
– węzły
– zależności i powiązania
SerwerBD
Internet
SerwerApl
Router
LAN
Workstation
Workstation
Workstation
Bloki konstrukcyjne UML
• Elementy
–
–
–
–
strukturalne
czynnościowe
grupujące
komentujące
• Związki
–
–
–
–
zależności
powiązania
uogólnienia
realizacji
• Diagramy
–
–
–
–
–
–
–
–
–
klas
obiektów
przypadków użycia
przebiegu
kooperacji
stanów
czynności
komponentów
wdrożenia
Literatura
• G. Booch, J. Rumbaugh, I. Jacobson
– „UML – przewodnik użytkownika”
• G. Booch, J. Rumbaugh, I. Jacobson
– „The Unified Modeling Language Reference Manual”