background image

1

1

UML – diagramy klas 

UML – diagramy klas 

cz.2/2

cz.2/2

background image

2

2

Plan wykładu

Plan wykładu

Związki między klasami 

Związki między klasami 

Konstruowanie diagramu klas 

Konstruowanie diagramu klas 

Identyfikacja klas metodą DDD

Identyfikacja klas metodą DDD

background image

3

3

 

 

Związki między klasami

Związki między klasami

 

 

Asocjacje/Powiązania

Asocjacje/Powiązania

Agregacje klas

Agregacje klas

Uogólnienia

Uogólnienia

Interfejsy

Interfejsy

Przykłady diagramów klas

Przykłady diagramów klas

background image

4

4

Asocjacja/Powiązani

Asocjacja/Powiązani

e

e

background image

5

5

Powiązanie

Powiązanie wyraża “równorzędność” 
lub “starszeństwo” egzemplarzy.

Dostępne są 4 podstawowe dodatki 
do powiązań: 

nazwa, rola, 

liczebność

 (przy każdym końcu) 

oraz 

agregacja

.

Rola

 to zachowanie bytu w 

określonym kontekście.

background image

6

6

Powiązanie

Biblioteka

Powiązanie – jest to związek 

strukturalny, który wskazuje, że obiekty 

jednego elementu są połączone z 

obiektami innego.

Książka

1

*

zawier

a

kierunek nawigacji

kierunek nazwy

nazwa

liczebność

Osoba

Przedsiębiorst

wo

pracow

nik

pracodaw

ca

pracuje dla

rola

powiązanie

background image

7

7

Klasa powiązania

klasa powiązania – byt posiadający cechy 

klasy i powiązania. Umożliwia zdefiniowanie 

właściwości powiązania jeśli są potrzebne.

Przedsiębiorst

wo

*

1..

*

klasa powiązania

pracodaw

ca

Osoba

pracowni

k

Stanowisko

opis

dataZatrudnie

nia

wynagrodzeni

e

background image

8

8

reprezentuje związki między instancjami 

klas;
nawigowalność (jednokierunkowa lub 

dwukierunkowa). Asocjacji bez strzałek należy 

traktować jako dwukierunkowe bądź o nieznanej 

nawigowalności (kwestia umowna);
 klasy asocjacyjne pozwalają na dodanie 

atrybutów, operacji i innych elementów do 

asocjacji. 
Między dwoma obiektami połączonymi 

asocjacją może istnieć tylko jedna instancja 

klasy asocjacyjnej

ASOCJACJA/POWIĄZANIE

ASOCJACJA/POWIĄZANIE

background image

9

9

Diagram klas z asocjacjami- przykład

Diagram klas z asocjacjami- przykład

background image

10

10

Zależność

Zależność

Zależności

Zależności

 są 

 są 

najprostszym i najsłabszym rodzajem 

najprostszym i najsłabszym rodzajem 

relacji

relacji

 łączących klasy. Oznaczają, że zmiana jednej z 

 łączących klasy. Oznaczają, że zmiana jednej z 

nich w pewien sposób wpływa na drugą, np.

nich w pewien sposób wpływa na drugą, np.

   

   

«

«

call

call

»

»

 

 

- operacje w klasie A wywołują operacje w 

- operacje w klasie A wywołują operacje w 

klasie B

klasie B

   

   

«

«

create

create

»

»

 

 

- klasa A tworzy instancje klasy B

- klasa A tworzy instancje klasy B

   

   

«

«

instantiate

instantiate

»

»

 

 

- obiekt A jest instancją klasy B

- obiekt A jest instancją klasy B

   

   

«

«

use

use

»

»

 

 

- do zaimplementowania klasy A 

- do zaimplementowania klasy A 

wymagana jest 

wymagana jest 

                   

                   

klasa B

klasa B

A

B

«call»

background image

11

11

Agregacje 

Agregacje 

klas

klas

background image

12

12

Agregacja klas

Agregacja klas

 

 

Agregacja

 - związek całość-część, w którym 

klasa reprezentuje większy element składający 
się z części; wyraża się zależnością „

ma

”: 

                   obiekt-całość ma obiekty-części 

 Agregacja w tej postaci ma jedynie 

znaczenie 

pojęciowe

, nie zmienia znaczenia nawigacji, 

nie wyznacza zależności między czasem życia 
poszczególnych obiektów . Można to 
ograniczyć poprzez określenie 

kierunku 

nawigacji

.

  

Agregacja całkowita

 - charakteryzuje się 

relacją wyłącznej własności oraz jednością 
czasu życia całości i części
. Części o 
nieustalonej liczebności mogą powstawać po 
utworzeniu całości, ale potem żyją i umierają 
razem z całością. 

background image

13

13

Agregacja klas

Agregacja klas

Agregacja jest cechą asocjacji.

Agregacja jest cechą asocjacji.

Kompozycja jest lepsza od 

Kompozycja jest lepsza od 

dziedziczenia.

dziedziczenia.

background image

14

14

Agregacja

Agregacja

Agregacja

Agregacja

 reprezentuje relację typu całość-część, 

 reprezentuje relację typu całość-część, 

w której część może należeć do kilku całości, a 

w której część może należeć do kilku całości, a 

całość nie zarządza czasem istnienia części.

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

background image

15

15

Agregacja całkowita

Okno

agregacja całkowita

 – oznacza, że część 

biorąca udział w agregacji może należeć tylko 

do jednej całości oraz, że o czasie życia części 

decyduje całość. Całość musi zadbać o 

stworzenie i zniszczenie części. (Czas życia 

części <= czasowi życia całości).

Ramka

1

*

agregacja całkowita

PlanszaGry

Pole

1

64

background image

16

16

Agregacje i kompozycje

background image

17

17

Kompozycja

Kompozycja

Kompozycja

Kompozycja

 jest relacją typu 

 jest relacją typu 

całość-część

całość-część

, w 

, w 

której całość jest wyłącznym właścicielem 

której całość jest wyłącznym właścicielem 

części, tworzy je i zarządza nimi.

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.

background image

18

18

Uogólnienie

Uogólnienie

background image

19

19

przedstawiane jest jako linia ciągła 

zakończona zamkniętym, niewypełnionym 

grotem wskazującym przodka;
może posiadać nazwę (gdy model ma wiele 

uogólnień – konieczne).

Osoba prywatna
imie : String
nazwisko : String
pesel : String
nr_dowodu : String

nowy()
modyfikuj()

Zrzeszenie

prezes : String
nazwa : String

nowy()
modyfikuj()

Dostawca

nr_konta : String
adres : String
telefon : String
NIP : String

usun()
wyszukaj()
* pokaz()

klasa 
podstawowa

liść

uogólnienie

UOGÓLNIENIE

UOGÓLNIENIE

background image

20

20

Interfejsy

Interfejsy

background image

21

21

Interfejsy

Interfejs to zestaw operacji które 

wyznaczają usługi oferowane przez 

klasę lub komponent.

<<interface>>

ObsługaPołączeniaUR

L

nawiążPołączenie()

analizujURL()

ustawURL()

formaCzytelna()

Interfejs nie posiada argumentów!

Interfejs definiowany jest jako 

stereotypowana klasa

interfejs

background image

22

22

Przykład klasy i interfejsu 

Przykład klasy i interfejsu 

background image

23

23

Specyfikator interfejsu

specyfikator interfejsu  – określa jaki 

interfejs udostępnia klasa w danej roli.

Osoba

*

1

specyfikator interfejsu

Przełożony : 

IKierownik

Podwładny : 

IPracownik

background image

24

24

 

 

Przykłady diagramów 

Przykłady diagramów 

klas

klas

background image

25

25

Diagram klas modelujący zamówienie z katalogu

 

background image

26

26

Diagram klas dla systemu 

Diagram klas dla systemu 

informacyjnego uczelni

informacyjnego uczelni

background image

27

27

Diagram klas „organizacja lotów”

Diagram klas „organizacja lotów”

background image

28

28

Konstruowanie diagramu klas

Konstruowanie diagramu klas

Identyfikowanie klas 

Identyfikowanie klas 

Identyfikacja potencjalnych atrybutów 

Identyfikacja potencjalnych atrybutów 

Identyfikacja związków generalizacji-

Identyfikacja związków generalizacji-

specjalizacji 

specjalizacji 

Identyfikacja asocjacji

Identyfikacja asocjacji

background image

29

29

Identyfikowanie klas

Identyfikowanie klas

background image

30

30

Identyfikowanie klas 

Identyfikowanie klas 

Dobry system powinien opierać się w 

Dobry system powinien opierać się w 

jak największym stopniu na klasach 

jak największym stopniu na klasach 

reprezentujących 

reprezentujących 

byty wyróżnialne w 

byty wyróżnialne w 

dziedzinie problemowej

dziedzinie problemowej

, a nie na 

, a nie na 

funkcjonalności, która może się zmienić

funkcjonalności, która może się zmienić

Identyfikacja klas polega na 

Identyfikacja klas polega na 

wyszukaniu w specyfikacji wymagań

wyszukaniu w specyfikacji wymagań

  

  

użytkownika 

użytkownika 

rzeczowników

rzeczowników

 i 

 i 

określenie, które z nich mogą opisywać 

określenie, które z nich mogą opisywać 

potencjalne klasy

potencjalne klasy

background image

31

31

Przykład klasy 

Przykład klasy 

Gazeta

Gazeta

, która 

, która 

może definiować następujące 

może definiować następujące 

byty

byty

:

:

Konkretny egzemplarz

Konkretny egzemplarz

 gazety 

 gazety 

kupiony przez czytelnika;

kupiony przez czytelnika;

Konkretne wydanie

Konkretne wydanie

 gazety 

 gazety 

(niezależnie od liczby ezemolarzy);

(niezależnie od liczby ezemolarzy);

Partię egzemplarzy

Partię egzemplarzy

 danej gazety 

 danej gazety 

dostarczaną codziennie do kiosku;

dostarczaną codziennie do kiosku;

Tytuł i wydawnictwo

Tytuł i wydawnictwo

 niezależnie od 

 niezależnie od 

egzemplarzy i wydań.

egzemplarzy i wydań.

background image

32

32

Kandydata na klasę odrzucamy 

Kandydata na klasę odrzucamy 

gdy:

gdy:

Jest 

Jest 

redundantny

redundantny

 (istnieją różne rzeczowniki 

 (istnieją różne rzeczowniki 

dla określenia tego samego bytu)

dla określenia tego samego bytu)

Jest 

Jest 

nieuchwytny

nieuchwytny

 (co właściwie oznacza?)

 (co właściwie oznacza?)

Oznacza 

Oznacza 

wydarzenie

wydarzenie

 lub 

 lub 

operację

operację

Stanowi wyrażenie 

Stanowi wyrażenie 

meta

meta

 

 

języka

języka

, czyli służy 

, czyli służy 

do opisywania innych bytów

do opisywania innych bytów

Oznacza coś, co znajduje się na 

Oznacza coś, co znajduje się na 

zewnątrz 

zewnątrz 

systemu

systemu

, np. aktorów

, np. aktorów

Oznacza 

Oznacza 

atrybut

atrybut

, czyli byt prostszy niż 

, czyli byt prostszy niż 

klasa

klasa

background image

33

33

Identyfikacja potencjalnych 

Identyfikacja potencjalnych 

atrybutów

atrybutów

background image

34

34

Identyfikacja potencjalnych 

Identyfikacja potencjalnych 

atrybutów

atrybutów

Rzeczowniki

Rzeczowniki

 mogą opisywać nie tylko klasy 

 mogą opisywać nie tylko klasy 

ale 

ale 

także atrybuty

także atrybuty

Jeśli danemu rzeczownikowi 

Jeśli danemu rzeczownikowi 

nie można 

nie można 

przypisać atrybutów ani zachowania

przypisać atrybutów ani zachowania

 to taki 

 to taki 

rzeczownik zazwyczaj opisuje 

rzeczownik zazwyczaj opisuje 

atrybut

atrybut

Rzeczownik opisuje atrybut, jeśli 

Rzeczownik opisuje atrybut, jeśli 

wyjaśnienie 

wyjaśnienie 

jego znaczenia wymaga odwołania się do 

jego znaczenia wymaga odwołania się do 

jakiegoś innego rzeczownika

jakiegoś innego rzeczownika

 (oznaczającego 

 (oznaczającego 

obiekt), np. rzeczownik „kolor” zmusza do 

obiekt), np. rzeczownik „kolor” zmusza do 

zadania pytania „kolor czego”

zadania pytania „kolor czego”

Dla każdego atrybutu należy 

Dla każdego atrybutu należy 

identyfikować 

identyfikować 

klasę lub asocjację

klasę lub asocjację

background image

35

35

Identyfikacja związków 

Identyfikacja związków 

generalizacji-specjalizacji

generalizacji-specjalizacji

background image

36

36

W sytuacji gdy podstawowe klasy 

W sytuacji gdy podstawowe klasy 

zostały zdefiniowane, należy 

zostały zdefiniowane, należy 

pogrupować klasy podobne

pogrupować klasy podobne

, dokonać 

, dokonać 

generalizacji

generalizacji

Po czym „

Po czym „

wyciągnąć przed nawias

wyciągnąć przed nawias

” 

” 

(tzn. dokonać generalizacji) wszelkie 

(tzn. dokonać generalizacji) wszelkie 

wspólne własności tych klas i umieścić 

wspólne własności tych klas i umieścić 

je w 

je w 

nowo utworzonej klasie

nowo utworzonej klasie

Np. 

Np. 

Pies

Pies

 może być nadklasą dla klas: 

 może być nadklasą dla klas: 

Pekińczyk, Jamnik, Pudel

Pekińczyk, Jamnik, Pudel

Identyfikacja związków 

Identyfikacja związków 

generalizacji-specjalizacji

generalizacji-specjalizacji

background image

37

37

Identyfikacja 

Identyfikacja 

asocjacji

asocjacji

background image

38

38

czasie identyfikacji asocjacji

czasie identyfikacji asocjacji

 

 

należy zwracać uwagę na następujące 

należy zwracać uwagę na następujące 

aspekty modelu

aspekty modelu

:

:

Ścieżka dostępu do obiektu

Ścieżka dostępu do obiektu

Liczność asocjacji

Liczność asocjacji

Atrybuty związane z asocjacjami

Atrybuty związane z asocjacjami

Asocjacje, które nie mogą być 

Asocjacje, które nie mogą być 

agregacjami, kompozycjami

agregacjami, kompozycjami

Klasy docelowe – czy asocjacja 

Klasy docelowe – czy asocjacja 

prowadzi do danej klasy, czy też 

prowadzi do danej klasy, czy też 

raczej do jej podklasy lub nadklasy

raczej do jej podklasy lub nadklasy

background image

39

39

Identyfikacja klas 

Identyfikacja klas 

metodą DDD

metodą DDD

DDD-Data Driven Design

DDD-Data Driven Design

(Projektowanie diagramu

(Projektowanie diagramu

 klas w oparciu o dane )

 klas w oparciu o dane )

background image

40

40

Proces przebiega w dwóch 

Proces przebiega w dwóch 

etapach:

etapach:

Identyfikacja potencjalnych klas poprzez 

Identyfikacja potencjalnych klas poprzez 

podkreślenie

podkreślenie

 wszystkich rzeczowników i 

 wszystkich rzeczowników i 

fraz rzeczowników w tekście wymagań

fraz rzeczowników w tekście wymagań

Odrzucenie

Odrzucenie

 niektórych kandydatów i 

 niektórych kandydatów i 

zmiana nazw, o ile wyniknie taka potrzeba

zmiana nazw, o ile wyniknie taka potrzeba

Uwaga 

Uwaga 

          

          

Nazwy powinny być rzeczownikami w 

Nazwy powinny być rzeczownikami w 

  

  

mianowniku liczby pojedynczej

mianowniku liczby pojedynczej

 

 

background image

41

41

Przykład tekstu wymagań

Przykład tekstu wymagań

Biblioteka

Biblioteka

 posiada 

 posiada 

książki

książki

 i 

 i 

czasopisma

czasopisma

. Może być 

. Może być 

kilka 

kilka 

egzemplarzy

egzemplarzy

 tej samej 

 tej samej 

książki

książki

. Tylko 

. Tylko 

personel

personel

 

 

może wypożyczać 

może wypożyczać 

czasopisma

czasopisma

Członek biblioteki

Członek biblioteki

 

 

może mieć jednocześnie wypożyczonych 6 

może mieć jednocześnie wypożyczonych 6 

pozycji

podczas gdy 

podczas gdy 

osoba

osoba

 pracująca w 

 pracująca w 

bibliotece

bibliotece

 może 

 może 

wypożyczyć 12. 

wypożyczyć 12. 

System

System

 ma rejestrować 

 ma rejestrować 

wypożyczenia

wypożyczenia

 

 

zwroty

zwroty

 oraz pilnować by przestrzegano wymienionych 

 oraz pilnować by przestrzegano wymienionych 

powyżej 

powyżej 

reguł (ograniczeń)

reguł (ograniczeń)

Oznaczenia:

Oznaczenia:

Czerwony

Czerwony

 - rzeczowniki w tekście wymagań

 - rzeczowniki w tekście wymagań

Czerwony z podkreśleniem

Czerwony z podkreśleniem

 - klasy

 - klasy

Beżowy

Beżowy

 - mogą być klasami, atrybutami klas istniejących, albo w postaci 

 - mogą być klasami, atrybutami klas istniejących, albo w postaci 

asocjacji

asocjacji

background image

42

42

Przykład (identyfikacja związków 

Przykład (identyfikacja związków 

generalizacji)

generalizacji)

Np. Klasa 

Np. Klasa 

Personel

Personel

 i 

 i 

Członek 

Członek 

biblioteki

biblioteki

 mogą dziedziczyć z nowo 

 mogą dziedziczyć z nowo 

utworzonej klasy 

utworzonej klasy 

Osoba

Osoba

background image

43

43

Przykład (identyfikacja związków 

Przykład (identyfikacja związków 

asocjacji)

asocjacji)

W tekście wymagań wyszukuje się 

W tekście wymagań wyszukuje się 

czasowniki

czasowniki

Asocjacje

Asocjacje

 pojawiają się także gdy 

 pojawiają się także gdy 

obiekt klasy A musi mieć 

obiekt klasy A musi mieć 

możliwość dostępu do danych 

możliwość dostępu do danych 

obiektu klasy B

obiektu klasy B

background image

44

44

Przykład (związki asocjacji)

Przykład (związki asocjacji)

Biblioteka posiada książki i czasopisma. 

Biblioteka posiada książki i czasopisma. 

Może być kilka 

Może być kilka 

egzemplarzy tej samej książki

egzemplarzy tej samej książki

. Tylko personel może 

. Tylko personel może 

wypożyczać

wypożyczać

 czasopisma. Członek biblioteki może mieć 

 czasopisma. Członek biblioteki może mieć 

jednocześnie wypożyczonych 6 pozycji, podczas gdy 

jednocześnie wypożyczonych 6 pozycji, podczas gdy 

osoba pracująca w bibliotece może wypożyczyć 12. 

osoba pracująca w bibliotece może wypożyczyć 12. 

System ma rejestrować wypożyczenia i zwroty oraz 

System ma rejestrować wypożyczenia i zwroty oraz 

pilnować by przestrzegano wymienionych powyżej 

pilnować by przestrzegano wymienionych powyżej 

reguł (ograniczeń).

reguł (ograniczeń).

Asocjacje:

Asocjacje:

-

-

jest egzemplarzem

jest egzemplarzem

 (od frazy „może być kilka 

 (od frazy „może być kilka 

egzemplarzy tej samej książki”)

egzemplarzy tej samej książki”)

Wypożyczyła

Wypożyczyła

 (od frazy „wypożyczać”)

 (od frazy „wypożyczać”)

background image

45

45

Diagram klas dla biblioteki

background image

46

46

Podsumowanie

Podsumowanie

Związki między klasami 

Związki między klasami 

Konstruowanie diagramu klas 

Konstruowanie diagramu klas 

Identyfikacja klas metodą DDD

Identyfikacja klas metodą DDD

background image

47

47

Literatura

1.

1.

Cheesman  J.,  Daniels  J.: 

Cheesman  J.,  Daniels  J.: 

Komponenty 

Komponenty 

w  UML,

w  UML,

  Wydawnictwa  Naukowo- 

  Wydawnictwa  Naukowo- 

Techniczne

Techniczne

Warszawa 2004. 

Warszawa 2004. 

2.

2.

Płodzień  J.,Stemposz  E.:

Płodzień  J.,Stemposz  E.:

Analiza  i 

Analiza  i 

projektowanie 

systemów 

projektowanie 

systemów 

informatycznych. 

informatycznych. 

Wyd. 

PJWSTK. 

Wyd. 

PJWSTK. 

Warszawa 2005.

Warszawa 2005.


Document Outline