Io 5 Język UML, cz I

background image

Bartosz Walter

UML cz. I

1

In

ż

ynieria oprogramowania

UML cz. I

Prowadz

ą

cy:

Bartosz Walter

background image

Bartosz Walter

UML cz. I

2

In

ż

ynieria oprogramowania

UML cz. I (2)

Plan wykładów

Zasady skutecznego działania
Specyfikacja wymagań (przypadki użycia)
Przeglądy artefaktów (inspekcje Fagana)

Język UML, cz. I

Język UML, cz. II
Metody formalne (sieci Petriego)
Wzorce projektowe
Zarządzanie konfiguracją (CVS)
Wprowadzenie do testowania
Automatyzacja wykonywania testów (jUnit)
Programowanie Ekstremalne
Ewolucja oprogramowania i refaktoryzacja

Wykład jest pierwszym z dwóch, po

ś

wi

ę

conych j

ę

zykowi modelowania

UML.

background image

Bartosz Walter

UML cz. I

3

In

ż

ynieria oprogramowania

UML cz. I (3)

Agenda

1.Historia i geneza UMLa
2.Koncepcja modeli UML
3.Modelowanie funkcjonalności
4.Diagram klas
5.Diagram obiektów
6.Przykład

Podczas tego wykładu zostanie przedstawione wprowadzenie do j

ę

zyka

UML, jego geneza oraz struktura. Omówione b

ę

d

ą

tak

ż

e dwie

perspektywy UML: przypadków u

ż

ycia oraz logiczna.

background image

Bartosz Walter

UML cz. I

4

In

ż

ynieria oprogramowania

UML cz. I (4)

Historia UML

ok.1990

1995 1996

ą

czenie si

ę

do

prac OMG

UML 1.0

(Rational

Software)
i

UML 1.1

(OMG)

UML 1.5

1997

2000

2004

UML 2.0

UML 1.3

niezale

ż

ne notacje

modelowania:

Booch, Coad/Yourdon,
OMT, OOSE, Fusion

OOPSLA 1995: wersja

0.8

Metody Zunifikowanej

(Booch & Rumbaugh,
Rational Software),
doł

ą

cza Jacobson

2003

2006

UML 2.1

(plan)

W latach 80-tych i na pocz

ą

tku lat 90-tych istniało na rynku wiele notacji i

metodyk modelowania, stosuj

ą

cych elementy o zbli

ż

onej semantyce (np.

klasy), ale całkowicie ró

ż

ni

ą

ce si

ę

sposobem ich reprezentacji. Cz

ęść

z

nich, z uwagi na wcze

ś

niejsze do

ś

wiadczenia ich autorów, zdobyły

wi

ę

ksz

ą

popularno

ść

(np. OOAD, OOSE, OMT, Fusion, metoda Shlaera-

Mellora czy Coada-Yourdona), jednak nadal brak było jednego standardu,
który zaspokajałby wszystkie potrzeby. W wi

ę

kszo

ś

ci były to notacje

niekompletne, obejmuj

ą

ce cz

ęść

problematyki modelowania, i nie

definiuj

ą

ce szczegółowo wielu poj

ęć

.

Dlatego, na pocz

ą

tku lat 90-tych G. Booch (twórca metody OOAD,

kład

ą

cej nacisk na kwestie projektowania i implementacji) i J. Rumaugh

(autor metody OMT, skupiaj

ą

cej si

ę

na modelowaniu dziedziny

przedmiotowej), pracuj

ą

cy dla Rational Software (dzisiaj Rational jest

własno

ś

ci

ą

IBMa) dostrzegli mo

ż

liwo

ść

wzajemnego uzupełnienia swoich

metod i rozpocz

ę

li prace nad Metod

ą

Zunifikowan

ą

, która miała obj

ąć

elementy dotychczas oddzielnych metodyk. Na konferencji OOPSLA w
1995 roku zaprezentowali oni wersj

ę

0.8 Metody Zunifikowanej, a krótko

potem doł

ą

czył do nich inny metodolog - I. Jacobson (twórca metody

OOSE, posiadaj

ą

cej elementy zwi

ą

zane z modelowanie funkcjonalno

ś

ci,

u

ż

ytkowników i cyklu

ż

ycia produktu). W ten sposób powstała "masa

krytyczna", która dawała szans

ę

na opanowanie rynku przez

nowopowstał

ą

metod

ę

. W roku 1996 do prac wł

ą

czyła si

ę

niezale

ż

na

organizacja OMG, której udział dawał szans

ę

na wpływ na UML tak

ż

e

innym firmom, nie tylko Rational Software.

background image

Bartosz Walter

UML cz. I

5

In

ż

ynieria oprogramowania

UML cz. I (5)

Historia UML

ok.1990

1995 1996

ą

czenie si

ę

do

prac OMG

UML 1.0

(Rational

Software)
i

UML 1.1

(OMG)

UML 1.5

1997

2000

2004

UML 2.0

UML 1.3

niezale

ż

ne notacje

modelowania:

Booch, Coad/Yourdon,
OMT, OOSE, Fusion

OOPSLA 1995: wersja

0.8

Metody Zunifikowanej

(Booch & Rumbaugh,
Rational Software),
doł

ą

cza Jacobson

2003

2006

UML 2.1

(plan)

Efektem prac była najpierw wersja 1.0 UML opublikowana przez Rational,
a kilka miesi

ę

cy pó

ź

niej – wersja 1.1, wydana ju

ż

pod egid

ą

OMT. Kolejne

wersje pojawiały si

ę

w odst

ę

pach kilkuletnich, pozwalaj

ą

c na stosowanie

nowych diagramów, uspójniaj

ą

c notacj

ę

i umo

ż

liwiaj

ą

c na modelowanie

nowych dziedzin. Najnowsza wersja UML to 2.0.

Wraz z rozwojem UML zdobył dominuj

ą

c

ą

pozycj

ę

na rynku – poza nim

pozostaj

ą

jedynie notacje zwi

ą

zane z narz

ę

dziami 4GL.

background image

Bartosz Walter

UML cz. I

6

In

ż

ynieria oprogramowania

UML cz. I (6)

Trzej amigos

G. Booch

I. Jacobson

J. Rumbaugh

metoda Boocha

przypadki u

ż

ycia

OMT

Trzej autorzy UMLa: Booch, Jacobson i Rumbaugh zunifikowali swoje
notacje, tworz

ą

c jedn

ą

metod

ę

. Z poszczególnych notacji przej

ę

to

najlepsze rozwi

ą

zania.

background image

Bartosz Walter

UML cz. I

7

In

ż

ynieria oprogramowania

UML cz. I (7)

Czym jest UML?

UML jest

UML nie jest

metodyk

ą

– UML nie okre

ś

la metody

modelowania

– zaleca jedynie stosowanie

podej

ś

cia przyrostowego

narz

ę

dziem

– UML to specyfikacja dla

narz

ę

dzi

notacj

ą

graficzn

ą

– UML okre

ś

la sposób

zapisu modeli

j

ę

zykiem programowania

– generowanie kodu z

modelu stosowane obecnie
na niewielk

ą

skal

ę

background image

Bartosz Walter

UML cz. I

8

In

ż

ynieria oprogramowania

UML cz. I (8)

Konstrukcja UML

notacja

• elementy graficzne

• składnia j

ę

zyka

modelowania

• istotna przy

szkicowaniu modeli

metamodel

• definicje poj

ęć

j

ę

zyka

i powi

ą

zania pomi

ę

dzy

nimi

• istotny przy graficznym

programowaniu

Z punktu widzenia modelowania wa

ż

niejsza jest notacja.

Z punktu widzenia generacji kodu – metamodel.

UML składa si

ę

z dwóch podstawowych elementów:

UML definiuje dwie podstawowe składowe: notacj

ę

poszczególnych

elementów u

ż

ywanych na diagramach, a z drugiej strony – ich semantyk

ę

,

czyli tzw. metamodel. Z punktu widzenia analityka istotniejsze jest
czytelne i jednoznaczne opisanie modelu tak, aby inne osoby mogły
zrozumie

ć

jego znaczenie. Zatem wa

ż

niejsza dla niego jest notacja, za

ś

metamodel powinien by

ć

zrozumiały intuicyjnie. Z kolei przy generowaniu

kodu i przej

ś

ciu do implementacji wa

ż

niejsze jest

ś

cisłe rozumienie

znaczenia poszczególnych elementów, tak, aby mo

ż

liwa była

automatyczna konwersja modelu do innego formalizmu.

background image

Bartosz Walter

UML cz. I

9

In

ż

ynieria oprogramowania

UML cz. I (9)

Perspektywy 4+1

Implementacyjna

Przypadków u

ż

ycia

Logiczna

Procesowa

Wdro

ż

enia

Model

Modelowanie zło

ż

onych systemów jest zadaniem trudnym i anga

ż

uje

wiele osób o ró

ż

nym sposobie postrzegania systemu. Aby uwzgl

ę

dni

ć

te

punktu widzenia, UML jest cz

ę

sto okre

ś

lany jako j

ę

zyk modelowania z

4+1 perspektyw

ą

. Cztery pierwsze opisuj

ą

wewn

ę

trzn

ą

struktur

ę

programu na ró

ż

nych poziomach abstrakcji i szczegółowo

ś

ci. Ostatnia

perspektywa opisuje funkcjonalno

ść

systemu widzian

ą

przez jego

u

ż

ytkowników. Ka

ż

da perspektywa korzysta z własnego zestawu

diagramów pozwalaj

ą

cych czytelnie przedstawi

ć

modelowane

zagadnienie. S

ą

to:

•Perspektywa przypadków u

ż

ycia – opisuje funkcjonalno

ść

, jak

ą

powinien

dostarcza

ć

system, widzian

ą

przez jego u

ż

ytkowników.

•Perspektywa logiczna – zawiera sposób realizacji funkcjonalno

ś

ci,

struktur

ę

systemu widzian

ą

przez projektanta

•Perspektywa implementacyjna – opisuje poszczególne moduły i ich
interfejsy wraz z zale

ż

no

ś

ciami; perspektywa ta jest przeznaczona dla

programisty

•Perspektywa procesowa – zawiera podział systemu na procesy
(czynno

ś

ci) i procesory (jednostki wykonawcze); opisuje wła

ś

ciwo

ś

ci

pozafunkcjonalne systemu i słu

ż

y przede tak

ż

e programistom i

integratorom

•Perspektywa wdro

ż

enia – definiuje fizyczny podział elementów systemu i

ich rozmieszczenie w infrastrukturze; perspektywa taka słu

ż

y integratorom

i instalatorom systemu

background image

Bartosz Walter

UML cz. I

10

In

ż

ynieria oprogramowania

UML cz. I (10)

Diagramy UML

UML obejmuje 13 rodzajów diagramów:

• diagram pakietów
• diagram klas i diagram obiektów
• diagram struktur zło

ż

onych

• diagram komponentów
• diagram wdro

ż

enia

• diagram przypadków u

ż

ycia

• diagram czynno

ś

ci

• diagram maszyny stanowej
• diagramy interakcji (sekwencji,

komunikacji, przegl

ą

du interakcji)

• diagram uwarunkowa

ń

czasowych

modelowanie
strukturalne

modelowanie
behawioralne

W UML zdefiniowano 13 rodzajów diagramów podzielonych na dwie
główne grupy: opisuj

ą

cych struktur

ę

systemu i opisuj

ą

cych zachowanie.

Nie wszystkie s

ą

i musz

ą

by

ć

u

ż

ywane jednocze

ś

nie – zale

ż

y to od

rodzaju i zło

ż

ono

ś

ci modelowanego systemu. Cz

ęść

z nich słu

ż

y do

modelowania tego samego aspektu, jednak uj

ę

tego nieco inaczej, dlatego

dobór rodzajów diagramów zale

ż

y tak

ż

e od preferencji analityka.

background image

Bartosz Walter

UML cz. I

11

In

ż

ynieria oprogramowania

UML cz. I (11)

Diagram przypadków u

ż

ycia

Diagram przypadków u

ż

ycia

• definiuje

granice

modelowanego systemu

• okre

ś

la jego

kontekst

• wymienia

u

ż

ytkowników

systemu i jednostki
zewn

ę

trzne

• przedstawia

funkcje

dost

ę

pne dla

u

ż

ytkowników

• okre

ś

la

powi

ą

zania

i zale

ż

no

ś

ci

pomi

ę

dzy nimi

Rejestracja czytelnika

Bibliotekarz

Przedłu

ż

enie

Zw rot

Wypo

ż

yczenie do czytelni

Wypo

ż

yczenie

Rezerw acja

Wyszukanie

<<include>>

<<include>>

<<inc lude>>

Czytelnik

Diagram przypadków u

ż

ycia (ang. use-case diagram) słu

ż

y do

modelowania aktorów (u

ż

ytkowników systemu, odbiorców efektów pracy

systemu, systemów zewn

ę

trznych) i ich potrzeb w stosunku do

tworzonego systemu. Przypadki u

ż

ycia prezentowane na tym diagramie to

sekwencje czynno

ś

ci, które prowadz

ą

do spełnienia celu przypadku

u

ż

ycia (zaspokojenia pewnej potrzeby u

ż

ytkownika).

background image

Bartosz Walter

UML cz. I

12

In

ż

ynieria oprogramowania

UML cz. I (12)

Aktor

Aktor

• inicjuje wykonanie funkcji systemu
• wymaga dost

ę

pu do systemu

• reprezentuje punkt widzenia na system
• jest osob

ą

fizyczn

ą

, rol

ą

w systemie lub systemem

zewn

ę

trznym

Bibliotekarz

Czytelnik

Zegar

Aktor jest osob

ą

(lub dowoln

ą

inn

ą

jednostk

ą

), która w jaki

ś

sposób

wymienia informacje z systemem, cho

ć

pozostaje poza jego zakresem.

Jest wi

ę

c w szerokim znaczeniu u

ż

ytkownikiem tego systemu, tzn.

żą

da

od systemu wykonania pewnych funkcji i/lub odbiera efekty ich
wykonania. Aktor opisuje rol

ę

, a nie konkretn

ą

osob

ę

lub jednostk

ę

.

Aktorzy mog

ą

by

ć

powi

ą

zani ze sob

ą

relacj

ą

uogólnienia/uszczegółowienia: w ten sposób zachowanie bardziej
ogólnego aktora jest dziedziczone przez aktora bardziej szczegółowego.
Ponadto s

ą

powi

ą

zani z przypadkami u

ż

ycia, z których korzystaj

ą

.

Aktor jest reprezentowany na diagramie przypadków u

ż

ycia w ró

ż

noraki

sposób: jako sylwetka z nazw

ą

aktora, jako prostok

ą

t ze słowem

kluczowym «actor» lub z ikon

ą

.

Przykładami aktorów w systemie bibliotecznym mog

ą

by

ć

Bibliotekarz i

Czytelnik, reprezentuj

ą

cy fizyczne osoby korzystaj

ą

ce z tego systemu, ale

tak

ż

e Zegar, który cyklicznie wysyła komunikat powoduj

ą

cy wyszukanie

ksi

ąż

ek o przekroczonym terminie zwrotu.

background image

Bartosz Walter

UML cz. I

13

In

ż

ynieria oprogramowania

UML cz. I (13)

Przypadek u

ż

ycia

Przypadek u

ż

ycia reprezentuje

kompletn

ą

funkcj

ę

dost

ę

pn

ą

dla

aktora.
Przypadki u

ż

ycia mog

ą

by

ć

powi

ą

zane zale

ż

no

ś

ciami:

• Uszczegółowienie

:

specjalizowana wersja
przypadku u

ż

ycia

• Rozszerzanie

: dodatkowa

funkcjonalno

ść

przypadku

u

ż

ycia

• Zawieranie

: wykonanie

jednego przypadku u

ż

ycia

przez drugi

uszczegółowienie

Powiadomienie

Czytelnik

Wyszukanie

Rezerwacja czasopisma

Rezerwacja

<<extend>>

<<include>>

Rezerwacja ksi

ąż

ki

zawieranie

rozszerzanie

Przypadek u

ż

ycia reprezentuje zamkni

ę

t

ą

i kompletn

ą

funkcjonalno

ść

dost

ę

pn

ą

dla aktora. Zgodnie z definicj

ą

, przypadek u

ż

ycia w UML jest

zdefiniowany jako zbiór akcji wykonywanych przez system, które
powoduj

ą

efekt zauwa

ż

alny dla aktora.

Przypadki u

ż

ycia zawsze musz

ą

by

ć

inicjowane (bezpo

ś

rednio lub przez

zale

ż

no

ś

ci) przez aktora i wykonywane w jego imieniu. Ponadto,

przypadek u

ż

ycia musi dostarcza

ć

pewn

ą

warto

ść

u

ż

ytkownikowi oraz

musi by

ć

kompletny, to znaczy w pełni realizowa

ć

podan

ą

funkcjonalno

ść

oraz dostarcza

ć

wyniki aktorowi.

Przypadki u

ż

ycia komunikuj

ą

si

ę

z aktorami poprzez powi

ą

zania,

pokazuj

ą

ce, który aktor ma dost

ę

p do podanego przypadku u

ż

ycia.

Ponadto mog

ą

by

ć

powi

ą

zane pomi

ę

dzy sob

ą

: relacj

ą

uogólnienia,

rozszerzenia i zawierania.

background image

Bartosz Walter

UML cz. I

14

In

ż

ynieria oprogramowania

UML cz. I (14)

Przykład

Przedłu

ż

enie

Zwrot

Wypo

ż

yczenie do czytelni

Wypo

ż

yczenie

Rezerwacja czasopisma Rezerwacja ksi

ąż

ki

Rezerwacja

Bibliotekarz

Rejestracja czytelnika

Czytelnik

Wyszukanie

<<include>>

<<include>>

<<include>>

Zegar

Powiadomienie

<<extend>>

Przykład przedstawia diagram przypadków u

ż

ycia. Wyst

ę

puje w nim

trzech aktorów: Czytelnik, Bibliotekarz i Zegar. Pierwsi dwaj reprezentuj

ą

role u

ż

ytkowników systemu, natomiast Zegar słu

ż

y do generowania

cyklicznych Powiadomie

ń

.

Czytelnik i Bibliotekarz korzystaj

ą

z przypadków u

ż

ycia. Niektóre z nich,

np. Zwrot lub Wypo

ż

yczenie do czytelni, s

ą

przez nich współdzielone,

natomiast Rejestracja czytelnika i Przedłu

ż

enie s

ą

dost

ę

pne tylko dla

jednego albo drugiego aktora.

Przypadek u

ż

ycia Wyszukanie jest wł

ą

czany do kilku innych przypadków

u

ż

ycia: Rezerwacj

ę

, Wypo

ż

yczenie i Wypo

ż

yczenie do czytelni. W ten

sposób jest on wywoływany w sposób po

ś

redni przez aktora, a

bezpo

ś

rednio przez inny przypadek u

ż

ycia.

Przypadek u

ż

ycia Rezerwacja jest rozszerzany przez Powiadomienie.

Oznacza to,

ż

e Powiadomienie mo

ż

e uczestniczy

ć

w realizacji funkcji

Rezerwacji. Ponadto Rezerwacja posiada dwa szczegółowe przypadki:
Rezerwacj

ę

ksi

ąż

ki i Rezerwacj

ę

czasopisma.

background image

Bartosz Walter

UML cz. I

15

In

ż

ynieria oprogramowania

UML cz. I (15)

Diagram klas

Diagram klas

przedstawia klasy wyst

ę

puj

ą

ce w systemie

i statyczne relacje pomi

ę

dzy nimi wraz z ograniczeniami.

Jest podstawowym diagramem struktury logicznej systemu.

Katalog alfabetyczny

Sortowanie()
Znajd

ź

()

Katalog autorow

Sortowanie()
Znajd

ź

()

Katalog rzeczowy

Sortowanie()
Znajd

ź

()

Ksi

ąż

ka

Autor : String
Tytuł : String
ISBN : String

Czasopismo

Katalog

wydawnictwa : List

...

...

Hi storia

data
operacja
status
do kiedy
Numer w katalogu

Czy tel nik

Pesel : String
Nazwisko : String
Adres : String
Identyfikator : Integer
Imi

ę

: String

Data zapisu : Date
SZABLON IDENTYFIKATORA : String

Rezerwuj()
Wypo

ż

ycz()

(from Use Ca se View)

<<Actor>>

1.. n

1

1.. n

1

Karta wydawni ctwa

Numer w katalogu : String
Autor : String
Tytuł : String
ISBN : String
Data rejestracji : Date
Data usuni

ę

cia : Date

**

0..n

1

0..n

1

Rezerwacja

id_karty
Nr w katalogu
od kiedy
do kiedy

0..n

1

0..n

1

Egzemplarz

Numer w katalogu : String
Identyfikator : String
Wydanie : String
Stron : Integer

1

1

1

1

0..n

1

0..n

1

Diagram klas (ang. class diagram) jest najcz

ęś

ciej u

ż

ywanym diagramem

UML. Z reguły zawiera tak

ż

e najwi

ę

ksz

ą

ilo

ść

informacji i stosuje

najwi

ę

ksz

ą

liczb

ę

symboli.

Na diagramie s

ą

prezentowane klasy, ich atrybuty i operacje, oraz

powi

ą

zania mi

ę

dzy klasami. Diagram klas przedstawia wi

ę

c podział

odpowiedzialno

ś

ci pomi

ę

dzy klasy systemu i rodzaj wymienianych

pomi

ę

dzy nimi komunikatów. Z uwagi na rodzaj i ilo

ść

zawartych na tym

diagramie danych jest on najcz

ęś

ciej stosowany do generowania kodu na

podstawie modelu.

background image

Bartosz Walter

UML cz. I

16

In

ż

ynieria oprogramowania

UML cz. I (16)

Klasa i obiekt

Czyt elnik

Pesel : String
Nazwisk o : String
Adres : String
Identyfikator : Integer
Imi

ę

: String

Data zapisu : Date
SZABLON IDENTYFIKATORA : String

Rezerwuj(wyd : Wydawnictwo)
Wypo

ż

ycz(egz : Egzemplarz)

(from Use Case View)

n

a

z

w

a

o

p

e

ra

c

je

a

tr

y

b

u

ty

Klasa jest reprezentowana przez prostok

ą

t z wydzielonymi przedziałami:

nazw

ą

, atrybutami i operacjami. W celu zwi

ę

kszenia czytelno

ś

ci, dowolny

z nich mo

ż

na ukry

ć

b

ą

d

ź

doda

ć

nowy (np. przechowuj

ą

cy zdarzenia lub

wyj

ą

tki), cho

ć

zwykle s

ą

to wła

ś

nie trzy przedziały. Tradycyjnie nazwa

klasy zaczyna si

ę

z du

ż

ej litery, jest wytłuszczona, a w przypadku klasy

abstrakcyjnej – tak

ż

e pochyła.

Obiekt jest instancj

ą

klasy, podobnie jak w przypadku programowania

obiektowego. Nazwa obiektu jest umieszczana przed nazw

ą

klasy i

oddzielana od niej dwukropkiem.

Cechy klasy reprezentuj

ą

informacj

ę

, jak

ą

klasa przechowuje. Mog

ą

zosta

ć

zapisane w postaci dwóch, w zasadzie równowa

ż

nych notacji: jako

atrybuty klasy (umieszczane w przedziale atrybutów) lub jako relacje
pomi

ę

dzy klasami (zapisywane w postaci linii ł

ą

cz

ą

cej klasy). Zwykle

pierwsza notacja jest stosowana do typów prostych lub obiektów
reprezentuj

ą

cych warto

ś

ci, natomiast druga do typów zło

ż

onych.

Operacje reprezentuj

ą

usługi, jakie klasa oferuje. Ich realizacje – metody

– dostarczaj

ą

implementacji tych usług.

background image

Bartosz Walter

UML cz. I

17

In

ż

ynieria oprogramowania

UML cz. I (17)

Atrybuty klasy

Cechy klasy s

ą

zapisywane w postaci

atrybutów klasy

lub

asocjacji

z innymi klasami. Atrybuty reprezentuj

ą

warto

ś

ci

proste lub niewielkie obiekty, asocjacje – obiekty zło

ż

one

widoczność

nazwa

:

typ

[krotność] {ograniczenia} = wartość dom.

Sk

ą

d atrybut jest

widoczny?

Ile obiektów trzeba i ile
mo

ż

na umie

ś

ci

ć

w

atrybucie?

Jakie dodatkowe warunki
spełniaj

ą

warto

ś

ci atrybutu?

Jaka jest warto

ść

atrybutu, gdy nie
podano jej wprost?

Zwykle atrybut jest opisywany tylko przez dwa elementy: nazw

ę

i typ.

Jednak pełna definicja obejmuje tak

ż

e widoczno

ść

atrybutu, definiuj

ą

c

ą

,

z jakich miejsc systemu atrybut jest dost

ę

pny, krotno

ść

, która okre

ś

la ile

obiektów mie

ś

ci si

ę

w atrybucie, dodatkowe ograniczenia nało

ż

one na

atrybut, i warto

ść

domy

ś

ln

ą

. Elementom, których w definicji atrybutu nie

podano warto

ś

ci, przypisywane s

ą

warto

ś

ci domy

ś

lne (widoczno

ść

prywatna, krotno

ść

1) lub pomija si

ę

je.

background image

Bartosz Walter

UML cz. I

18

In

ż

ynieria oprogramowania

UML cz. I (18)

Poziomy widoczno

ś

ci

UML definiuje

4 poziomy widoczno

ś

ci

cech i metod

• + publiczny

– element jest widoczny z ka

ż

dego miejsca

w systemie

• # chroniony

– element jest widoczny we własnej klasie i

jej podklasach

• – prywatny

– element jest widoczny tylko we własnej

klasie

• ~ publiczny wewn

ą

trz pakietu

– element jest widoczny

tylko wewn

ą

trz własnego pakietu

Podobnie jak w wielu wysokopoziomowych j

ę

zykach programowania,

UML posiada 4 poziomy widoczno

ś

ci: publiczny, chroniony, prywatny i

publiczny wewn

ą

trz pakietu. Poziomy te zwykle słu

żą

do opisywania

widoczno

ś

ci cech (atrybutów i asocjacji) oraz operacji, jednak dotycz

ą

tak

ż

e np. klas pakietów etc.

background image

Bartosz Walter

UML cz. I

19

In

ż

ynieria oprogramowania

UML cz. I (19)

Krotno

ść

Krotno

ść

pozwala okre

ś

li

ć

minimaln

ą

i maksymaln

ą

liczb

ę

obiektów, jakie mo

ż

na powi

ą

za

ć

z dan

ą

cech

ą

:

• dolna granica..górna granica

– przedział od-do

• 1

– dokładnie jeden obiekt

• 0..1

– opcjonalnie jeden obiekt

• 1..*

- przynajmniej jeden obiekt

• 1, 3, 5

– konkretne liczby obiektów

• *

- dowolna liczba obiektów

Krotno

ść

cechy wskazuje, ile obiektów mo

ż

na, a ile trzeba w niej zawrze

ć

.

Krotno

ść

mo

ż

na okre

ś

la

ć

jako ograniczenie dolne i górne, jednak

oczywiste lub powtarzaj

ą

ce si

ę

warto

ś

ci graniczne mo

ż

na pomija

ć

, np..

zapis 0..* jest skracany do *, a zapis 1..1 do 1.

W praktyce programowania istotna jest krotno

ść

0, 1 i dowolna, natomiast

warto

ś

ci dyskretne s

ą

mniej wa

ż

ne, jako szczególne przypadki

wymienionych trzech. W UMLu 2.0 dlatego formalnie usuni

ę

to mo

ż

liwo

ść

podawania dowolnych liczb b

ę

d

ą

cych ograniczeniami, np. 2..4, jednak z

uwagi na czytelno

ść

tego zapisu u

ż

ycie go nie stanowi wielkiego bł

ę

du.

background image

Bartosz Walter

UML cz. I

20

In

ż

ynieria oprogramowania

UML cz. I (20)

Wła

ś

ciwo

ś

ci i ograniczenia atrybutów

Z atrybutem mog

ą

by

ć

zwi

ą

zane dodatkowe

ograniczenia, które okre

ś

laj

ą

jego wła

ś

ciwo

ś

ci, np.:

• {ordered}

– obiekty wewn

ą

trz cechy s

ą

uporz

ą

dkowane

• {unordered}

– obiekty s

ą

nieuporz

ą

dkowane

• {unique}

– obiekty wewn

ą

trz cechy nie powtarzaj

ą

si

ę

• {nonunique}

– obiekty wewn

ą

trz cechy mog

ą

si

ę

powtarza

ć

• {readOnly}

– warto

ść

atrybutu słu

ż

y tylko do odczytu

• {frozen}

– warto

ść

atrybutu nie mo

ż

e by

ć

zmodyfikowana po jej przypisaniu

Niemal ka

ż

dy element w UML mo

ż

e posiada

ć

dodatkowe wła

ś

ciwo

ś

ci i

ograniczenia, które szczegółowo opisuj

ą

jego zachowanie i

przeznaczenie. S

ą

one zapisywane w nawiasach klamrowych. Atrybuty

klasy mo

ż

na oznaczy

ć

jako uporz

ą

dkowane za pomoc

ą

ograniczenia

{sorted}, co oznacza,

ż

e s

ą

one w jaki

ś

sposób (zwykle rosn

ą

co,

leksykograficznie) posortowane. Ograniczenie {unique} wymaga, aby
obiekty pami

ę

tane wewn

ą

trz atrybutu nie powtarzały si

ę

. Wła

ś

ciwo

ść

{readOnly} oznacza atrybut, którego warto

ść

jest przeznaczona wył

ą

cznie

do odczytu, natomiast {frozen} – którego warto

ść

po zdefiniowaniu nie

mo

ż

e by

ć

zmieniona.

background image

Bartosz Walter

UML cz. I

21

In

ż

ynieria oprogramowania

UML cz. I (21)

Wypo

ż

yczenie

Data pocz

ą

tku : Date

Data ko

ń

ca : Date

/ Przekroczone : Boolean
MAX_WYPO

ś

YCZENIE : int

zako

ń

cz()

Atrybuty pochodne

Atrybut pochodny

(wywiedziony) mo

ż

e zosta

ć

obliczony na

podstawie innych atrybutów. Atrybutów pochodnych nie
trzeba implementowa

ć

.

przekroczone = (Data ko

ń

ca.Dni() – Data pocz

ą

tku.Dni()) >

MAX_WYPO

ś

YCZENIE

Atrybuty pochodne (ang. derived) s

ą

zale

ż

ne od innych atrybutów i ich

warto

ś

ci mo

ż

na obliczy

ć

na podstawie tych atrybutów. Cz

ę

sto w fazie

implementacji s

ą

przekształcane w metody lub ich warto

ść

jest obliczana

na bie

żą

co. Nie ma zatem potrzeby ich zapami

ę

tywania w klasie.

Atrybuty pochodne s

ą

oznaczane znakiem '/' umieszczonym przed nazw

ą

atrybutu.

background image

Bartosz Walter

UML cz. I

22

In

ż

ynieria oprogramowania

UML cz. I (22)

Składowe statyczne

Składowe (atrybuty i operacje) statyczne

s

ą

widoczne

tak

ż

e wewn

ą

trz klasy, nie tylko wewn

ą

trz obiektów.

Wypo

ż

yczenie

Data pocz

ą

tku : Date

Data ko

ń

ca : Date

/ Przekroczone : Boolean
MAX_WYPO

ś

YCZENIE : int

zako

ń

cz()

Wypo

ż

yczenie

MAX_WYP O

ś

YCZENIE : int

«instantiates»

W klasie widoczny tylko atrybut statyczny

W obiekcie widoczne wszystkie atrybuty

Klasa

Obiekt

Składowe statyczne w klasie s

ą

widoczne zarówno w klasie, jak i w jej

instancji. Składowe niestatyczne s

ą

widoczne jedynie w obiektach danej

klasy, zatem wymagaj

ą

utworzenia jej instancji.

Składowe statyczne klasy s

ą

oznaczane podkre

ś

leniem jej sygnatury.

background image

Bartosz Walter

UML cz. I

23

In

ż

ynieria oprogramowania

UML cz. I (23)

Operacje

widoczność

nazwa(parametr1, parametr2,...)

:

typ

{ograniczenia}

kierunek

nazwa typ

[krotno

ść

] = warto

ść

dom.

kierunki parametrów:

• in

: wej

ś

ciowy

out

: wyj

ś

ciowy

inout

: wej

ś

ciowo-wyj

ś

ciowy

return

: zwracany z metody

Operacja

to proces, który klasa potrafi wykona

ć

.

Operacje s

ą

opisywane w UMLu podobnie jak atrybuty, oczywi

ś

cie, z

uwzgl

ę

dnieniem listy parametrów i pomini

ę

ciem warto

ś

ci domy

ś

lnej.

Parametry s

ą

zapisywane identycznie jak atrybuty klasy, jednak s

ą

poprzedzone informacj

ą

o kierunku jego przekazania: in, out, inout i

return. Domy

ś

lnym kierunkiem jest wej

ś

ciowy.

background image

Bartosz Walter

UML cz. I

24

In

ż

ynieria oprogramowania

UML cz. I (24)

Wła

ś

ciwo

ś

ci i ograniczenia operacji

Operacje, podobnie jak atrybuty, mog

ą

posiada

ć

dodatkowe wła

ś

ciwo

ś

ci i ograniczenia

:

• {query}

– operacja nie modyfikuje stanu obiektu – jest

zapytaniem

«exception»

– metoda mo

ż

e zgłasza

ć

wyj

ą

tek

Definicja operacji wewn

ą

trz klasy przewiduje, podobnie jak w przypadku

atrybutów, mo

ż

liwo

ść

umieszczenia dodatkowych informacji i ogranicze

ń

.

Spo

ś

ród nich najwi

ę

ksze znaczenie ma słowo kluczowe {query}

oznaczaj

ą

ce,

ż

e metoda jedynie zwraca fragment stanu obiektu,

natomiast go nie modyfikuje (czyli nie ma efektu ubocznego). Informacja
taka ma bardzo du

ż

e znaczenie w fazie implementacji.

Podobnie metoda mo

ż

e zgłasza

ć

wyj

ą

tki. Wprawdzie UML nie definiuje

sposobu, w jaki powinna by

ć

oznaczona taka metoda, jednak

powszechnie stosowane jest słowo kluczowe exception wraz z nazw

ą

wyj

ą

tku jako opis klasy wyj

ą

tku, oraz informacja o mo

ż

liwo

ś

ci zgłoszenia

wyj

ą

tku skojarzona z metod

ą

.

background image

Bartosz Walter

UML cz. I

25

In

ż

ynieria oprogramowania

UML cz. I (25)

Warunki wst

ę

pne i ko

ń

cowe

wyszukaj(tytuł: String) : Wydawnictwo[]

post:

wynik != null

wynik instanceof Wydawnictwo[]

pre:

tytuł != null

Warunki wst

ę

pne

• opisuj

ą

stan systemu

wymagany przed
wykonaniem operacji

Warunki ko

ń

cowe

• gwarancje dotycz

ą

ce

stanu systemu po
wykonaniu operacji

Operacj

ę

mo

ż

na tak

ż

e opisywa

ć

przez dwa rodzaje warunków: wst

ę

pne

(ang. preconditions) i ko

ń

cowe (ang. postconditions). Opisuj

ą

one

wymagany i oczekiwany stan fragmentu systemu wymagany odpowiednio
przed i po wykonaniu operacji. Pozwala to na precyzyjniejsze opisane
zadania realizowanego przez metod

ę

, jej wymaga

ń

i efektów jej

wykonania. Projektant ma mo

ż

liwo

ść

wyra

ż

enia poprzez nie, jakie warunki

musz

ą

by

ć

spełnione w celu poprawnego wykonania zadania przez

operacj

ę

.

W tym przykładzie warunkiem wst

ę

pnym poprawnego wykonania operacji

wyszukaj() jest przekazanie niepustego parametru reprezentuj

ą

cego tytuł

wydawnictwa, a warunkiem ko

ń

cowym – zwrócenie warto

ś

ci ró

ż

nej od null

b

ę

d

ą

cej tablic

ą

typu Wydawnictwo. Operacja wyszukaj() nie gwarantuje

okre

ś

lonego rozmiaru zwracanej tablicy.

background image

Bartosz Walter

UML cz. I

26

In

ż

ynieria oprogramowania

UML cz. I (26)

Zale

ż

no

ść

Zale

ż

no

ś

ci

s

ą

najprostszym i najsłabszym rodzajem relacji

ł

ą

cz

ą

cych klasy. Oznaczaj

ą

,

ż

e zmiana jednej z nich w

pewien sposób wpływa na drug

ą

, np.

• «call»

- operacje w klasie A wywołuj

ą

operacje w klasie B

• «create»

- klasa A tworzy instancje klasy B

«instantiate»

- obiekt A jest instancj

ą

klasy B

• «use»

- do zaimplementowania klasy A wymagana jest

klasa B

A

B

«call»

Zale

ż

no

ść

mi

ę

dzy klasami jest najsłabszym typem relacji, jaka mo

ż

e

mi

ę

dzy nimi zaistnie

ć

. Ma ona miejsce wówczas, gdy zmiana definicji

jednej klasy mo

ż

e spowodowa

ć

zmian

ę

drugiej. Oznacza to zwykle,

ż

e

zale

ż

no

ść

jest jednokierunkowa.

Zale

ż

no

ś

ci cz

ę

sto opisuje si

ę

fraz

ą

"...korzysta z...", "...oddziałuje na...",

"...ma wpływ na...", "...tworzy...". Z uwagi na ró

ż

ny rodzaj zale

ż

no

ś

ci,

stosuje si

ę

tzw. słowa kluczowe, które doprecyzowuj

ą

znaczenie

zale

ż

no

ś

ci. Du

ż

a liczba zale

ż

no

ś

ci w nawet niewielkim systemie

powoduje,

ż

e nie warto przedstawia

ć

wszystkich, koncentruj

ą

c si

ę

jedynie

na nieoczywistych, znacz

ą

cych dla zrozumienia diagramu.

Zale

ż

no

ś

ci s

ą

oznaczane lini

ą

przerywan

ą

, a o rodzaju zale

ż

no

ś

ci

decyduje słowo kluczowe umieszczone nad lini

ą

.

background image

Bartosz Walter

UML cz. I

27

In

ż

ynieria oprogramowania

UML cz. I (27)

Asocjacja

Asocjacja

reprezentuje czasowe powi

ą

zanie pomi

ę

dzy

obiektami dwóch klas. Obiekty zwi

ą

zane asocjacj

ą

s

ą

od

siebie niezale

ż

ne.

Asocjacja jest te

ż

u

ż

ywana jako alternatywny (obok

atrybutu) i równorz

ę

dny sposób zapisu cech klasy.

Rezerwacja

id_karty
Nr w katalogu
od kiedy
do kiedy

Czytelnik

Pesel : String
Nazwisko : String
Adres : String
Identyfikator : Integer
Imi

ę

: String

Data zapisu : Date
SZABLON IDENTYFIKATORA : String

Rezerwuj()
Wypo

ż

ycz()

(from Use Case View)

1

0..n

+składa

1

0..n

{od kiedy < do kiedy}

Asocjacje s

ą

silniejszymi relacjami ni

ż

zale

ż

no

ś

ci. Wskazuj

ą

,

ż

e jeden

obiekt jest zwi

ą

zany z innym przez pewien okres czasu. Jednak czas

ż

ycia obu obiektów nie jest od siebie zale

ż

ny: usuni

ę

cie jednego nie

powoduje usuni

ę

cia drugiego.

Relacje asocjacji s

ą

zwykle opisywane frazami "...posiada...", "...jest

wła

ś

cicielem...", jednak ich znaczenie cz

ę

sto jest mylone z inn

ą

relacj

ą

agregacj

ą

. W przypadku asocjacji

ż

aden obiekt nie jest wła

ś

cicielem

drugiego: nie tworzy go, nie zarz

ą

dza nim, a moment usuni

ę

cia drugiego

obiektu nie jest z nim zwi

ą

zany. Z drugiej strony, obiekt powi

ą

zany

asocjacj

ą

z drugim posiada referencj

ę

do niego, mo

ż

e si

ę

do niego

odwoła

ć

etc. Asocjacje mog

ą

posiada

ć

nazwy, zwykle w postaci

czasownika, który pozwala przeczyta

ć

w j

ę

zyku naturalnym jej znaczenie,

np. „A posiada B”. Cz

ę

sto pomija si

ę

jedn

ą

z nazw asocjacji

dwukierunkowej, je

ż

eli jest ona jedynie stron

ą

biern

ą

drugiej nazwy, np.

„przechowuje” – „jest przechowywany”.

Asocjacja jest równowa

ż

na atrybutowi: UML nie rozró

ż

nia obiektu, który

jest polem klasy od obiektu i jest z ni

ą

zwi

ą

zany asocjacj

ą

. Warto jednak

przyj

ąć

konwencj

ę

, w której obiekty reprezentuj

ą

ce warto

ś

ci (np. daty)

oraz typy proste (liczby, napisy, znaki) s

ą

modelowane jako atrybuty,

natomiast obiekty dost

ę

pne poprzez referencje – s

ą

przedstawiane

poprzez asocjacje.

background image

Bartosz Walter

UML cz. I

28

In

ż

ynieria oprogramowania

UML cz. I (28)

Nawigowalno

ść

asocjacji

Rezerwacja

Czytelnik

(from Use Case View)

1

0..n

+składa

1

0..n

{od kiedy < do kiedy}

Czytelnik

(from Use Case View)

Rezerwacja

*

1

+dotyczy

+składa

1

*

{do kiedy > od kiedy}

Nawigowalno

ść

okre

ś

la wiedz

ę

o sobie nawzajem

obiektów uczestnicz

ą

cych w relacji.

Czytelnik wie o swoich rezerwacjach.
Rezerwacja nie odwołuje si

ę

do czytelnika

Oba obiekty pozwalaj

ą

na nawigacj

ę

do siebie nawzajem

Asocjacje modeluj

ą

wzgl

ę

dn

ą

równowag

ę

pomi

ę

dzy poł

ą

czonymi nimi

obiektami, jednak nie oznacza to,

ż

e ich wiedza o sobie jest taka sama.

Informacj

ę

o kierunku relacji (czyli który obiekt mo

ż

e odwoła

ć

si

ę

do

drugiego) opisuje kierunek asocjacji (czyli jej nawigowalno

ść

).

Nawigowalno

ść

pomi

ę

dzy klas

ą

A i klas

ą

B oznacza,

ż

e od obiektu klasy

A mo

ż

na przej

ść

do obiektu klasy B, ale nie odwrotnie. Nawigowalno

ść

dwukierunkowa oznacza,

ż

e nawiguj

ą

c od obiektu klasy A do obiektu

klasy B, a nast

ę

pnie z powrotem, w zbiorze wyników mo

ż

na znale

źć

pocz

ą

tkowy obiekt klasy A.

Nawigowalno

ść

oznaczana jest na diagramach strzałk

ą

. W przypadku

nawigowalno

ś

ci dwukierunkowej strzałki pomija si

ę

.

background image

Bartosz Walter

UML cz. I

29

In

ż

ynieria oprogramowania

UML cz. I (29)

Klasa asocjacyjna

Klasy asocjacyjne

s

ą

zwi

ą

zane z relacj

ą

asocjacji i opisuj

ą

jej wła

ś

ciwo

ś

ci.

Maj

ą

dost

ę

p do innych obiektów uczestnicz

ą

cych w relacji

Czytelnik

(from Us e Case View)

Rezerwacja

*

1

+dotyczy

+składa

1

*

Zamówienie

data
kanał

opisuje dat

ę

zło

ż

enia rezerwacji

i kanał (telefon, www)

Klasa asocjacyjna umo

ż

liwia opisanie za pomoc

ą

atrybutów i operacji nie

obiektu, ale wła

ś

nie samej asocjacji pomi

ę

dzy klasami. Informacje

przechowywane w klasie asocjacyjnej nie s

ą

zwi

ą

zane z

ż

adn

ą

z klas

uczestnicz

ą

cych w asocjacji, dlatego wygodnie jest stworzy

ć

dodatkow

ą

klas

ę

i powi

ą

za

ć

j

ą

z relacj

ą

.

Klasy asocjacyjne s

ą

reprezentowane graficznie jako klasy poł

ą

czone lini

ą

przerywan

ą

z relacj

ą

asocjacji, której dotycz

ą

.

background image

Bartosz Walter

UML cz. I

30

In

ż

ynieria oprogramowania

UML cz. I (30)

Asocjacja kwalifikowana

Asocjacja kwalifikowana

pozwala wskaza

ć

, który atrybut

jednej z klas słu

ż

y do zapewnienia unikatowo

ś

ci zwi

ą

zku

(jest jego kwalifikatorem).

Czytelnik

(from Use Case View)

Rezerwacja

id wydawnictwa

*

1

1

*

id wydawnictwa

Czytelnik

(from Use Case View)

Rezerwacja

*

1

1

*

Asocjacja kwalifikowana jest rozszerzeniem zwykłej asocjacji o mo

ż

liwo

ść

okre

ś

lenia, który z atrybutów jednej z klas decyduje o zwi

ą

zku mi

ę

dzy

nimi. Na przykład, składaj

ą

c Rezerwacj

ę

, Czytelnik podaje list

ę

Wydawnictw, które chciałby po

ż

yczy

ć

. Innymi słowy, mi

ę

dzy Rezerwacj

ą

a Czytelnikiem wyst

ę

puje relacja typu wiele-jeden. Jednak w danym

momencie Czytelnik mo

ż

e zarezerwowa

ć

dane Wydawnictwo tylko jeden

raz – i dlatego atrybut id wydawnictwa jest kwalifikatorem tej relacji. W
efekcie pomi

ę

dzy instancj

ą

Czytelnika a instancj

ą

Rezerwacji wyst

ę

puje

relacja jeden-jeden, poniewa

ż

konkretny Czytelnik rezerwuje konkretne

Wydawnictwo w danym momencie tylko raz.

background image

Bartosz Walter

UML cz. I

31

In

ż

ynieria oprogramowania

UML cz. I (31)

Agregacja

Agregacja

reprezentuje relacj

ę

typu cało

ść

-cz

ęść

, w której

cz

ęść

mo

ż

e nale

ż

e

ć

do kilku cało

ś

ci, a cało

ść

nie zarz

ą

dza

czasem istnienia cz

ęś

ci.

Karta wydawnictwa

Numer w katalogu : String
Autor : String
Tytuł : String
ISBN : String
Data rejestracji : Date
Data usuni

ę

cia : Date

Katalog

Sortowanie()
Znajd

ź

()

**

Katalog zawiera karty wydawnictw,
ale nie tworzy ich. Nie jest ich
wył

ą

cznym wła

ś

cicielem

Agregacja jest silniejsz

ą

form

ą

asocjacji. W przypadku tej relacji

równowaga mi

ę

dzy powi

ą

zanymi klasami jest zaburzona: istnieje

wła

ś

ciciel i obiekt podrz

ę

dny, które s

ą

ze sob

ą

powi

ą

zane czasem

swojego

ż

ycia. Wła

ś

ciciel jednak nie jest wył

ą

cznym wła

ś

cicielem obiektu

podrz

ę

dnego, zwykle te

ż

nie tworzy i nie usuwa go.

Relacja agregacji jest zaznaczana lini

ą

ł

ą

cz

ą

c

ą

klasy/obiekty, zako

ń

czon

ą

białym rombem po stronie wła

ś

ciciela

background image

Bartosz Walter

UML cz. I

32

In

ż

ynieria oprogramowania

UML cz. I (32)

Kompozycja

Kompozycja

jest relacj

ą

typu

cało

ść

-cz

ęść

, w której

cało

ść

jest wył

ą

cznym wła

ś

cicielem cz

ęś

ci, tworzy je

i zarz

ą

dza nimi.

Ksi

ąż

ka

Autor : String
Tytuł : String
ISBN : String

Tom

Liczba stron
Numer : Integer

n

n

Ksi

ąż

ka składa si

ę

z tomów. Tom nie

mo

ż

e istnie

ć

bez poj

ę

cia ksi

ąż

ki, ani

ksi

ąż

ka bez tomów.

Kompozycja jest najsilniejsz

ą

relacj

ą

ł

ą

cz

ą

c

ą

klasy. Reprezentuje relacje

cało

ść

-cz

ęść

, w których cz

ęś

ci s

ą

tworzone i zarz

ą

dzane przez obiekt

reprezentuj

ą

cy cało

ść

. Ani cało

ść

, ani cz

ęś

ci nie mog

ą

istnie

ć

bez siebie,

dlatego czasy ich istnienia s

ą

bardzo

ś

ci

ś

le ze sob

ą

zwi

ą

zane i pokrywaj

ą

si

ę

: w momencie usuni

ę

cie obiektu cało

ś

ci obiekty cz

ęś

ci s

ą

równie

ż

usuwane.

Typowa fraza zwi

ą

zana z tak

ą

relacj

ą

to "...jest cz

ęś

ci

ą

...".

Kompozycja jest przedstawiana na diagramie podobnie jak agregacja,
przy czym romb jest wypełniony.

background image

Bartosz Walter

UML cz. I

33

In

ż

ynieria oprogramowania

UML cz. I (33)

Uogólnienie

Uogólnienie

tworzy hierarchi

ę

klas, od ogólnych do

bardziej szczegółowych. Pozwala wył

ą

czy

ć

cz

ęś

ci

wspólne klas.

Katalog

wydawnictwa : List

Sortowanie()
Znajd

ź

()

Katalog alfabetyczny

Sortowanie()
Znajd

ź

()

Kat alog aut orow

Sortowanie()
Znajd

ź

()

Kat alog rzeczowy

Sortowanie()
Znajd

ź

()

Klasa ogólna

Klasy szczegółowe

Uogólnienie posiada ró

ż

ne interpretacje. Na przykład, w modelu

poj

ę

ciowym Katalog jest uogólnieniem Katalogu rzeczowego, je

ż

eli ka

ż

da

instancja Katalogu rzeczowego jest tak

ż

e instancj

ą

Katalogu. Inn

ą

interpretacj

ą

jest zastosowanie zasady podstawiania Liskov (LSP – Liskov

Substitution Principle): w zamian za typ uogólniony mo

ż

na podstawi

ć

typ

pochodny bez konieczno

ś

ci zmiany reszty programu.

Uogólnienie w przypadku klas cz

ę

sto jest traktowane jako synonim

dziedziczenia, podczas gdy dziedziczenie jest tylko mo

ż

liw

ą

technik

ą

uogólniania. Inn

ą

jest np. wykorzystanie interfejsów, które pozwalaj

ą

utworzy

ć

relacj

ę

uogólnienia/uszczegółowienia pomi

ę

dzy typami

(dziedziczenie interfejsu) lub klas

ą

i interfejsem (implementacja interfejsu).

background image

Bartosz Walter

UML cz. I

34

In

ż

ynieria oprogramowania

UML cz. I (34)

Klasyfikacja

Klasyfikacja

okre

ś

la zwi

ą

zek mi

ę

dzy obiektem a jego

typem (klas

ą

).

Obiekt mo

ż

e nale

ż

e

ć

jednocze

ś

nie do wielu typów.

Ksi

ąż

ka

Wydawnictwo

Czasopismo

Ogólne

Specjalizowane

{overlapping, incomplete}

{disjoint, complete}

{overlapping}

– obiekt mo

ż

e

nale

ż

e

ć

do kilku klas

{disjoint}

– obiekt mo

ż

e nale

ż

e

ć

tylko do jednej klasy

{complete}

– nie istnieje wi

ę

cej

podklas

{incomplete}

– mog

ą

powsta

ć

kolejne podklasy

Klasyfikacja obiektu reprezentuje (w odró

ż

nieniu od relacji

uogólnienia/uszczegółowienia) zwi

ą

zek pomi

ę

dzy obiektami a klasami.

Klasyfikacja obiektu okre

ś

la, z którymi typami (klasami) jest powi

ą

zany –

poprzez dziedziczenie, interfejsy etc. Poniewa

ż

obiekt mo

ż

e jednocze

ś

nie

uczestniczy

ć

w wielu niezale

ż

nych klasyfikacjach (a zatem posiada

ć

wiele

typów, niekoniecznie poprzez dziedziczenie), dlatego do szczegółowego
okre

ś

lenia klasyfikacji stosowane s

ą

u

ś

ci

ś

laj

ą

ce słowa kluczowe:

•{overlapping} oznacza,

ż

e obiekt mo

ż

e jednocze

ś

nie nale

ż

e

ć

do kilku

klas/posiada

ć

wiele typów. Na przykład Wydawnictwo, mimo

ż

e posiada

dwie podklasy: Ksi

ąż

ka Czasopismo, mo

ż

e wyst

ą

pi

ć

w postaci ł

ą

cz

ą

cej

obie te cechy. Przeciwie

ń

stwem jest słowo kluczowe {disjoint}, które

narzuca rozł

ą

czno

ść

typów danych

•{complete} oznacza,

ż

e wymienione dotychczas podklasy w ramach

jednej specjalizacji s

ą

wyczerpuj

ą

ce i nie istnieje kategoria, która

znalazłaby si

ę

poza nimi. W przykładzie Wydawnictwo mo

ż

e by

ć

Ogólne

lub Specjalizowane, i nie przewiduje si

ę

istnienia nowej podklasy.

{Incomplete} przewiduje tak

ą

mo

ż

liwo

ść

.

background image

Bartosz Walter

UML cz. I

35

In

ż

ynieria oprogramowania

UML cz. I (35)

Interfejsy i klasy abstrakcyjne

Klasa abstrakcyjna

deklaruje wspóln

ą

funkcjonalno

ść

grupy

klas. Nie mo

ż

e posiada

ć

obiektów i musi definiowa

ć

podklasy.

Interfejs

deklaruje grup

ę

operacji bez podawania ich

implementacji.

wymagany
interfejs

implementowany
interfejs

Katalog

wydawnictwa : List

Sortowanie() : void
Znajd

ź

() : Wydawnictwo

Porównaj()

Sortowalny

Porównaj()

Katalog alfabetyczny

Sortowanie()
Znajd

ź

()

Narz

ę

dzia

sortuj()

<<realizes>>

Celem tworzenia klas abstrakcyjnych i interfejsów jest identyfikacja
wspólnych zachowa

ń

ż

nych klas, które s

ą

realizowane w ró

ż

ny od

siebie sposób. U

ż

ycie tych mechanizmów pozwala na wykorzystanie

relacji uogólniania do ukrywania (hermetyzacji) szczegółów implementacji
poszczególnych klas.

Klasa abstrakcyjna reprezentuje wirtualny byt grupuj

ą

cy wspóln

ą

funkcjonalno

ść

kilku klas. Posiada ona sygnatury operacji (czyli

deklaracje,

ż

e klasy tego typu b

ę

d

ą

akceptowa

ć

takie komunikaty), ale nie

definiuje ich implementacji.

Podobn

ą

rol

ę

pełni interfejs. Ró

ż

nica polega na tym,

ż

e klasa

abstrakcyjna mo

ż

e posiada

ć

implementacje niektórych operacji, natomiast

interfejs jest czysto abstrakcyjny (cho

ć

, oczywi

ś

cie interfejs i klasa w pełni

abstrakcyjna s

ą

poj

ę

ciowo niemal identyczne).

Poniewa

ż

klasy abstrakcyjne nie mog

ą

bezpo

ś

rednio tworzy

ć

swoich

instancji (podobnie jak interfejsy, które z definicji nie reprezentuj

ą

klas, a

jedynie ich typy) dlatego konieczne jest tworzenie ich podklas, które
zaimplementuj

ą

odziedziczone abstrakcyjne metody. W przypadku

interfejsu sytuacja jest identyczna.

Przyj

ę

tym sposobem oznaczania klas i metod abstrakcyjnych jest

zapisywanie ich pochył

ą

czcionk

ą

lub opatrywanie słowem kluczowym

{abstract}.

background image

Bartosz Walter

UML cz. I

36

In

ż

ynieria oprogramowania

UML cz. I (36)

Interfejsy i klasy abstrakcyjne

Klasa abstrakcyjna

deklaruje wspóln

ą

funkcjonalno

ść

grupy

klas. Nie mo

ż

e posiada

ć

obiektów i musi definiowa

ć

podklasy.

Interfejs

deklaruje grup

ę

operacji bez podawania ich

implementacji.

wymagany
interfejs

implementowany
interfejs

Katalog

wydawnictwa : List

Sortowanie() : void
Znajd

ź

() : Wydawnictwo

Porównaj()

Sortowalny

Porównaj()

Katalog alfabetyczny

Sortowanie()
Znajd

ź

()

Narz

ę

dzia

sortuj()

<<realizes>>

W przykładzie Katalog jest klas

ą

abstrakcyjn

ą

posiadaj

ą

c

ą

abstrakcyjne

metody Sortowanie() i Znajd

ź

(). Metody te posiadaj

ą

implementacje w

podklasie Katalog alfabetyczny.

Katalog implementuje interfejs Sortowalny (z metod

ą

Porównaj()), który z

kolei jest wymagany przez klas

ę

pomocnicz

ą

Narz

ę

dzia.

background image

Bartosz Walter

UML cz. I

37

In

ż

ynieria oprogramowania

UML cz. I (37)

Szablony klas

Szablon klasy

okre

ś

la, z jakimi innymi klasami (nie obiektami!)

mo

ż

e współpracowa

ć

podana klasa. Klasy te s

ą

przekazywane

jako jej parametry.
Klasa b

ę

d

ą

ca uszczegółowieniem takiej klasy jest

klas

ą

zwi

ą

zan

ą

.

parametr klasy Lista

ListaWydawnictw

T

Lista

sortuj()
pierwszy()
ostatni()
długo

ść

()

szablon klasy Lista

klasa zwi

ą

zana

«bind»

Szablony klas to poj

ę

cie wywodz

ą

ce si

ę

z j

ę

zyka C++. Oznaczaj

ą

one

klasy, których definicja wymaga podania argumentów b

ę

d

ą

cych innymi

klasami. W ten sposób szablon klasy jest swego rodzaju niepełn

ą

klas

ą

,

która dopiero po ukonkretnieniu mo

ż

e zosta

ć

u

ż

yta. Na przykład, klasa

Lista mo

ż

e przechowywa

ć

obiekty pewnego typu. Typ ten mo

ż

e sta

ć

si

ę

parametrem tej klasy: w ten sposób utworzony zostanie szablon listy dla
potencjalnie dowolnego typu. Klasa stanowi

ą

ca ukonkretnienie szablonu

(ListaWydawnictw) została sparametryzowana (zwi

ą

zana) typem

Wydawnictwo, dzi

ę

ki czemu mo

ż

e by

ć

ju

ż

wykorzystana do tworzenia

obiektów.

Podobn

ą

koncepcj

ę

wprowadzono tak

ż

e do innych j

ę

zyków

programowania, np. Java, pod nazw

ą

typów generycznych.

background image

Bartosz Walter

UML cz. I

38

In

ż

ynieria oprogramowania

UML cz. I (38)

Diagram obiektów

Diagram obiektów

przedstawia mo

ż

liw

ą

konfiguracj

ę

obiektów wyst

ę

puj

ą

cych w systemie.

Relacje pomi

ę

dzy obiektami s

ą

bardziej dynamiczne ni

ż

w

przypadku klas.

Cichy Don: Ksiazka

Autor = M. Szołochow

Egz876: Egzemplarz

Numer w katalogu = 876
Numer wydawnictwa

Rez123 : Rezerwacja

od kiedy = 13-05-2006
do kiedy = 27-05-2006

1

0..n

1

0..n

Kowalski: Czytelnik

PESEL = 65020212345
Nazwisko = Kowalski
Adres = Nijaka 2
OplatyKarne = 10.50

(from Us e Cas e View)

<<Actor>>

1

0..n

1

0..n

Diagram obiektów (ang. object diagram) prezentuje mo

ż

liw

ą

konfiguracj

ę

obiektów w okre

ś

lonym momencie, jest pewnego rodzaju instancj

ą

diagramu klas, w której zamiast klas przedstawiono ich obiekty.

Diagram ten posługuje si

ę

identycznymi symbolami co diagram klas,

jednak, dla odró

ż

nienia obiektów od klas, nazwy instancji s

ą

podkre

ś

lone.

Ponadto, nazwa składa si

ę

z nazwy obiektu i nazwy klasy, oddzielonych

dwukropkiem. Obie cz

ęś

ci nazwy mo

ż

na pomin

ąć

, wi

ę

c aby unikn

ąć

nieporozumie

ń

, jedna cz

ęść

nazwy oznacza nazw

ę

obiektu, a sama

nazwa klasy musi by

ć

zawsze poprzedzona dwukropkiem.

Diagramy obiektów przydaj

ą

si

ę

w przypadku szczególnie

skomplikowanych zale

ż

no

ś

ci, których nie mo

ż

na przedstawi

ć

na

diagramie klas. Wówczas przykładowe konfiguracje obiektów pomagaj

ą

w

zrozumieniu modelu.

background image

Bartosz Walter

UML cz. I

39

In

ż

ynieria oprogramowania

UML cz. I (39)

Diagram struktur zło

ż

onych

Diagram struktur zło

ż

onych

przedstawia wewn

ę

trzn

ą

struktur

ę

obiektu oraz punkty interakcji z innymi obiektami w

systemie.

Katalog

Wyszukiwarka

Baza danych

«defines»

«defines»

Wyszukiwanie

Zarz

ą

dzanie danymi

obiekt zło

ż

ony

cz

ęść

port

interfejs

Diagram struktur zło

ż

onych (ang. composite structure diagram)

przedstawia hierarchicznie wewn

ę

trzn

ą

struktur

ę

zło

ż

onego obiektu z

uwzgl

ę

dnieniem punktów interakcji z innymi cz

ęś

ciami systemu.

Obiekt składa si

ę

z cz

ęś

ci, które reprezentuj

ą

poszczególne składowe

obiektu realizuj

ą

ce poszczególne funkcje obiektu. Komunikacja pomi

ę

dzy

obiektem, a jego

ś

rodowiskiem przebiega poprzez port (oznaczany jako

mały prostok

ą

t umieszczony na kraw

ę

dzi obiektu). Porty s

ą

poł

ą

czone z

cz

ęś

ciami obiektu, które s

ą

odpowiedzialne za realizacje tych funkcji.

Diagramy struktur zło

ż

onych mog

ą

tak

ż

e zawiera

ć

interfejsy wewn

ę

trzne

(równowa

ż

ne klasom w pełni abstrakcyjnym) i interfejsy udost

ę

pnione

(widoczne na zewn

ą

trz obiektu; dziel

ą

si

ę

na interfejsy wymagane i

oferowane).

background image

Bartosz Walter

UML cz. I

40

In

ż

ynieria oprogramowania

UML cz. I (40)

Podsumowanie

• UML powstał w wyniku poł

ą

czenia ró

ż

nych notacji i

metodyk modelowania

• UML opisuje system w postaci 4 perspektyw

wewn

ę

trznych i 1 zewn

ę

trznej

• Diagram przypadków u

ż

ycia opisuje funkcje

systemu i jego u

ż

ytkowników

• Diagram klas okre

ś

la statyczn

ą

struktur

ę

logiczn

ą

systemu

• Diagram obiektów pokazuje mo

ż

liw

ą

konfiguracj

ę

obiektów w systemie

Podczas wykładu przedstawiono genez

ę

j

ę

zyka UML, jego struktur

ę

, oraz

trzy typy diagramów: przypadków u

ż

ycia, klas, obiektów i struktury

zło

ż

onej.


Wyszukiwarka

Podobne podstrony:
Io 6 Język UML, cz II
jezyk C skrypt cz 1
Jezyk UML
Prezenterzy sportowi i piękny język polski cz 2
helion jezyk uml 2 0 w modelowa Nieznany
Jezyk-UML
MATURA - Język polski - 2 cz
jezyk C skrypt cz 2
IO wyk UML 1
MATURA - Język polski - 1 cz
jezyk C skrypt cz 1
Jezyk UML 2 0 w modelowaniu systemow informatycznych juml2
Jezyk UML 2 0 w modelowaniu systemów informatycznych
Jezyk UML 2 0 w modelowaniu systemow informatycznych juml2
Jezyk UML 2 0 w modelowaniu systemow informatycznych

więcej podobnych podstron