Modelowanie
Modelowanie
z wykorzystaniem UML
z wykorzystaniem UML
© 2001-2005 Bartosz Walt
er
2
Plan dnia
Plan dnia
Plan dnia
Plan dnia
A1. Wprowadzenie do UML
A1. Wprowadzenie do UML
A2. Modelowanie struktury statycznej
A2. Modelowanie struktury statycznej
A3. Implementacja w Rational Rose
A3. Implementacja w Rational Rose
B1. Modelowanie zachowań i podziału
B1. Modelowanie zachowań i podziału
B2. Zaawansowane elementy UML
B2. Zaawansowane elementy UML
B3. Implementacja w Rational Rose
B3. Implementacja w Rational Rose
© 2001-2005 Bartosz Walt
er
3
Wprowadzenie do UML
Wprowadzenie do UML
Wprowadzenie do UML
Wprowadzenie do UML
Obiektowe spojrzenie na świat
Obiektowe spojrzenie na świat
czyli o modelowaniu, obiektach i języku
czyli o modelowaniu, obiektach i języku
© 2001-2005 Bartosz Walt
er
4
Czym jest model?
Czym jest model?
Czym jest model?
Czym jest model?
Świat
rzeczywisty
Świat
rzeczywisty
System
komputero
wy
System
komputero
wy
Model to „
układ (...) możliwie mało
skomplikowany, działający analogicznie
do oryginału
” -
Słownik Języka Polskiego,
PWN 1998
Model
Model
© 2001-2005 Bartosz Walt
er
5
Analiza i modelowanie
Analiza i modelowanie
systemów
systemów
Analiza i modelowanie
Analiza i modelowanie
systemów
systemów
Elementy świata i modelu
Elementy świata i modelu
– użytkownicy, systemy zewnętrzne;
– dane, ich struktura, sposób przetwarzania, zależności
statyczne i dynamiczne;
– procesy, ich struktura i rozmieszczenie;
– ....
Metodyka modelowania
Metodyka modelowania
jest opisem
czynności, sposobu i kolejności
ich
realizacji; czynności te mają prowadzić ku
MODELOWI
,
zapewniając jednocześnie metody utrzymania wysokiej
jakości (
spełnienia wymagań użytkownika
)
© 2001-2005 Bartosz Walt
er
6
Istota modelowania
Istota modelowania
Istota modelowania
Istota modelowania
Czym jest analiza?
Czym jest analiza?
„analiza to
studium problemu
przed podjęciem działania”
Tom DeMarco, 1978
Sposoby zarządzania złożonością:
Sposoby zarządzania złożonością:
– abstrakcja:
omijanie rzeczy nieistotnych
– hermetyzacja:
ukrywanie rzeczy złożonych
– dziedziczenie:
uogólnianie wspólnych cech
– kojarzenie:
porównywanie analogii
– komunikacja:
jak porozumiewają się elementy modelu
– skalowanie:
dopasowanie optyki do rozmiaru problemu
– klasyfikacja:
grupowanie zachowań elementów modelu.
© 2001-2005 Bartosz Walt
er
7
Cele modelowania
Cele modelowania
Cele modelowania
Cele modelowania
1.
1.
divide et impera
divide et impera
, czyli
, czyli
dekompozycja
dekompozycja
2.
2.
łatwiejsze
łatwiejsze
wyobrażenie systemu
wyobrażenie systemu
3.
3.
specyfikacja
specyfikacja
struktury i zachowania
struktury i zachowania
4.
4.
dokumentacja decyzji
dokumentacja decyzji
podjętych w
podjętych w
trakcie realizacji
trakcie realizacji
© 2001-2005 Bartosz Walt
er
8
Cztery zasady modelowania
Cztery zasady modelowania
Cztery zasady modelowania
Cztery zasady modelowania
1.
1.
wybrany model
wybrany model
determinuje
determinuje
rozwiązanie
rozwiązanie
2.
2.
modelować można na
modelować można na
różnych
różnych
poziomach szczegółowości
poziomach szczegółowości
3.
3.
najlepsze modele
najlepsze modele
odpowiadają
odpowiadają
rzeczywistości
rzeczywistości
4.
4.
żaden model
żaden model
nie jest wystarczający
nie jest wystarczający
© 2001-2005 Bartosz Walt
er
9
W świecie obiektowym
W świecie obiektowym
W świecie obiektowym
W świecie obiektowym
Elementy świata
Elementy świata
– świat składa się z
obiektów
– procesy i dane są
zintegrowane
Komunikacja między nimi
Komunikacja między nimi
– obiekty komunikują się za pomocą
przekazywania zdarzeń
Ten model jest łatwy do zrozumienia!
Ten model jest łatwy do zrozumienia!
© 2001-2005 Bartosz Walt
er
10
Klasy i obiekty
Klasy i obiekty
Klasy i obiekty
Klasy i obiekty
Cel:
Cel:
reprezentacja za pomocą pewnego
elementu
świata
zmiana cyklu rozwoju na bardziej elastyczny
dostosowanie metod analizy do języków OOP
Obiekt:
Obiekt:
reprezentacja
konkretnego elementu
świata,
posiadająca pewne
cechy
i oferująca pewne
usługi
Klasa:
Klasa:
zbiór
obiektów podobnych lub o wspólnych
cechach
© 2001-2005 Bartosz Walt
er
11
Czym jest UML?
Czym jest UML?
Czym jest UML?
Czym jest UML?
UML jest językiem
wizualizacji,
specyfikacji, konstrukcji i
dokumentacji
artefaktów
związanych z tworzeniem
oprogramowania
UML oznacza
Zunifikowany Język
Modelowania
(Unified Modelling
Language)
UML abstrahuje od
obiektu
modelowania
i
metodologii
modelowania
Model UML jest wypadkową wielu
widoków
różnych aspektów
systemu.
© 2001-2005 Bartosz Walt
er
12
Unifikować, czyli łączyć
Unifikować, czyli łączyć
Unifikować, czyli łączyć
Unifikować, czyli łączyć
UML łączy najlepsze cechy:
UML łączy najlepsze cechy:
– modelowania
danych (EER)
czyli - jak przedstawić informację?
– modelowania
czynności (DFD)
czyli - co się dzieje w systemie?
– modelowania
obiektowego (OOA)
czyli - jak zrozumiale przedstawiać świat?
– zarządzania złożonością (komponenty)
czyli - divide et impera!
© 2001-2005 Bartosz Walt
er
13
UML w skrócie
UML w skrócie
UML w skrócie
UML w skrócie
• 9 typów diagramów - perspektyw
– modelowanie wymagań
– modelowanie struktury statycznej koncepcji
– modelowanie zależności dynamicznych i
zachowań
– modelowanie struktury fizycznej
• mechanizm rozszerzeń
– stereotypy (ang. stereotypes)
– metki (ang. tags)
– ograniczenia (ang. constraints)
© 2001-2005 Bartosz Walt
er
14
UML: typy diagramów
UML: typy diagramów
UML: typy diagramów
UML: typy diagramów
– przypadków użycia
(use-case diagram)
– klas i obiektów
(class diagram)
– stanu obiektów
(statechart diagram)
– współpracy
(collaboration diagram)
– sekwencji
(sequence diagram)
– czynności
(activity diagram)
– komponentów
(component diagram)
– rozmieszczenia
(deployment diagram)
© 2001-2005 Bartosz Walt
er
15
Historia UML
Historia UML
Historia UML
Historia UML
Dawno temu...
Dawno temu...
– różnorodne, niespójne metodyki obiektowe
(OMT, OOSE, Fusion, OOA/OOD)
Początki UML i
Początki UML i
Trzej Amigos
Trzej Amigos
– 1994 - prace nad Metodą Zunifikowaną
– 1995 - wersja 0.9 UML
J. Rumbaugh
J. Rumbaugh
G. Booch
G. Booch
I. Jacobson
I. Jacobson
© 2001-2005 Bartosz Walt
er
16
Historia UML (cd.)
Historia UML (cd.)
Historia UML (cd.)
Historia UML (cd.)
Rozwój UML
Rozwój UML
– I.1997 - wersja 1.0 UML
– XI.1997 - standaryzacja przez OMG
Obecnie
Obecnie
– wersja 1.4 UML
– prace nad 2.0 UML
http://www.omg.org/uml/
http://www.omg.org/uml/
http://www.rational.com/u
http://www.rational.com/u
ml/
ml/
© 2001-2005 Bartosz Walt
er
17
Wsparcie ze strony
Wsparcie ze strony
przemysłu SW
przemysłu SW
Wsparcie ze strony
Wsparcie ze strony
przemysłu SW
przemysłu SW
UML Partners Consortium
UML Partners Consortium
udział największych firm
produkujących oprogramowanie:
– DEC, HP, Microsoft, IBM, Oracle, Texas
Instruments
oraz producenci CASE
– Rational Software
© 2001-2005 Bartosz Walt
er
18
Cykl tworzenia
Cykl tworzenia
oprogramowania
oprogramowania
Cykl tworzenia
Cykl tworzenia
oprogramowania
oprogramowania
UML jest
niezależny od procesu
ale twórcy sugerują proces;
– ukierunkowany na
przypadki użycia
zorientowany na
architekturę
– iteracyjny i przyrostowy
© 2001-2005 Bartosz Walt
er
19
Przykład
Przykład
Przykład
Przykład
–
Biblioteka
Biblioteka
prowadzi wypożyczalnię wydawnictw:
prowadzi wypożyczalnię wydawnictw:
książek i czasopism
książek i czasopism
. Korzystają z niej
. Korzystają z niej
czytelnicy.
czytelnicy.
–
Wszystkie wydawnictwa mogą występować
Wszystkie wydawnictwa mogą występować
w
w
wielu egzemplarzach
wielu egzemplarzach
.
.
–
Czytelnicy mogą
Czytelnicy mogą
rezerwować i odwoływać
rezerwować i odwoływać
rezerwacje
rezerwacje
na wydawnictwa.
na wydawnictwa.
–
Książka może być
Książka może być
dostępna, wypożyczona,
dostępna, wypożyczona,
zaginiona, lub zniszczona.
zaginiona, lub zniszczona.
© 2001-2005 Bartosz Walt
er
20
Statyczne zachowanie
Statyczne zachowanie
systemu
systemu
Statyczne zachowanie
Statyczne zachowanie
systemu
systemu
Jak modelować funkcjonalność
Jak modelować funkcjonalność
czyli o przypadkach użycia
czyli o przypadkach użycia
© 2001-2005 Bartosz Walt
er
21
Aktor, czyli działacz
Aktor, czyli działacz
Aktor, czyli działacz
Aktor, czyli działacz
Aktor
Aktor
Aktor
to
to
ktoś (coś),
ktoś (coś),
kto (co) musi
kto (co) musi
współdziałać z modelowanym
współdziałać z modelowanym
systemem.
systemem.
© 2001-2005 Bartosz Walt
er
22
Aktor w UMLu
Aktor w UMLu
Aktor w UMLu
Aktor w UMLu
Aktor
Aktor
w UMLu jest klasą
w UMLu jest klasą
(nie
(nie
obiektem!)
obiektem!)
o nadanym stereotypie
o nadanym stereotypie
Actor.
Actor.
Można go oznaczać poprzez
Można go oznaczać poprzez
–
ikonę
ikonę
–
klasę ze stereotypem
klasę ze stereotypem
Czytelnik
Czytelnik
<< Actor >>
© 2001-2005 Bartosz Walt
er
23
Przypadek użycia
Przypadek użycia
Przypadek użycia
Przypadek użycia
Przypadek użycia (
Przypadek użycia (
use-case
use-case
)
)
– jest sposobem
, w jaki aktorzy używają (chcą
używać) systemu
– jest podstawową jednostką funkcjonalności
.
– definiuje
wymagania
Czego potrzebują
użytkownicy?
– Bibliotekarz...
– Czytelnik...
© 2001-2005 Bartosz Walt
er
24
Diagram
Diagram
use-case
use-case
Diagram
Diagram
use-case
use-case
Definiuje
Definiuje
– granice
systemu,
czyli jak daleko sięga model
– jego
kontekst
,
czyli co pozostaje na zewnątrz
– użytkowników
systemu,
czyli aktorów
– funkcje
systemu,
– zależności
między użytkownikami i
funkcjami
... i jest czytelny dla odbiorcy!
... i jest czytelny dla odbiorcy!
© 2001-2005 Bartosz Walt
er
25
Przykład diagramu
Przykład diagramu
use-case
use-case
Przykład diagramu
Przykład diagramu
use-case
use-case
dodanie tytułu
aktualizacja tytułu
dodanie
administracja
Bibliotekarz
dodanie czasopisma
dodanie książki
<<extends>>
<<extends>>
<<uses>>
<<uses>>
<<uses>>
© 2001-2005 Bartosz Walt
er
26
Użycie funkcji
Użycie funkcji
Użycie funkcji
Użycie funkcji
Aktor używa funkcji (wykonuje
Aktor używa funkcji (wykonuje
funkcję)
funkcję)
– domyślny stereotyp
<<communicates>>
– od
użytkownika do funkcji
Bibliotekarz
rezerwacja
© 2001-2005 Bartosz Walt
er
27
Zależności między funkcjami
Zależności między funkcjami
(cd.)
(cd.)
Zależności między funkcjami
Zależności między funkcjami
(cd.)
(cd.)
Funkcja uszczegóławia funkcję
Funkcja uszczegóławia funkcję
– relacja dziedziczenia
– stereotyp
<<extends>>
– funkcje abstrakcyjna
– od
funkcji szczegółowej
do
funkcji
ogólnej
dodanie czasopisma
dodanie tytułu
<<extends>>
© 2001-2005 Bartosz Walt
er
28
Zależności między funkcjami
Zależności między funkcjami
(cd.)
(cd.)
Zależności między funkcjami
Zależności między funkcjami
(cd.)
(cd.)
Funkcja wywołuje inną funkcję
Funkcja wywołuje inną funkcję
– relacja zależności
funkcji
– ponowne użycie funkcji/komponentu
– stereotyp
<<uses>>
– od
funkcji wołającej
do
funkcji wołanej
dodanie
<<uses>>
administracja
© 2001-2005 Bartosz Walt
er
29
Statyczne zachowanie
Statyczne zachowanie
systemu
systemu
Statyczne zachowanie
Statyczne zachowanie
systemu
systemu
Modelowanie struktury danych
Modelowanie struktury danych
czyli o diagramach klas i obiektów
czyli o diagramach klas i obiektów
© 2001-2005 Bartosz Walt
er
30
Klasa w UML
Klasa w UML
Klasa w UML
Klasa w UML
Klasa
Klasa
przedstawia elementy świata o
przedstawia elementy świata o
podobnej semantyce i podobnym
podobnej semantyce i podobnym
zachowaniu
zachowaniu
.
.
Posiada
Posiada
nazwę
nazwę
,
,
operacje
operacje
i
i
atrybuty
atrybuty
.
.
– nazwa pochodzi z dziedziny zastosowania
– standard nazywania
klas
Jak wyodrębnić klasy?
Jak wyodrębnić klasy?
© 2001-2005 Bartosz Walt
er
31
Zakres widoczności
Zakres widoczności
operacji i atrybutów
operacji i atrybutów
Zakres widoczności
Zakres widoczności
operacji i atrybutów
operacji i atrybutów
+ publiczne
+ publiczne
(public)
(public)
– widoczne dla wszystkich
# chronione
# chronione
(protected)
(protected)
– widoczne dla potomków
–
–
prywatne
prywatne
(private)
(private)
– widoczne wewnątrz klasy (kontenera)
–
–
implementacyjne
implementacyjne
(implementation)
(implementation)
– widoczne wewnątrz pakietu
(nadkontenera)
© 2001-2005 Bartosz Walt
er
32
Operacje
Operacje
Operacje
Operacje
Operacje to usługi oferowane przez
Operacje to usługi oferowane przez
klasę
klasę
– argumenty i typ wartości
– interfejs i deklaracja
a
definicja
– operacje statyczne
ich zakres obejmuje
klasę
a nie
obiekt
– operacje abstrakcyjne
posiadają tylko
deklarację operacji
, definicje
są w klasach potomnych
© 2001-2005 Bartosz Walt
er
33
Atrybuty
Atrybuty
Atrybuty
Atrybuty
Atrybuty to
Atrybuty to
informacje
informacje
zawarte
zawarte
w
w
klasie/obiekcie
klasie/obiekcie
– cechy
klasy/obiektu
– relacje
z innymi klasami/obiektami
– atrybuty
statyczne
– atrybuty
wywiedzione
(derived)
‘/’
– typy atrybutów
Jak odróżnić klasę od atrybutu?
Jak odróżnić klasę od atrybutu?
© 2001-2005 Bartosz Walt
er
34
Asocjacje
Asocjacje
Asocjacje
Asocjacje
Reprezentują
Reprezentują
relacje
relacje
, w jakich
, w jakich
znajdują się klasy/obiekty
znajdują się klasy/obiekty
– posiadają
liczność (krotność)
– wiążą
1 lub więcej
klas
– mogą być
nazwane
i posiadać
role
– mogą mieć
własności i ograniczenia
Książka
ID : String
podaj ID()
Tytuł
tytuł : String
ISBN : String
podaj tytuł()
1..1
1..*
+posiada
1..1
1..*
© 2001-2005 Bartosz Walt
er
35
Krotność asocjacji
Krotność asocjacji
Krotność asocjacji
Krotność asocjacji
Oznacza
Oznacza
liczbę obiektów
liczbę obiektów
(nie klas!)
(nie klas!)
,
,
które są ze sobą skojarzone
które są ze sobą skojarzone
– określone przez
dolny i górny zakres
– określane
liczbą naturalną
(0, 1, 2, ...)
lub
gwiazdką
(* - dowolna liczba)
– mają duże znaczenie na etapie projektu
Jaka jest różnica między oznaczeniami:
Jaka jest różnica między oznaczeniami:
*
*
i
i
1..*
1..*
?
?
© 2001-2005 Bartosz Walt
er
36
Agregacje
Agregacje
Agregacje
Agregacje
Modelują relację
Modelują relację
część-całość
część-całość
– agregacja współdzielona
(shared) -
część
może
należeć do wielu całości
– agregacja składowa
(composition) -
część jest ściśle
uzależniona
od
całości
Tom
ID tomu : int
Książka
ID : String
podaj ID()
1..1
1..*
+składa się
1..1
1..*
© 2001-2005 Bartosz Walt
er
37
Zależność
Zależność
Zależność
Zależność
Jest ogólnym określeniem
Jest ogólnym określeniem
zależności
zależności
(
(
dependency
dependency
)
)
dwóch klas/obiektów
dwóch klas/obiektów
– od klasy zależnej do nadrzędnej
– często używane
ze stereotypem
– powiązanie elementów
na różnych
poziomach abstrakcji
Tom
ID tomu : int
Książka
ID : String
podaj ID()
<<friend>>
© 2001-2005 Bartosz Walt
er
38
Dziedziczenie
Dziedziczenie
Dziedziczenie
Dziedziczenie
Potomek dziedziczy cechy przodka
Potomek dziedziczy cechy przodka
– ułatwia
zarządzanie złożonością
– zakres widoczności
w dziedziczeniu
– klasa abstrakcyjna
jako przodek
dostarcza tylko definicji operacji
– polimorfizm
operacji
– tryby dziedziczenia:
overlapping,
disjoint, complete, incomplete
© 2001-2005 Bartosz Walt
er
39
Dziedziczenie (cd.)
Dziedziczenie (cd.)
Dziedziczenie (cd.)
Dziedziczenie (cd.)
Książka
podaj ID()
Wydawnictwo
ID : String
podaj ID()
Czasopismo
podaj ID()
{complete}
przykładowy diagram dziedziczenia
przykładowy diagram dziedziczenia
© 2001-2005 Bartosz Walt
er
40
Przykład diagramu klas
Przykład diagramu klas
Przykład diagramu klas
Przykład diagramu klas
Tytuł książki
ISBN : String
Tytuł czasopisma
ISSN : String
Wydawnictwo
ID : String
Tytuł
nazwa
/ liczba rezerwacji
1..1
0..*
1..1
+jest kopią
0..*
Rezerwacja
data : Date
1..1
0..*
+jest rezerwowany przez
1..1
0..*
Dane czytelnika
imię
nazwisko
adres
0..*
1..1
0..*
+składa
1..1
Wypożyczenie
data : Date
1..1
0..1
1..1
+dotyczy
0..1
1..1
0..*
+jest związane
1..1
0..*
© 2001-2005 Bartosz Walt
er
41
Diagram klas (cd.)
Diagram klas (cd.)
Diagram klas (cd.)
Diagram klas (cd.)
–
Tytuł
Tytuł
jest klasą abstrakcyjną
jest klasą abstrakcyjną
–
Książka
Książka
i
i
Czasopismo
Czasopismo
są specjalizacjami
są specjalizacjami
Tytułu
Tytułu
–
Czytelnik
Czytelnik
może mieć wiele
może mieć wiele
Wypożyczeń
Wypożyczeń
–
Wypożyczenie
Wypożyczenie
dotyczy jednego
dotyczy jednego
Czytelnika
Czytelnika
© 2001-2005 Bartosz Walt
er
42
Case Study
Case Study
Case Study
Case Study
Biblioteka:
Biblioteka:
opis na załączonych kartkach
opis na załączonych kartkach
© 2001-2005 Bartosz Walt
er
43
Case Study
Case Study
Case Study
Case Study
wypożyczenie czasopisma
wypożyczenie książki
wypożyczenie
<<extends>>
<<extends>>
wyszukanie obiektu
<<uses>>
rezerwacja
<<uses>>
rozliczenie
Bibliotekarz
Czytelnik
udostępnienie
© 2001-2005 Bartosz Walt
er
44
Case Study
Case Study
Case Study
Case Study
Katalog
Katalog rzeczowy
Katalog alfabetyczny
Katalog autorski
Katalog czytelników
Rozliczenia
kwota
data
Autor
imię
nazwisko
Katalog wydawnictw
Wypożyczenia
data
Karta czytelnicza
imię
nazwisko
adres
wiek
1..*
1..*
0..*
1
1
0..*
Tytuł
autor
tytuł
ISBN
1..*
1..*
Rezerwacje
data początkowa
1..*
1
0..*
1
Egzemplarz
sygnatura
0..1
1..*
0..1
1..*
0..*
1
0..*
1
1
0..*
1..*
1
0..*
1
0..*
1
1..*
1..*
0..*
1
0..*
1
© 2001-2005 Bartosz Walt
er
45
Case Study
Case Study
Case Study
Case Study
Nowa
zniszczona
wypożyczona
dostępna
zagubiona
zwrot
[ czas > 3 mies. ]
naprawa
zarezerwowana
wypożyczenie
przegląd[ uszkodzenie > 30% ]
rezerwacja
odwołanie rezerwacji
© 2001-2005 Bartosz Walt
er
46
Case Study
Case Study
Case Study
Case Study
: Bibliotekarz
: Katalog
: Tytuł
: Rezerwacje
: Katalog
czytelników
: Karta
czytelnicza
zamówienie
sprawdź
sprawdź
wypożycz
sprawdź stan
wypożycz
sprawdź
© 2001-2005 Bartosz Walt
er
47
Literatura
Literatura
Literatura
Literatura
• G. Booch i in. "UML –
przewodnik użytkownika", WNT
2001
• M. Fowler „UML w kropelce”,
LT&P 2002
• S.S. Alhir “UML in a nutshell”,
O’Reilly, 1998
• P. Coad, E. Yourdon “Analiza
obiektowa”, Read Me, 1991
• H. E. Eriksson, M. Penker “UML
Toolkit”, Wiley, 1998
© 2001-2005 Bartosz Walt
er
48
Dynamiczne zachowanie
Dynamiczne zachowanie
obiektu
obiektu
Dynamiczne zachowanie
Dynamiczne zachowanie
obiektu
obiektu
Diagramy stanu obiektu
Diagramy stanu obiektu
czyli z życia (obiektów) wzięte
czyli z życia (obiektów) wzięte
© 2001-2005 Bartosz Walt
er
49
Diagram stanu
Diagram stanu
Diagram stanu
Diagram stanu
Modeluje
Modeluje
cykl (fazy) życia
cykl (fazy) życia
obiektu
obiektu
– określa
dozwolone stanu
obiektu
– definiuje
dopuszczalne przejścia
– określa
zdarzenia
, na które obiekt reaguje
– określa
akcje
, jakie zachodzą podczas
przejścia
krojenie [nóż jest
ostry]
© 2001-2005 Bartosz Walt
er
50
Stany obiektu i przejścia
Stany obiektu i przejścia
Stany obiektu i przejścia
Stany obiektu i przejścia
Dopuszczalne stany
Dopuszczalne stany
– stany
początkowy
i
końcowy
– jeden ze
stanów pośrednich
Przejście jest opisane przez
Przejście jest opisane przez
– zdarzenie
, które
wyzwala
przejście
– warunek
, który weryfikuje
dopuszczalność
przejścia
– akcję
, która jest wykonywana
w
momencie
przejścia
© 2001-2005 Bartosz Walt
er
51
Stany obiektów w UML
Stany obiektów w UML
Stany obiektów w UML
Stany obiektów w UML
Reprezentacja stanu
Reprezentacja stanu
– nazwa
– zmienne stanu
– czynności
Reprezentacja przejścia
Reprezentacja przejścia
zdarzenie
[warunek] /
akcja
^ nowe-zdarzenie
zniszczona
entry: usuń z rejestru
zapisz [operacja dozwolona] / ^dysk.zapisz()
© 2001-2005 Bartosz Walt
er
52
Zdarzenia w UMLu
Zdarzenia w UMLu
Zdarzenia w UMLu
Zdarzenia w UMLu
Cztery rodzaje zdarzeń w UMLu
Cztery rodzaje zdarzeń w UMLu
– warunek
staje się prawdziwy
– odbiór sygnału
od innego obiektu
– wywołanie operacji
przez inny obiekt
– upływ określonego czasu
– błędy (poza definicją UML)
© 2001-2005 Bartosz Walt
er
53
Obsługa zdarzeń
Obsługa zdarzeń
Obsługa zdarzeń
Obsługa zdarzeń
Wywołania operacji
Wywołania operacji
– wywołujący obiekt jest
aktywny
– wywoływany obiekt jest
pasywny
Obsługa sygnałów
Obsługa sygnałów
– wywoływany i wywołujący
obiekt muszą
być
aktywne
– sygnał jest obiektem ze
stereotypem
<<signal>>
© 2001-2005 Bartosz Walt
er
54
Stany i podstany
Stany i podstany
Stany i podstany
Stany i podstany
Stan może mieć podstany
Stan może mieć podstany
– typu or
- aktywny jest
jeden
podstan
– typu and
- aktywnych może być
kilka
podstanów
zarezerwowana
wypożyczona
zarezerwowana
wypożyczona
zarezerwowana
zwrot
wypożyczenie
© 2001-2005 Bartosz Walt
er
55
Dynamiczne zachowanie
Dynamiczne zachowanie
obiektu
obiektu
Dynamiczne zachowanie
Dynamiczne zachowanie
obiektu
obiektu
Diagramy zachowania obiektu
Diagramy zachowania obiektu
czyli z system w działaniu
czyli z system w działaniu
© 2001-2005 Bartosz Walt
er
56
Modelowanie dynamiczne w
Modelowanie dynamiczne w
UMLu
UMLu
Modelowanie dynamiczne w
Modelowanie dynamiczne w
UMLu
UMLu
Diagramy modelowania zachowania
Diagramy modelowania zachowania
– czynności
(activity diagram)
odwzorowują
akcje
wykonywane na obiektach
dokonują podziału
odpowiedzialności
za akcje
– współpracy
(collaboration diagram)
wiążą
współpracujące obiekty
z uwzględnieniem
kolejności
pokazują
zależności
między obiektami
słabo lub wcale wspierane przez Rational
Rose!
– sekwencji
(sequence diagram)
© 2001-2005 Bartosz Walt
er
57
Modelowanie dynamiczne
Modelowanie dynamiczne
w UMLu (cd.)
w UMLu (cd.)
Modelowanie dynamiczne
Modelowanie dynamiczne
w UMLu (cd.)
w UMLu (cd.)
Diagram sekwencji
Diagram sekwencji
– jak obiekty współdziałają
ze sobą
– sposób
wysyłania i odbioru zdarzeń
– składowa
czasu
: Bibliotekarz
: Wydawnictwo
: Czytelnik
czy istnieje?
pobierz liczbę
zarezerwuj
© 2001-2005 Bartosz Walt
er
58
Typy zdarzeń
Typy zdarzeń
Typy zdarzeń
Typy zdarzeń
UML rozróżnia typy zdarzeń
UML rozróżnia typy zdarzeń
– synchroniczne
, np. wywołania metod
– asynchroniczne
, np. sygnały
– proste
, np. przekazanie kontroli
– synchroniczne z natychmiastowym
powrotem
© 2001-2005 Bartosz Walt
er
59
Istnienie obiektu
Istnienie obiektu
Istnienie obiektu
Istnienie obiektu
Prostokąt na linii życia obiektu
Prostokąt na linii życia obiektu
początek
- aktywacja obiektu
koniec
- dezaktywacja obiektu
usunięcie obiektu
- znak X
iteracja
- prostokąt obejmujący zdarzenia
rekursja
- wywołanie własnych operacji
© 2001-2005 Bartosz Walt
er
60
Fizyczna struktura systemu
Fizyczna struktura systemu
Fizyczna struktura systemu
Fizyczna struktura systemu
Podział na komponenty
Podział na komponenty
czyli małe jest piękne
czyli małe jest piękne
© 2001-2005 Bartosz Walt
er
61
Pakiety
Pakiety
Pakiety
Pakiety
Czym jest pakiet?
Czym jest pakiet?
– podsystemem
– organizuje
związane ze sobą elementy
– jak
importować
z obcych pakietów
© 2001-2005 Bartosz Walt
er
62
Pakiety (cd.)
Pakiety (cd.)
Pakiety (cd.)
Pakiety (cd.)
Podział - i co dalej?
Podział - i co dalej?
– relacje między pakietami
zależność, generalizacja, import elementów
– widoczność elementów w pakiecie
analogicznie do
widoczności cech klas
GUI
Obsługa
wypożyczeń
Baza danych
Usługi
katalogowe
© 2001-2005 Bartosz Walt
er
63
Komponenty
Komponenty
Komponenty
Komponenty
Komponenty systemu
Komponenty systemu
– są
fizyczną reprezentacją
elementu modelu
– relacja
zależności
komponentów
– relacje ze znacznikiem
{location}
przyporządkowanie
komponentów
do
zasobów
– dostęp do usług poprzez
interfejsy
relacja wywołania
(stereotyp <<calls>>)
Dialog
logowania
Menedżer
okien
© 2001-2005 Bartosz Walt
er
64
Diagram rozmieszczenia
Diagram rozmieszczenia
Diagram rozmieszczenia
Diagram rozmieszczenia
Rozmieszczenie
Rozmieszczenie
(deployment)
(deployment)
fizyczna architektura
systemu
przyporządkowanie
modułów do urządzeń
zależności
między zasobami
Serwer
aplikacji
Usługi
katalogowe
Usługi
katalogowe
© 2001-2005 Bartosz Walt
er
65
Zaawansowane elementy
Zaawansowane elementy
UML
UML
Zaawansowane elementy
Zaawansowane elementy
UML
UML
Stereotypy
Stereotypy
czyli szablony myślenia
czyli szablony myślenia
© 2001-2005 Bartosz Walt
er
66
Po co stereotypy?
Po co stereotypy?
Po co stereotypy?
Po co stereotypy?
Odpowiednie dać rzeczy - słowo...
Odpowiednie dać rzeczy - słowo...
brak elementu o
precyzyjnym znaczeniu
nie wiem, jak ci to wytłumaczyć...
zbyt ogólne znaczenia
istniejących
elementów
zegar
zegar
© 2001-2005 Bartosz Walt
er
67
Nowe znaczenia
Nowe znaczenia
Nowe znaczenia
Nowe znaczenia
Dawniej...
Dawniej...
dodajmy
nowy element
języka
– dużo symboli, dużo znaczeń
UML
UML
wykorzystajmy
stary element
o
nowym znaczeniu
+ mało symboli, dużo znaczeń!
© 2001-2005 Bartosz Walt
er
68
Dlaczego stereotypy?
Dlaczego stereotypy?
Dlaczego stereotypy?
Dlaczego stereotypy?
Same zalety...
Same zalety...
potężny
mechanizm rozszerzeń
stosowane do
wszystkich elementów
dowolna precyzja
znaczenia
proste i czytelne
diagramy
<<odkrycie>>
<<odkrycie>>
© 2001-2005 Bartosz Walt
er
69
Jak wygląda stereotyp?
Jak wygląda stereotyp?
Jak wygląda stereotyp?
Jak wygląda stereotyp?
Przedstawianie stereotypu
Przedstawianie stereotypu
sam łańcuch
<<stereotyp>>
łańcuch <<stereotyp>>
w/przy elemencie
ikona
stereotypu
Czytelnik
Czytelnik
<< Actor >>
© 2001-2005 Bartosz Walt
er
70
Standardowe stereotypy
Standardowe stereotypy
Standardowe stereotypy
Standardowe stereotypy
UML ma kilkadziesiąt gotowych
UML ma kilkadziesiąt gotowych
stereotypów
stereotypów
<<actor>>
ta klasa reprezentuje aktora
<<import>>
ta zależność definiuje import elementu
<<signal>>
ten obiekt jest sygnałem
<<uses>>
przypadek użycia korzysta z innego
© 2001-2005 Bartosz Walt
er
71
Zaawansowane elementy
Zaawansowane elementy
UML
UML
Zaawansowane elementy
Zaawansowane elementy
UML
UML
Własności i znaczniki
Własności i znaczniki
czyli jak być precyzyjnym
czyli jak być precyzyjnym
© 2001-2005 Bartosz Walt
er
72
Atrybuty elementów
Atrybuty elementów
Atrybuty elementów
Atrybuty elementów
Jak opisać atrybut elementu modelu?
Jak opisać atrybut elementu modelu?
...klasa ma status ‘draft’...
...ten atrybut nie może zostać zmieniony...
Rodzaje atrybutów
Rodzaje atrybutów
logiczne (true lub false)
{abstract}, {invariant}
o podanej wartości
{status = ‘draft’}
© 2001-2005 Bartosz Walt
er
73
Własności
Własności
Własności
Własności
Własność
Własność
(tagged value)
(tagged value)
definicja własności elementu w postaci
wartość
zapis
łańcuch przy elemencie
komentarz
Bibliotekarz
chory
© 2001-2005 Bartosz Walt
er
74
Znaczniki
Znaczniki
Znaczniki
Znaczniki
Znacznik
Znacznik
(tagged value)
(tagged value)
definicja własności elementu w postaci
nazwa = wartość
zapis
{nazwa1 = wartość1, nazwa2 = wartość2}
{nazwa1}
Są też znaczniki standardowe...
Są też znaczniki standardowe...
np.
abstract, precondition...
© 2001-2005 Bartosz Walt
er
75
Ograniczenia
Ograniczenia
Ograniczenia
Ograniczenia
Ograniczenie
Ograniczenie
(constraint)
(constraint)
jest
własnością o wartości logicznej
jest określone w
pewnym języku
Obiektowy Język Ograniczeń (OCL)
Obiektowy Język Ograniczeń (OCL)
propozycja
formalnego języka
dla UML
bibliotekarz.wiek > 25 AND bibliotekarz.wiek < 65
bibliotekarz.wiek > 25 AND bibliotekarz.wiek < 65
© 2001-2005 Bartosz Walt
er
76
Zaawansowane elementy
Zaawansowane elementy
UML
UML
Zaawansowane elementy
Zaawansowane elementy
UML
UML
Relacyjne bazy danych
Relacyjne bazy danych
czyli łączenie światów
czyli łączenie światów
© 2001-2005 Bartosz Walt
er
77
Relacyjnie czy obiektowo?
Relacyjnie czy obiektowo?
Relacyjnie czy obiektowo?
Relacyjnie czy obiektowo?
Relacyjne bazy danych
Relacyjne bazy danych
dobrze rozwinięte
szeroko stosowane
wiele rozwiązań
Obiektowe bazy danych
Obiektowe bazy danych
mało rozwiązań
niepopularne
A
A
UML?
UML?
© 2001-2005 Bartosz Walt
er
78
RBD w UMLu
RBD w UMLu
RBD w UMLu
RBD w UMLu
Baza danych
Baza danych
komponent z stereotypem
<<database>>
Schemat
Schemat
przestrzeń użytkownika w bazie danych
pakiet ze stereotypem <<schema>>
Oracle
<<database>>
© 2001-2005 Bartosz Walt
er
79
RBD w UMLu (cd.)
RBD w UMLu (cd.)
RBD w UMLu (cd.)
RBD w UMLu (cd.)
Tabela
Tabela
klasa ze stereotypem <<table>>
Klucze podstawowe
Klucze podstawowe
znacznik {PK}
na atrybucie
ograniczenie integralnościowe
jako operacja
UŻYTKOWNIK
ID : INTEGER
OGR_INT_ID()
<<RelationalTable>>
© 2001-2005 Bartosz Walt
er
80
RBD w UMLu (cd.)
RBD w UMLu (cd.)
RBD w UMLu (cd.)
RBD w UMLu (cd.)
Klucze obce
Klucze obce
znacznik {FK}
na atrybucie
ograniczenie integralnościowe
jako
operacja
Ograniczenia
Ograniczenia
operacje ze odpowiednim stereotypem
,
np. <<check>>, <<unique>>
Wyzwalacze
Wyzwalacze
operacje ze stereotypem
<<trigger>>
© 2001-2005 Bartosz Walt
er
81
RBD w UMLu (cd.)
RBD w UMLu (cd.)
RBD w UMLu (cd.)
RBD w UMLu (cd.)
Relacje nie identyfikujące
Relacje nie identyfikujące
FK potomka
jest podzbiorem
PK rodzica
relacja ze stereotypem
<<not-identifying>>
Relacje identyfikujące
Relacje identyfikujące
FK potomka
jest równy
PK rodzica
potomek jest
ściśle zależny
od rodzica
relacja ze stereotypem
<<identifying>>
© 2001-2005 Bartosz Walt
er
82
Podsumowanie
Podsumowanie
Podsumowanie
Podsumowanie
Unifikacja postępuje
Unifikacja postępuje
czyli czy warto się przyłączyć?
czyli czy warto się przyłączyć?
© 2001-2005 Bartosz Walt
er
83
Podsumowanie
Podsumowanie
Podsumowanie
Podsumowanie
+ Potęga
+ Potęga
metod obiektowych
metod obiektowych
+ UML jest
+ UML jest
de facto
de facto
standardem
standardem
+ Wsparcie ze strony
+ Wsparcie ze strony
producentów
producentów
SW
SW
+ Możliwości
+ Możliwości
rozszerzeń
rozszerzeń
© 2001-2005 Bartosz Walt
er
84
Literatura
Literatura
Literatura
Literatura
• H. E. Eriksson, M. Penker
“UML Toolkit”, Wiley, 1998
• S.S. Alhir “UML in a
nutshell”, O’Reilly, 1998
• Rational Software “Rational
Rose Documentation”, 2000
• http://www.rational.com/uml/