8(45) Diagramy klas cz2

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

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

W

W

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

i

i

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


Wyszukiwarka

Podobne podstrony:
7(45) Diagramy klas wprowadzenie
7(45) Diagramy klas wprowadzenie
Serwis sprzetu domowego z diagramem klas
Diagram Klas
Diagram klas
Diagram Klas
Diagramy klas
11(45) Diagram interakcji cz2id 12714 ppt
10(45) Diagramy interakcjiL cz1id 11241 ppt
diagram klas 2
diagram klas 2
Diagram klas i obiektow ZIN 3 i Nieznany
Diagram klas UŚ
analiza systemow informatycznych, Egzamin z PSI, Egzamin składa się z 30 pytań i modelu UML do zapro
diagram klas do dziekanatu
Diagram klas
5 Diagram klas
Diagramy klas

więcej podobnych podstron