background image

Inżynieria Oprogramowania wykład 4 - UML

1

Inżynieria oprogramowania 

Inżynieria oprogramowania 

(4)

(4)

→ Elementy notacji (języka) UML

Wykorzystano: materiały pomocnicze do książki Booch, 

Rumbaugh, Jacobson „UML-przewodnik użytkownika” oraz szeroko 

dostępną literaturę…

Przygotował: dr inż. Dariusz 

Pierzchała

dariusz.pierzchala@wat.edu.pl

background image

Inżynieria Oprogramowania wykład 4 - UML

2

O czym teraz…

Geneza i charakterystyka UML;

Notacja UML;

Cel:

Zapoznanie z wybraną notacją wykorzystywaną w 

modelowaniu, analizie i projektowaniu systemów 

informatycznych;

background image

Inżynieria Oprogramowania wykład 4 - UML

3

Notacja

W inżynierii oprogramowania w każdej 

metodyce wytwarzania SI określa się m.in.:

modele systemu, 

notację (język)

 używaną do zapisu modeli;

Notacja:

Ułatwia 

dokumentowanie

 pośrednich  i końcowych 

wyników projektu;

Wspomaga

 pamięć i wyobraźnię;

Ułatwia 

komunikację

 zarówno między członkami 

zespołu  projektowego, jak i między zespołem 

projektowym a klientem;

Notacja powinna być powszechnie uznawana – 

ideałem są standardowy;

background image

Inżynieria Oprogramowania wykład 4 - UML

4

Notacja

Rodzaje notacji:

tekstowo-opisowa,

specyfikacje - ustrukturalizowany zapis tekstowy i 

numeryczny,

notacje graficzne;

Jeżeli notacja posiada składnię (np. symbole 

graficzne) oraz semantykę (znaczenie symboli 

graficznych), staje się językiem;

Szczególną uwagę skupimy na notacji 

graficznej;

Omówimy notację (język) 

UML

….

background image

Inżynieria Oprogramowania wykład 4 - UML

5

UML – notacja obiektowa

Unified Modeling Language – UML

The Unified Modeling Language™ (UML™) is the industry-standard 

language for specifying, visualizing, constructing, and 

documenting the artifacts of software systems. 

(http://www-306.ibm.com/software/rational/uml/)

Znormalizowany język graficzny służący do specyfikowania, 

tworzenia i dokumentowania wyników (np. modeli) systemów 

informatycznych;

Cechy:

uniwersalny

 – może być stosowany do modelowania zarówno 

systemów informacyjnych, systemów WWW, systemów czasu 

rzeczywistego;

•wspomaga jednoznacznie i szczegółowo 

specyfikowanie

 istotnych 

decyzji etapów analizy, projektu i implementacji;

•umożliwia dokumentowanie architektury systemu i wszystkich jego 

szczegółów w postaci tzw. 

artefaktów

: wymagania, architektura, 

projekt, kod źródłowy, plany projektu, testy, prototypy, kolejne 

wersje.

 

background image

Inżynieria Oprogramowania wykład 4 - UML

6

UML – notacja obiektowa

How it all began?
(strony IBM)

Ivar Jacobson

Jim Rumbaugh

Grady Booch

background image

Inżynieria Oprogramowania wykład 4 - UML

7

UML – geneza

UML – chronologia zdarzeń

UML 1.1 Wrzesień, 1997

UML 1.0 Styczeń, 1997

UML 0.9 & 0.91 Lipiec 1996

Unified Method 0.8

Booch’93

OMT-2

OMT-1

OOSE

Booch’91

OOPLSA’95

Inne metody 

Unified Partner’s Expertise

Fragmentacja

Unifikacja

Standaryzacja

Industrializacja

Styczeń, 2003

UML 1.4

UML 2.0

Ivar Jacobson

James Rumbaugh

Grady Booch

background image

Inżynieria Oprogramowania wykład 4 - UML

8

UML – geneza

Wybrani inicjatorzy UML:

Rational Software Corporation

IBM

Hewlett-Packard

I-Logix

ICON Computing

Intellicorp

MCI Systemhouse

Microsoft

ObjecTime

Oracle

Platinum Technology

Taskon

Texas Instruments/Sterling Software

Unisys

background image

Inżynieria Oprogramowania wykład 4 - UML

9

UML – składowe

Perspektywy modelowe – 4+1:

Implementacyjna

Przypadków użycia

Wdrożenia

Logiczna

Procesowa

Model

background image

Inżynieria Oprogramowania wykład 4 - UML

10

UML – składowe

Słownik UML dzieli się na trzy grupy: 

elementy, 

związki (relacje),

diagramy;

Model

 – kolekcja diagramów i informacji 

dodatkowych, opisujących statyczne i 
dynamiczne aspekty modelowanego systemu;

background image

Inżynieria Oprogramowania wykład 4 - UML

11

UML – elementy

Elementami UML są podstawowe obiektowe 

bloki konstrukcyjne stosowane do budowy 

modeli:

strukturalne

 

•statyczne części modelu reprezentujące składniki pojęciowe 

lub fizyczne;

klasa, interfejs, przypadek użycia, komponent, węzeł, 

kooperacja (grupa współdziałania);

Nazwa

Atrybuty

Operacje

Inne

(odpowiedzialność)

Kooperacja

Przypadek

użycia

Komponent

Węzeł

Interfejs

background image

Inżynieria Oprogramowania wykład 4 - UML

12

UML – elementy

Elementami UML są podstawowe obiektowe 

bloki konstrukcyjne stosowane do budowy 

modeli:

czynnościowe

 

•elementy dynamiczne wyrażone czasownikami
interakcja, stan;

stan

Pokaż okno

background image

Inżynieria Oprogramowania wykład 4 - UML

13

UML – elementy

Elementami UML są podstawowe obiektowe 

bloki konstrukcyjne stosowane do budowy 

modeli:

grupujące

•bloki organizacyjne modelu;
pakiet;

komentujące

•elementy objaśniające dla uwypuklenia lub zaznaczenia 

składników;

notatka

Pakiet

Notka

background image

Inżynieria Oprogramowania wykład 4 - UML

14

UML – związki

Związki:

służą do łączenia elementów; 

w praktyce najczęściej stosowane są  powiązanie i 

uogólnienie;

zależność, powiązanie (asocjacja), uogólnienie 

(generalizacja), realizację; 

związek zależności 

związek asocjacji

związek generalizacji 

związek realizacji

10..20

*

Rola 1

Rola 2

background image

Inżynieria Oprogramowania wykład 4 - UML

15

UML – związki

Związki klas:

Zależność

Asocjacja

Jednokierunkowa

Dwukierunkowa

Agregacja

Kompozycja

Generalizacji

Realizacja

background image

Inżynieria Oprogramowania wykład 4 - UML

16

UML – diagramy

Diagramy UML są schematami przedstawiającymi 

zbiory elementów i związków UML:

podstawowe rodzaje:

•diagram klas,
•diagram obiektów,
•diagram komponentów,
•diagram pakietów;
•diagram wdrożenia;
•diagram przypadków użycia,
•diagram stanów,
•diagram czynności,
•diagram sekwencji zdarzeń (przebiegów),
•diagram współpracy (kooperacji),

w praktyce rzadko prezentuje się systemy informatyczne na 

wszystkich diagramach jednocześnie - najczęściej są to 

diagramy przypadków użycia, klas, sekwencji zdarzeń; 

statyczne aspekty systemu

dynamiczne aspekty systemu

background image

Inżynieria Oprogramowania wykład 4 - UML

17

UML – diagramy

Diagramy UML

Model systemu

Diagramy 
struktury

Diagramy 
zachowania

Diagramy 
interakcji

Diagramy klas

Diagramy obiektów

Diagramy wdrożenia

Diagramy komponentów

Diagramy stanów

Diagramy czynności

Diagramy kooperacji

Diagramy przebiegów

Diagramy przypadków użycia

Diagramy pakietów

background image

Inżynieria Oprogramowania wykład 4 - UML

18

UML – diagramy

Różnice między diagramami w UML 1.4 i 2.0

Diagram

UML 2.0

UML 1.4 

Use Case diagram - Diagram przypadków użycia 

+

+

Class diagram - Diagram klas 

+

Package diagram - Diagram pakietów 

+

używany nieoficjalnie 

Object diagram - Diagram obiektów 

+

używany nieoficjalnie 

Composite Structure diagram - Diagram 
strukturalny 

+

– 

Component diagram - Diagram komponentów 

+

Deployment diagram - Diagram wdrożenia 

+

Activity diagram - Diagram akywności (czynności) 

+

State Machine diagram - Diagram maszyny 
stanowej 

+

Statechart diagram

(diagram stanów)

Sequence diagram - Diagram przebiegu (sekwencji) 

+

Communication diagram - Diagram komunikacji 

+

Collaboration diagram 

(diagram współpracy)

Timing diagram - Diagram przebiegów czasowych 

+

– 

Interaction Overview diagram - Diagram przeglądu 
interakcji 

+

– 

background image

Inżynieria Oprogramowania wykład 4 - UML

19

UML

Notacja symboli elementów

background image

Inżynieria Oprogramowania wykład 4 - UML

20

UML – notacja elementów strukturalnych

Aktor: 

spójny zbiór ról

 odgrywanych przez zewnętrznych 

użytkowników systemu w czasie ich interakcji z 

analizowanym systemem; 

interakcja aktora z systemem w zamkniętym 

przedziale

 

czasowym

 (niezbyt długim);

nazwa na bazie 

rzeczownika

 i opis jedno- lub dwuzdaniowy;

wyszukiwanie aktorów:

•Kto korzysta z systemu?
•Kto instaluje system?
•Kto uruchamia system?
•Kto pielęgnuje system?
•Kto wyłącza system?
•Jakie inne systemy korzystają z tego systemu?
•Kto pobiera informacje z systemu?
•Kto dostarcza informacje systemowi?
•Czy coś dzieje się automatycznie?

background image

Inżynieria Oprogramowania wykład 4 - UML

21

UML – notacja elementów strukturalnych

Przypadek użycia: 

odwzorowuje 

wymagania użytkownika na 

funkcjonalność

 systemu - nie bierze się pod 

uwagę struktury technicznej systemu, lecz 
analizuje się zewnętrzne funkcje systemu;

 

opis zbioru 

ciągów akcji i ich wariantów

 

wykonywanych przez system w celu 

dostarczenia określonemu użytkownikowi 

poprawnego wyniku zadziałania systemu; 

scenariusz opisany w 

3-9 krokach

;

ścieżki warunkowe przedstawiane 

są jako  „

rozszerzenia

”;

Nazwa przypadku

użycia

background image

Inżynieria Oprogramowania wykład 4 - UML

22

UML – notacja elementów strukturalnych

Przypadek użycia: 

opisuje 

CO

 system ma robić a nie 

JAK

;

 

 CO 

 JAK 

 CO 

 JAK 

background image

Inżynieria Oprogramowania wykład 4 - UML

23

UML – notacja elementów strukturalnych

Przypadek użycia – opis dodatkowy w dokumencie:

1.

Krótki opis

2.

Aktorzy

3.

Podstawowy przepływ zdarzeń

4.

Przepływy alternatywne

• 4.1<Obszar funkcjonalności>

4.1.1< Pierwszy przepływ alternatywny >

4.1.2< Drugi przepływ alternatywny >

• 4.2<Inny obszar funkcjonalności>

4.2.1< Inny przepływ alternatywny >

5.Podprzepływy

• 5.1< Pierwszy podprzepływ >
• 5.2< Drugi podprzepływ >

6.

Kluczowe scenariusze

7.

Warunki wstępne

• 7.1< Pierwszy warunek wejściowy >

8.

Warunki końcowe

• 8.1< Pierwszy warunek końcowy >

9.

Punkty rozszerzeń

• 9.1<Nazwa punktu rozszerzeń>

10. Specjalne wymagania

• 10.1< Pierwsze specjalne wymaganie > 

background image

Inżynieria Oprogramowania wykład 4 - UML

24

UML – notacja elementów strukturalnych

Klasa:

Klasa – opis zbioru obiektów posiadających 

podobne atrybuty, operacje, metody, związki i 

semantykę; 

Interfejs – zdefiniowany zestaw operacji 

oferowanych otoczeniu; 

Atrybut – nazwana właściwość klasy, określająca  

dziedzinę wartości dla poszczególnych 

egzemplarzy; 

Operacja – implementacja usługi dostarczanej 

przez obiekt, manifestowana przez interfejs 

obiektu, opatrzona sygnaturą z opisem 

dopuszczalnych parametrów wej/wyj; 

background image

Inżynieria Oprogramowania wykład 4 - UML

25

UML – notacja elementów strukturalnych

Klasa – kilka porad:

klasa odpowiada pewnemu rzeczywistemu lub 

koncepcyjnemu bytowi z analizowanego świata;

obejmuje dobrze określony, nieduży zbiór 

zobowiązań;

zawiera tylko niezbędne atrybuty z punktu 

widzenia celu systemu oraz wyróżnionych 

odpowiedzialności; 

jest prosta i zrozumiała, ale także rozszerzalna ;

background image

Inżynieria Oprogramowania wykład 4 - UML

26

UML – notacja elementów czynnościowych

Interakcje:

odwzorowanie zachowania poprzez wymianę 

wiadomości pomiędzy obiektami oraz rezultat tej 

wymiany;

specyfikacja zdarzeń występujących w określonym 

czasie i przestrzeni, dzielących kolejne stany; 

Wiadomości (komunikaty):

wywołanie operacji w trybie synchronicznym lub 

asynchronicznym, z opcjonalnym wynikiem operacji;

wysłanie sygnału (tryb asynchroniczny);

Stany:

opis zachowania pojedynczych obiektów; 

odwzorowanie przepływu sterowania pomiędzy 

aktywnościami (czynnościami) obiektu;

background image

Inżynieria Oprogramowania wykład 4 - UML

27

UML – notacja elementów grupujących

Pakiet:

mechanizm organizowania elementów w 

grupy;

zastosowanie

: modele systemów i 

podsystemów;

Notka – element objaśniający:

element pomocniczy do przedstawiania 

komentarzy, wyjaśnień, ograniczeń;

oznaczane są zagiętym rogiem;

mogą być zakotwiczane przy                   

            elemencie przerywaną linią;

zastosowanie

: wprowadzanie 

ograniczeń;

Notatka…

Pakiet

background image

Inżynieria Oprogramowania wykład 4 - UML

28

UML

Notacja symboli związków

background image

Inżynieria Oprogramowania wykład 4 - UML

29

UML – notacja związków

Związek zależności:

związek pomiędzy dwoma elementami polegający na 

tym, że zmiana w jednym – niezależnym elemencie, 

pociąga zmianę w drugim – zależnym elemencie; 

(1) związek 

uściślenia

 – służy wyrażeniu relacji 

pomiędzy elementami tworzonego modelu, m.in. w 

fazie projektowania i implementacji oprogramowania 

(wskazuje na pełniejszą specyfikację tego, co było 

wyspecyfikowane ogólnie);

(2) związek 

śladowalności

 – wskazuje na powiązanie 

elementów w projekcie, np. pewnej klasie wskazuje 

inne klasy, które były posłużyły do jej definiowania; 

Klasa 1

Klasa 2

zależność

background image

Inżynieria Oprogramowania wykład 4 - UML

30

UML – notacja związków

Związek asocjacji:

reprezentuje 

czasowe

 

powiązanie

 pomiędzy 

obiektami dwóch klas;

może zachodzić pomiędzy dwoma lub więcej 

obiektami klas; 

obiekty związane asocjacją są od siebie niezależne;

daje możliwością 

nawigacji

 pomiędzy elementami 

asocjacji;

opisem związku może być:

•kwalifikator – atrybut klasy dla zapewnienia unikatowości 

związku;

•rola - nazwa przypisana do jednej z dziedzin związku;

Klasa 1

Klasa 2

asocjacja

Rola 1

Rola 2

kwalifikator

background image

Inżynieria Oprogramowania wykład 4 - UML

31

UML – notacja związków

Związek agregacji:

silniejszy

 rodzaj 

asocjacji

;

określa relację zawierania “

całość-część

” pomiędzy 

agregatem (całością) a jego częściami; 

w przypadku klas wartościami atrybutów obiektu 

zagregowanego mogą być obiekty należące do klas 

reprezentujących “części”; 

przykład: Komputer jest złożony z Podzespołów;

Klasa

reprezentująca 

„całość”

Klasa

reprezentująca 

„część”

agregacja

Komputer

Podzespół

    zbudowany z 

background image

Inżynieria Oprogramowania wykład 4 - UML

32

UML – notacja związków

Związek silnej agregacji - kompozycja:

silniejszy

 rodzaj 

agregacji

;

określa 

relację

 

przynależności

 elementów 

składowych do elementu macierzystego wraz z 

powiązaniem okresu życia elementów składowych z 

ich elementem macierzystym; 

elementy składowe mogą być kreowane po 

utworzeniu elementu macierzystego a kasowane 

wraz ze swoim element macierzystym lub wcześniej;

kompozycja może być rekursywna;

Klasa

reprezentująca 

„całość”

Klasa

reprezentująca 

„część”

silna agregacja

background image

Inżynieria Oprogramowania wykład 4 - UML

33

UML – notacja związków

Związek uogólnienia (generalizacji), 

dziedziczenie:

związek pomiędzy elementem 

ogólnym

 a 

specjalizowanym

;

element specjalizowany jest w pełni zgodny z 

elementem ogólnym;

egzemplarz elementu specjalizowanego może być 

użyty w miejsce egzemplarza elementu ogólnego; 

związek generalizacji jest głównie wykorzystywany 

na etapie tworzenia modelu, pozwalając na 

usystematyzowanie tworzenia modelu oraz na 

wykorzystywanie wcześniej zbudowanych modeli;

Klasa

specjalizowana

Klasa

ogólna

generalizacja

background image

Inżynieria Oprogramowania wykład 4 - UML

34

UML – notacja związków

Związek dziedziczenia klas:

w przypadku klas związek generalizacji określa 

powiązanie pomiędzy klasą ogólną i klasą 

specjalizowaną;

obiekty klasy specjalizowanej dziedziczą własności 

strukturalne i behawioralne – atrybuty i operacje – 

obiektów klasy ogólnej;

podklasa może:

•dodawać dodatkowe atrybuty, operacje i związki,
•redefiniować dziedziczone operacje (używać z rozwagą!);

wspólne atrybuty, operacje i/lub związki są 

reprezentowane na najwyższym poziomie odniesienia w 

hierarchii;

polimorfizm jest realizowany na bazie dziedziczenia - 

wykorzystuje informacje dodatkowe zapisywane przy 

instancjach obiektów klas dziedziczących;

background image

Inżynieria Oprogramowania wykład 4 - UML

35

UML – notacja związków

Przykład:

POJAZD

 +Waga
 +Nr.rej.

 
<>Rejestruj( )

OSOBOWY

 +Wielkość

CIĘŻAROWY

  +Tonaż

  <>DajPodatek( )

OSOBA

+Imie
+Nazwisko
+Pesel

PRZYCZEPA

+Liczba osi

SILNIK

+Pojemność

Klasa 

abstrakcyjna

1..*                    1

Widoczność
:
- private
# protected
+ public

Krotność 

związku

background image

Inżynieria Oprogramowania wykład 4 - UML

36

UML – notacja związków

Związek generalizacji przypadków użycia:

dla przypadków użycia związek generalizacji określa, 

że:

•Przypadek ogólny zawiera część zachowania powielaną w 

przypadku specjalizowanym;

•Przypadek specjalizowany może dołożyć nowe lub 

zmodyfikować zachowanie przypadku ogólnego (np. nowe 

sekwencje zdarzeń);

Instancja przypadku użycia

Ogólny przypadek użycia

Specjalizowany przypadek użycia

background image

Inżynieria Oprogramowania wykład 4 - UML

37

UML – notacja związków

Związek realizacji:

związkiem pomiędzy dwoma elementami 

(klasyfikatorami), z których jeden jest deklaracją a 

drugi zapewnia praktyczną realizację deklaracji;

realizacja występuje np. pomiędzy interfejsem a jego 

implementacją, czy też przypadkami użycia a 

elementami je realizującymi;

Klasa realizująca

Realizuje

Deklaracja 

przypadku użycia

background image

Inżynieria Oprogramowania wykład 4 - UML

38

UML – notacja związków

Krotność związku - liczba wystąpień danej 

klasy, która jest powiązana z jednym 

wystąpieniem innej klasy (określana dla 

każdego końca związku);

Nieokreślony
Dokładnie jeden
Zero lub więcej

Jeden lub więcej
Zero lub jeden

Określony zakres
Wiele, rozłączne zakresy

background image

Inżynieria Oprogramowania wykład 4 - UML

39

UML – notacja związków

Notacja związku – kilka porad:

zależności wystąpią tam, gdzie klasa występuje jako 

parametr operacji;

uogólnienie warto stosować, gdy kilka klas ma 

wspólne atrybuty lub metody;

jeżeli klasa stanowi całość w odniesieniu do pewnego 

zbioru klas, to stosuje się agregację;

agregacja może zastąpić wielodziedziczenie;

należy ograniczać cykliczne związki;

background image

Inżynieria Oprogramowania wykład 4 - UML

40

UML

Notacja diagramów

background image

Inżynieria Oprogramowania wykład 4 - UML

41

UML – notacja diagramów

Diagram przypadków użycia:

stosowany do opisu statycznej struktury usług systemu;

definiuje granice systemu, określa jego kontekst;

pokazuje system z zewnątrz poprzez użytkowników i 

funkcje im udostępniane;

elementami diagramu są: 

•przypadki użycia:

reprezentują zamkniętą i kompletną funkcjonalność dostępną z 

zewnątrz systemu;

są inicjowane z zewnątrz i dostarczają wyniki na zewnątrz;

•aktorzy:

reprezentuje punkt widzenia na system;

inicjuje wykonanie funkcji systemu;

jest odbiorcą wyników działania systemu;

background image

Inżynieria Oprogramowania wykład 4 - UML

42

UML – notacja diagramów

Diagram przypadków użycia:

związki składowe: 

•Generalizacja (

uogólnienie

)

przypadek użycia jest uogólnieniem innego;

•Włączanie (

include

) – stereotyp związku:

Zachowanie włączanego przypadku użycia wchodzi 

w podstawowy przypadek użycia;

Włączany przypadek użycia 

musi być

 wykonany, jeżeli jest w 

przepływie 

podstawowym

;

Może się zdarzyć, że przypadek bazowy 

nie osiągnie

 miejsca 

uruchomienia

 z przepływu 

alternatywnego

;

•Rozszerzenie (

extend

) – stereotyp związku:

Zachowanie rozszerzającego przypadku użycia jest 

włączane do podstawowego przypadku użycia 

w ściśle określonym miejscu (tzw. extension point);

Rozszerzający przypadek użycia 

może, lecz nie musi

 być wykonany;

<<

include

>>

<<

extend

>>

background image

Inżynieria Oprogramowania wykład 4 - UML

43

UML – notacja diagramów

Diagram przypadków użycia:

związki składowe- włączanie (include):

Instancja UC

Instancja UC #1

Instancja UC #2

Włączany UC

Włączany UC

Podstawowy UC

Podstawowy UC

background image

Inżynieria Oprogramowania wykład 4 - UML

44

UML – notacja diagramów

Diagram przypadków użycia:

związki składowe- rozszerzenie (extend) :

Podstawowy UC

Podstawowy UC

Instancja UC

Instancja UC

Rozszerzający UC

Rozszerzający UC

Pkt Rozszerzenia

Pkt Rozszerzenia 1

Pkt Rozszerzenia 2

background image

Inżynieria Oprogramowania wykład 4 - UML

45

UML – notacja diagramów

Diagram przypadków użycia:

Przypadek 1

Przypadek 2

Przypadek 3

Przypadek 4

„extend”

„include”

generalizacja

generalizacja

asocjacja

Protokół  komunikacji pomiędzy 
użytkownikiem a usługą

„include” oraz „extend” są standardowymi stereotypami uszczegóławiającymi 
związek

background image

Inżynieria Oprogramowania wykład 4 - UML

46

UML – notacja diagramów

Diagram przypadków użycia - przykład:

www.erudis.pl

background image

Inżynieria Oprogramowania wykład 4 - UML

47

UML – notacja diagramów

Diagram klas:

zastosowanie: opis struktury systemu;

elementy: klasy, interfejsy, grupy współdziałania;

związki: zależności, generalizacji, asocjacji, 

agregacji;

najczęściej używany diagram UML;

Klasa 2

Klasa 1

Klasa 3

Klasa 5

Klasa  4

asocjacja 1

asocjacja 2

generalizacja

zależność

asocjacja 3

asocjacja 4

Klasa 6

agregacja

background image

Inżynieria Oprogramowania wykład 4 - UML

48

UML – notacja diagramów

Diagram klas - przykład:

www.erudis.pl

background image

Inżynieria Oprogramowania wykład 4 - UML

49

UML – notacja diagramów

Diagram pakietów (cel: porządkowanie 

struktury) - przykład:

www.erudis.pl

background image

Inżynieria Oprogramowania wykład 4 - UML

50

UML – notacja diagramów

Diagram struktury złożonej (composite 

structures):

wprowadzony od UML 2.0;

podobny do diagramu klas, lecz związki nie wynikają 

ze statycznego powiązania, lecz realizowanego 

zadania;

modeluje współpracę klas, interfejsów, 

komponentów  zaangażowanych w jednym zadaniu;

Przykład – faktura składa się z części, 

które nie są oddzielnymi klasami

background image

Inżynieria Oprogramowania wykład 4 - UML

51

UML – notacja diagramów

Diagram struktury złożonej (composite 

structures); 

Przykład: realizacja przypadku użycia przez „grupę 

współdziałania”  

www.erudis.pl

background image

Inżynieria Oprogramowania wykład 4 - UML

52

UML – notacja diagramów

Diagram sekwencji 

(przebiegu):

prezentuje chronologiczną 

sekwencję interakcji obiektów;

odwzorowuje dynamikę 

obiektów uczestniczących w  

interakcjach oraz kolejność 

wymienianych komunikatów; 

nie przedstawia związków 

pomiędzy obiektami;

może opisywać wszystkie 

możliwe scenariusze lub tylko 

jeden wybrany;

K o m u n i k a t :

[ w a r u n e k ]
n a z w a  k o m u n ik a t u

background image

Inżynieria Oprogramowania wykład 4 - UML

53

UML – notacja diagramów

Diagram sekwencji:

Ob1: TOb

Ob2:

:TOb

„Create”

a

Zdarzenia

b

d

e

f

{500 ms}

{d - c < 2 s}

Ograniczenie 
czasowe

Rozgłaszanie
komunikatów

Komunikacja 
pomiędzy dwoma
obiektami

{f - e < 3 s}

C

za

s

g

h

{AVE(h - e) < 5 s}

Komunikat 2

Komunikat 4

Utworzenie
obiektu

Skasowanie

obiektu

Wywołanie 
operacji

Zwrot wyniku 
operacji

Asynchroniczny  
sygnał w UML 
1.4

c

Pętla 
wewnętrzn
a

Asynchroniczny  
sygnał w UML 
2.0

background image

Inżynieria Oprogramowania wykład 4 - UML

54

UML – notacja diagramów

Diagram sekwencji – przykład:

www.erudis.pl

background image

Inżynieria Oprogramowania wykład 4 - UML

55

UML – notacja diagramów

Diagram komunikacji (współpracy w 1.4):

odwzorowuje interakcje pomiędzy powiązanymi 

obiektami (lub komponentami);

diagramy interakcji - sekwencji i diagramy 

współdziałania - przedstawiają podobne informacje, 

lecz diagram współdziałania przedstawia dodatkowe 

związki pomiędzy obiektami;

Obiekt 1

Obiekt 2

Nazwa

Nazwa: klasa

1: DoIt

2: DoItAgain(p,r):=retValue

3: DoItAgain

p

retValue

background image

Inżynieria Oprogramowania wykład 4 - UML

56

UML – notacja diagramów

Diagram komunikacji (współpracy w 1.4) – 

przykład:

www.erudis.pl

background image

Inżynieria Oprogramowania wykład 4 - UML

57

UML – notacja diagramów

Diagram stanów:

opisuje stany z życia obiektu, 

jako reakcje na zewnętrzne 

zdarzenia i komunikaty; 

akcja  - elementarna 

(niepodzielna) czynność, np. 

wywołanie operacji, 

utworzenie lub skasowanie 

obiektu, obliczenie wartości 

wyrażenia;

aktywność - nieelementarna 

czynność;

elementami są: stany, 

tranzycje, zdarzenia, 

aktywności, łączniki 

pomiędzy stanami;

Stan 1

Stan 2

Tranzycja określająca 
stan początkowy

Nazwa-zdarzenia (parametry) [dozór] 
/ lista-akcji ^ lista-zdarzeń

Pseudostan końcowy

Pseudostan początkowy

Tranzycja określająca 
stan końcowy

background image

Inżynieria Oprogramowania wykład 4 - UML

58

UML – notacja diagramów

Diagram stanów: 

A                                       

A1

A2


entry
: akcja-1( )
exit:    akcja-2( )
do:     aktywność-1, 
          aktywność -2

C

    

C1

C2

C3

H

event-1( )

[dozór 2]

[dozór 1]

event-2 ( ) / action-3 ^ event-3

Time-out (interval)

H - łącznik historyczny

Łącznik wyboru

Zdarzenie przeterminowania

background image

Inżynieria Oprogramowania wykład 4 - UML

59

UML – notacja diagramów

Diagram stanów – przykład: 

http://www.e-informatyka.edu.pl

background image

Inżynieria Oprogramowania wykład 4 - UML

60

UML – notacja diagramów

Diagram stanów – przykład: 

background image

Inżynieria Oprogramowania wykład 4 - UML

61

UML – notacja diagramów

Diagram czynności:

Uogólniona wersja diagramu stanów;

Obrazuje przepływ sterowania od czynności do 

czynności;

Czynności odpowiadają stanom wyróżnialnym w trakcie 

przetwarzania, a nie stanom obiektów;

Czynność może być interpretowana jako:

•zadanie do wykonania przez człowieka lub komputer,
•odpowiedzialność/operacja/metoda klasy;

Składowe:

•stany akcji, 
•stany czynności, 
•przejścia, 
•obiekty;

background image

Inżynieria Oprogramowania wykład 4 - UML

62

UML – notacja diagramów

Diagram czynności - przykład:

www.erudis.pl

background image

Inżynieria Oprogramowania wykład 4 - UML

63

UML – notacja diagramów

Diagram komponentów:

Obrazuje fizyczne i statyczne aspekty systemu;

Przedstawia uporządkowanie komponentów i 

zależności między nimi;

Przykłady komponentów:

•programy wykonywalne, biblioteki, tabele, pliki, dokumenty, 

bazy danych itp. 

Ściśle związany z diagramem klas, ponieważ 

zazwyczaj każdemu komponentowi 

przyporządkowane są pewne klasy, interfejsy i 

kooperacje;

Składowe:

•komponenty, 
•interfejsy, 
•związki: zależności, uogólnienia, powiązania, realizacje;

background image

Inżynieria Oprogramowania wykład 4 - UML

64

UML – notacja diagramów

Diagram komponentów – przykład: 

www.erudis.pl

Interfejs 
„wymagany”

Interfejs 
„udostępnian
y”

notacja 
UML 2.0

background image

Inżynieria Oprogramowania wykład 4 - UML

65

UML – notacja diagramów

Diagram wdrożenia:

Obrazują konfigurację sprzętową (węzły) z 

uwzględnieniem  rozmieszczenia (rozproszenia) 

komponentów;

Węzły dzielimy na:

•Procesory – reprezentują zasoby obliczeniowe:

Posiadają pewną ilość pamięci i zdolność przetwarzania,

Mogą wykonywać kod komponentu;

•Urządzenia – są interfejsem do świata zewnętrznego:

Nie mają zdolności przetwarzania (np. monitor, drukarka);

Wiąże się z diagramem komponentów, ponieważ zwykle 

każdy węzeł zawiera co najmniej jeden komponent;

Składowe:

•węzły, 
•zależności, 
•powiązania;

background image

Inżynieria Oprogramowania wykład 4 - UML

66

UML – notacja diagramów

Diagram wdrożenia – przykład: 

www.erudis.pl

background image

Inżynieria Oprogramowania wykład 4 - UML

67

UML

Przykład „CD”

background image

Inżynieria Oprogramowania wykład 4 - UML

68

UML – notacja diagramów

Diagram przypadków użycia - przykład:

http://www-128.ibm.com/developerworks/rational/library/769.html

background image

Inżynieria Oprogramowania wykład 4 - UML

69

UML – notacja diagramów

Diagram przypadków użycia - przykład:

http://www-128.ibm.com/developerworks/rational/library/769.html

System wspomaga obsługę sprzedaży CD 
poprzez:

-This system lets the band manager view a 
sales statistics report and the Billboard 200 
report for the band's CDs.

-It also lets the record manager view a sales 
statistics report and the Billboard 200 report 
for a particular CD.

-The system delivers Billboard reports from an 
external system
 called Billboard Reporting 
Service. 

System nie realizuje (nie ma tych „use cases”):

-It does not provide a way for a band 
manager to listen to songs from the different 
albums on the Billboard 200
 

background image

Inżynieria Oprogramowania wykład 4 - UML

70

UML – notacja diagramów

Diagram klas - przykład:

http://www-128.ibm.com/developerworks/rational/library/769.html

Wydzielone klasy odpowiadają:

-rzeczom, o których mówi się w 
‘branży’: rock bands, CDs, radio play;
 

-bytom potrzebnym programistom;

‘CD’ nie wie nic o 
‘CDSalesReport’

background image

Inżynieria Oprogramowania wykład 4 - UML

71

UML – notacja diagramów

Diagram sekwencji – przykład:

http://www-128.ibm.com/developerworks/rational/library/769.html

‘generateCDSalesRep
ort’ musi być 
realizowane przez 
obiekty klasy 
‘ReportGenerator’

‘date’ jest zmienną 
przesyłaną do usługi 
‘’setCreatedOn’ w 
obiekcie  
‘aCDReporter’

background image

Inżynieria Oprogramowania wykład 4 - UML

72

UML – notacja diagramów

Diagram sekwencji – przykład:

http://www-128.ibm.com/developerworks/rational/library/769.html

Przebieg:

-aServlet sends a message to the ReportGenerator 
class instance named gen. The message is labeled 
generateCDSalesReport;

-When gen instance receives a 
generateCDSalesReport message, it then makes 
subsequent calls to the CDSalesReport class, and 
an actual instance of a CDSalesReport called 
aCDReport gets returned. 

-The gen instance then makes calls to the returned 
aCDReport instance, passing it parameters on 
each message call. 

-At the end of the sequence, the gen instance 
returns aCDReport to its caller aServlet. 

background image

Inżynieria Oprogramowania wykład 4 - UML

73

UML – notacja diagramów

Diagram stanów – 

przykład: 

http://www-128.ibm.com/developerworks/rational/library/769.html

background image

Inżynieria Oprogramowania wykład 4 - UML

74

UML – notacja diagramów

Diagram stanów – 

przykład: 

http://www-128.ibm.com/developerworks/rational/library/769.html

Zmiany stanów:

-Loan processing begins in the Loan Application 
state. 

-When the pre-approval process is done, 
depending on the outcome, you move to either the 
Loan Pre-approved state or the Loan Rejected 
state. This decision, which is made during the 
transition process, is shown with a decision point -- 
the empty circle in the transition line. 

-A person can tell that a loan cannot go from the 
Loan Pre-Approved state to the Loan in 
Maintenance state without going through the Loan 
Closing state. 

-Also a person can tell that all loans will end in 
either the Loan Rejected state or the Loan in 
Maintenance state.

background image

Inżynieria Oprogramowania wykład 4 - UML

75

UML – notacja diagramów

Diagram czynności - przykład:

http://www-128.ibm.com/developerworks/rational/library/769.html

background image

Inżynieria Oprogramowania wykład 4 - UML

76

UML – notacja diagramów

Diagram komponentów – przykład: 

http://www-128.ibm.com/developerworks/rational/library/769.html

background image

Inżynieria Oprogramowania wykład 4 - UML

77

UML – notacja diagramów

Diagram wdrożenia – przykład: 

http://www-128.ibm.com/developerworks/rational/library/769.html

background image

Inżynieria Oprogramowania wykład 4 - UML

78

UML

Przykład „studencki”

background image

Inżynieria Oprogramowania wykład 4 - UML

79

UML – przykład systemu ewidencji 

studentów 

Diagram przypadków użycia

Student

Profesor

Wprowadzenie 

studenta

Pobranie obciążenia

System 

księgowania

background image

Inżynieria Oprogramowania wykład 4 - UML

80

UML – przykład systemu ewidencji 

studentów 

Diagram klas (1) – klasy abstrakcyjne

Arkusz rejestracji

Kierownik ewidencji

Kurs

Student

Oferta kursów

Profesor

Algorytm zarządzania

background image

Inżynieria Oprogramowania wykład 4 - UML

81

UML – przykład systemu ewidencji 

studentów 

Diagram klas (2) – klasy uszczegółowione

Arkusz rejestracji

Kierownik ewidencji

Kurs

Student

Oferta kursów

Profesor

Algorytm zarządzania

dodajStudenta(Kurs, daneStudent)

liczbaMiejsc
nazwa

nazwisko
nr indeksu

nazwisko
specjalizacja

dodajStudenta(daneStudenta)
otwórzKurs()

dodajStudenta(daneStudenta)
otwórzKurs()

miejsce

background image

Inżynieria Oprogramowania wykład 4 - UML

82

UML – przykład systemu ewidencji 

studentów 

Diagram klas (3) – związki klas

Arkusz rejestracji

Kierownik ewidencji

Kurs

Student

Oferta kursów

Profesor

Algorytm zarządzania

dodajStudenta(Kurs, daneStudent)

liczbaMiejsc
nazwa

nazwisko

nazwisko
specjalizacja

dodajStudenta(daneStudenta)
otwórzKurs()

dodajStudenta(daneStudenta)
otwórzKurs()

miejsce

1

0..*

0..*

1

1

1..*

4

3..10

0..4

1

background image

Inżynieria Oprogramowania wykład 4 - UML

83

UML – przykład systemu ewidencji 

studentów 

Diagram klas (4) – skierowanie i krotności 

związków

Arkusz rejestracji

Kierownik ewidencji

Kurs

Student

Oferta kursów

Profesor

Algorytm zarządzania

dodajStudenta(Kurs, daneStudent)

liczbaMiejsc
nazwa

nazwisko
nr indeksu

nazwisko
specjalizacja

dodajStudenta(daneStudenta)
otwórzKurs()

dodajStudenta(daneStudenta)
otwórzKurs()

miejsce

1

0..*

0..*

1

1

1..*

4

3..10

0..4

1

background image

Inżynieria Oprogramowania wykład 4 - UML

84

UML – przykład systemu ewidencji 

studentów 

Diagram klas (5) – generalizacja

Arkusz rejestracji

Kierownik ewidencji

Kurs

Student

Oferta kursów

Profesor

Algorytm zarządzania

dodajStudenta(Kurs, daneStudent)

liczbaMiejsc
nazwa

nr indeksu

specjalizacja

dodajStudenta(daneStudenta)
otwórzKurs()

dodajStudenta(daneStudenta)
otwórzKurs()

miejsce

1

0..*

0..*

1

1

1..*

4

3..10

0..4

1

nazwisko

Osoba

background image

Inżynieria Oprogramowania wykład 4 - UML

85

UML – przykład systemu ewidencji 

studentów 

Diagram sekwencji zdarzeń

 : Student

arkusz 

rejestracji

kierownik 

ewidencji

Kurs 1

1: wprowadzenie danych

2: zatwierdzenie

3: dodanie osoby(Nowak, Kurs 1)

4: Czy otwarty?

5: Czy otwarty?

6: Dodaj(Nowak)

7: Dodaj(Nowak)

Kurs 1

Grupa 1

background image

Inżynieria Oprogramowania wykład 4 - UML

86

UML – przykład systemu ewidencji 

studentów 

Diagram współpracy

 : Rejestrujący

arkusz kursu : 

ArkuszKursu

Kierownik : 

KierownikProgramowy

kurs : 

Kurs

1: określ opis kursu

2: przetwarzaj

3: dodaj kurs

4: nowy kurs

background image

Inżynieria Oprogramowania wykład 4 - UML

87

UML – przykład systemu ewidencji 

studentów 

Diagram stanów

Inicjalizacja

Otwieranie

entry: Zarejestruj studenta

exit: Zwiększ licznik

Zamknięcie

Anulowanie

do: Inicjalizuj kurs

do: Zamknij kurs

do: Powiadom studenta

Dodaj Studenta / 

Licznik = 0

Dodaj Studenta[ licznik < 10 ]

[ Licznik = 10 ]

Anuluj

Anuluj

Anuluj


Document Outline