IOpr, wykład 4, UML

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

B
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


Wyszukiwarka

Podobne podstrony:
IOpr, wykład 1, wprowadzenie
IOpr, wykład 0, odpowiedzialność
IOpr, wykład 1, wprowadzenie
uml LECTURE
PRI W11b UML 2 0

więcej podobnych podstron