Katedra Oprogramowania
Wydział Informatyki PB

Inżynieria oprogramowania
Pomocnik UML-owy
(wersja UML v. 1.5 i v. 2.0)


Diagram przypadków użycia:

uml_pu1.gif (2102 bytes)

Związki pomiędzy przypadkami użycia
Zawieranie Rozszerzanie Uogólnienie

uml_pu2.gif (2150 bytes)

uml_pu3.gif (2129 bytes)

uml_pu4.gif (2293 bytes)
przypadek użycia A ZAWSZE włącza przypadek użycia B przypadek użycia D CZASAMI (w pewnych sytuacjach) rozszerza przypadek użycia C analogiczne do dziedziczenia klas

Diagram klas:

Widoczność atrybutów i operacji

+ publiczny (public) nieograniczony dostęp uml_kl1.gif (4004 bytes)
# chroniony (protected) w ramach klasy + potomkowie 
- prywatny (private) tylko operacje składowe
 
Związki pomiędzy klasami
Uogólnienia Powiązania Zależności

uml_kl2.gif (4497 bytes)

uml_kl3.gif (5068 bytes)

uml_kl4.gif (2315 bytes)
Dziedziczenie klas;
kl. abstrakcyjna nie może mieć bezpośrednio egzemplarzy
Związki strukturalne pomiędzy klasami;
agregacja - znaczenie pojęciowe;
kompozycja (agregacja całkowita) - relacja wyłącznej własności i jedność czasu życia
Związek użycia (zmiany w definicji mogą mieć wpływ na klasę zależną)
 
Liczności (krotności) powiązań
uml_kl5.gif (2081 bytes)

   0..1 - opcjonalnie (zero lub jeden)
   1 - dokładnie jeden
   1..* - co najmniej jeden
   * - dowolnie wiele (zero lub więcej)
   m..n, k..l - lista zakresów

Jeden obiekt Klasa_C jest powiązany z licz_D obiektów   Klasa_D
Jeden obiekt Klasa_D jest powiązany z licz_C obiektów Klasa_C
 
Intrfejsy i konektory
uml_kl6.gif (2505 bytes)

Dwa rodzaje interfejsów:
udostępniający (ang. provided),
pozyskujący (ang. required).

Konektor składany - powiązanie dwóch interfejsów

Diagram przebiegu:

Rodzaje komunikatów (v. 1.5)

prosty jedynie przekazanie sterowania od obiektu do obiektu; nie są istotne szczegóły

uml_pr1.gif (4318 bytes)

synchroniczny obiekt wysyłający oczekuje na odpowiedź  i po jej otrzymaniu kontynuuje; zwykle reprezentuje wywołanie proceduralne
asynchroniczny oznacza powrót z wywołania procedury; może być pomijany
powrót po wysłaniu komunikatu obiekt kontynuuje swoje działania bez oczekiwania na odpowiedź
 

Tworzenie i usuwanie obiektu

Początek interakcji, obiekty na tym poziomie istnieją przed jej rozpoczęciem


Utworzenie obiektu jest wynikiem odebrania komunikatu stereotypowego <<create>> (wywołanie konstruktora)


Usunięcie obiektu - komunikat stereotypowy <<destroy>>, zakończenie linii życia

uml_pr2.gif (3757 bytes)
 

Rodzaje ramek (v. 2.0)

Alt - alternatywa; wykonywany jest ten fragment, przy którym spełniony jest warunek

Opt - opcjonalny; wykonywany jeśli spełniony jest warunek

Par
- współbieżność; wszystkie fragmenty wykonywane współbieżnie

Loop
- iteracja; warunek określa podstawę iteracji

Ref
- odwołanie; stanowi referencję do innej interakcji; przykrywa linie życia

Critical
(region) - obszar krytyczny; fragment może mieć tylko jeden wątek uruchomiony w danej chwili
uml_pr5.gif (8374 bytes)

Diagram czynności:

uml_cz1.gif (2257 bytes)

Rozgałęzienia Rozwidlenia i scalenia

uml_cz3.gif (3134 bytes)

uml_cz2.gif (4290 bytes)

Opisują ścieżki alternatywne; do wyboru jednej z nich dochodzi na podstawie wyliczonych wartości warunków (wyrażeń logicznych)
else - reprezentującego ścieżkę wybieraną, gdy wszystkie inne warunki nie są spełnione
Współbieżne wykonanie czynności; w punkcie scalenia dochodzi do synchronizacji współbieżnych przepływów sterowania
Wątek warunkowy - jeśli warunek jest fałszywy, zakłada się, że z punktu widzenia scalenia wątek ten jest juz zakończony

v. 2.0

Zdarzenia czasowe Sygnały

uml_cz4.png  (5335 bytes)

uml_cz6.png (5368 bytes)

Zdarzenie czasowe może zostać użyte do zamodelowania okresu oczekiwania. Tekst umieszczony obok klepsydry określa czas, jaki musi upłynąć. Krawędź wchodząca do zdarzenia czasowego oznacza, że jest ono aktywowane tylko raz. Zdarzenie czasowe bez wchodzących przepływów jest cykliczne, co oznacza, że jest aktywowane w odstępach czasu podanych obok symbolu klepsydry. Sygnały reprezentują interakcje z zewnętrznymi uczestnikami. Sygnały są komunikatami, które mogą być nadawane oraz odbieranie w trakcie czynności.
Węzeł sygnału odbieranego może spowodować uruchomienie akcji przedstawionej na diagramie czynności.
Węzeł sygnału nadawanego wysyła go do zewnętrznych uczestników. Sygnały nadawane są w sposób asynchroniczny, co oznacza, że czynność nie musi oczekiwać na odpowiedź, lecz po wysłaniu sygnału kontynuuje natychmiast działanie, począwszy od kolejnej akcji.
Rozpoczynanie czynności Kończenie czynności

uml_cz7.png (9463 bytes)

uml_cz8.png (10115 bytes)

Najprostszym oraz najczęstszym sposobem rozpoczynania czynności jest użycie pojedynczego węzła początkowego.
Inne sposoby rozpoczynania czynności mające specjalne znaczenie:
- czynność rozpoczyna się od odebrania danych wejściowych
- czynność rozpoczyna się w odpowiedzi na zdarzenia czasowe
- czynność rozpoczyna się w wyniku wzbudzenia przez sygnał.
Węzeł końcowy czynności kończy całą czynność.
Węzeł końcowy przepływu kończy jedynie własną ścieżkę, a nie całą czynność.
Obszar przerwań otaczają akcje, które mogą zostać przerwane, oraz zdarzenie mogące powodować przerwanie.
Obiekty przekazywane pomiędzy akcjami Partycje

uml_cz5.png (4757 bytes)

uml_cz9.png (4762 bytes)

Węzeł obiektu reprezentuje obiekt, który jest dostępny w określonym miejscu czynności. Może on zostać użyty w celu zaprezentowania faktu, że dany obiekt jest używany, tworzony lub modyfikowany przez dowolną z otaczających go akcji.
Przekaźnik danych wejściowych oznacza, że określony obiekt to dane wejściowe akcji.
Przekaźnik danych wyjściowych oznacza, że określony obiekt to dane wyjściowe z akcji.
Partycji można użyć aby pokazać, za które akcje są odpowiedzialni poszczególni uczestnicy czynności. Partycje dzielą diagram na wiersze oraz kolumny i zawierają akcje, które są wykonywane przez odpowiedzialne za nie grupy.

Diagram stanów:

uml_st1.gif (2981 bytes)

W momencie wystąpienia zdarzenia uruchamiającego sprawdzany jest warunek dozoru. Jeżeli warunek jest spełniony wówczas następuje przejście pomiędzy stanami podczas którego wykonywana jest akcja; w przeciwnym przypadku nie dochodzi do przejścia pomiędzy stanami.

 

Zdarzenia czasowe

after(okres_czasu) - zdarzenie następuje po upływie podanego okresu
np. after(14 dni), after(2 s.)
when(moment_czasu) - zdarzenie następuje w określonym momencie
np. when(termin_zapłaty), when(24:00)

Copyright © 2004-7 Marek Krętowski & Tomasz Łukaszuk. All rights reserved.
Revised:
2007-10-09