Diagramy klas

background image

1

Diagramy klas

Dr inż. Ilona Bluemke

Plan wykładu

„

Klasa

„

Relacje miedzy klasami (asocjacje,
generalizacje, agregacje)

„

Ograniczenia relacji

„

Klasy interfejsowe

Diagramy klas

„

Przedstawiają typy obiektów występujących
w aplikacji i powiązania między nimi.

„

Jest to model statyczny dziedziny problemu.

„

Określają

CO JEST

w systemie potrzebne do

realizacji wymaganych funkcji (model use
case).

Klasa

osoba

Wiek
Adres
Data_urodzenia

Podaj_wiek
Daj_adres
Ustaw_adres

atrybuty

operacje

nazwa

Graficzna reprezentacja klasy

Osoba

Osoba

Podaj_wiek
Podaj_adres
Ustaw_adres

Osoba

wiek
adres
data_urodzenia

Klasa

„

Opisuje grupę obiektów o podobnych
własnościach (atrybutach), zachowaniach
(operacjach), wspólnych relacjach z innymi
obiektami, identycznym znaczeniu.

„

Jest uogólnieniem zbioru obiektów. Obiekt
jest instancją klasy.

„

Klasy pomagają w abstrakcji, generalizacji
problemu.

background image

2

Atrybuty

„

wartości danych przechowywane w obiekcie
określonej klasy, są unikalne w klasie, różne klasy
mogą mieć takie same nazwy atrybutów.

„

są określonego typu

„

mogą mieć wartość domniemaną.

„

może mieć określony zakres dostępności :

‰

prywatny (private) -name : tylko klasa

‰

publiczny (public) +name : wszystkie klasy

‰

chroniony (protected) #name : klasa, podklasy

Atrybut -2

może być:

„

implementacyjny (implementation)

?name

„

wyprowadzalny (derived)

/name

daje się wyprowadzić z innych atrybutów

„

kluczowy (key)

*name

jednoznacznie identyfikuje instancję klasy lub

połączenie

Właściwości atrybutu definiują dodatkowe cechy

„

changeable

modyfikowalny bez ograniczeń

„

addOnly

brak możliwości usuwania

„

frozen

stały

Operacja

Operacja jest funkcją lub transformacją, którą

można zastosować

do

lub może być

stosowana

przez

obiekty tej klasy.

Wszystkie obiekty danej klasy posiadają te

same operacje.

Metoda

- implementacja operacji dla klasy.

Operacja -2

może mieć argumenty parametryzujące (ale nie wpływają one na

wybór metody).

„

może zwracać wynik (określonego typu).

„

może mieć określony zakres widoczności, określający

dostępność operacji, jakie inne klasy mogą z niej korzystać.

‰

prywatna (private)

-name

: tylko

klasa

‰

publiczna (public)

+name

: wszystkie

klasy

‰

chroniony (protected)

#name

: klasa,

podklasy

‰

implementacyjny (implementation)

?name

zasięg będzie określony w implementacji

Specyfikacja operacji klasy w języku UML:

widoczność nazwa ( lista-argumentów ) : typ { właściwości }

lista-argumentów

określa argumenty operacji:

sposób-przekazywania nazwa : typ = wartość-domyślna

gdzie:
sposób-przekazywania

„

in

przekazanie przez wartość

„

out

przekazanie przez referencję

„

inout

przekazanie przez referencję

właściwości definiują dodatkowe cechy operacji:

„

leaf

operacja nie jest polimorficzna

„

isQuery

operacja nie zmienia atrybutów

„

sequentia

l wymaga sekwencyjnego działania obiektu

„

guarded

wykonywana rozłącznie z innymi

„

concurrent

wykonywana współbieżnie z innymi

Relacje

„

Połączenie - wiąże ze sobą obiekty.

„

Fizyczne lub konceptualne połączenie
między obiektami.

„

Obiekt współpracuje z innymi obiektami z
którymi jest połączony.

„

Poprzez link obiekt klient prosi o usługę inny
obiekt lub poprzez link może sterować innym
obiektem, wywoływać operacje, otrzymywać
rezultaty operacji.

background image

3

Powiązanie - (association)

„

Modeluje relacje takie jak: dotyczy,
komunikuje się z, obsługuje

„

Asocjacja dwukierunkowa:

„

Asocjacja jednokierunkowa

nazwa

nazwa

Agregacja

modeluje relacje takie jak:

„

składa się z,

„

jest zbudowany z,

„

zawiera

część

całość

Generalizacja -dziedziczenie

modeluje dziedziczenie klas

Klasa ogólna

Klasa specjalizowana

Pakiet

„

Grupuje części diagramu klas

„

Służy do porządkowania i hierarchizacji
diagramów

przykład

Pracownik

-nazwisko: char*
-imię: char*
-pensja: int

-

Urlop(): int

-Wymówienie(): int

Firma

-nazwa: char*
-adres: char*
.....

-Zatrudnij(Pracownik):int
-Zwolnij(Pracownik): int
-Akceptuj(): int

*

pracuje

pracownik „pracuje ” dla firmy

powiązania

„

czasowniki w opisie problemu.

„

Nazwa dwukierunkowego powiązania jest zwykle

czytana w określonym kierunku np. pracownik

pracuje dla firmy, firma zatrudnia pracownika.

„

Powiązania mogą być wielowartościowe, zależnie

od założeń modelu. Krotność określa ile obiektów

danej klasy może być w relacji z obiektem innej

klasy np.:

1 dokładnie jeden
0 ..1 zero lub jeden
M ..N od M do N (liczby naturalne)
*

od zera do dowolnej liczby całkowitej

1 .. * od jednego do dowolnej liczby całkowitej

background image

4

Przykład – różnice znaczeniowe

osoba

instytucja

*

osoba

instytucja

*

role

„

Można określać role obiektów pełnione w
powiązaniu np.

osoba

instytucja

zatrudnia

* pracuje

Pracuje-dla

Asocjacja zwrotna

Osoba

Rodzic

Dziecko

0..2

*

Powiązania ternarne (ang. ternary
association)

Pomiędzy 3 lub więcej klasami, nie może być

podzielone bez utraty informacji.

p r o je k t

ję z y k

o s o b a

Diagram obiektów

P1: projekt

P2: projekt

C+: język

Java: język

Jan : osoba

Wariant ze zwykłą klasą

Przy wartościowościach wiele - wiele atrybut

ten nie może być dołączony do obiektu np.

plik

uzytkownik

prawa dost

*

*

korzysta

background image

5

Atrybuty powiązań

Określają pewną własność powiązania

klasa asocjacyjna

plik

uzytkownik

prawa dost

*

*

Przykład z klasami asocjacyjnymi

nazw.
PES.
adr

nazwa
adres

stanow.
pensja

osoba

instytucja

.

*

pracuje

-dla

wydajność

0..1

Ograniczenie {ordered}

Powiązania mogą także posiadać własność

"uporządkowania"

okno

ekran

widoczne-na

* {ordered}

Różne asocjacje pomiędzy tymi samymi
klasami

Obiekt Osoba może być w relacji

„Reprezentanci” , „Rodzice dzieci” z różnymi
obiektami Klasa.

Rodzice dzieci

Osoba

Klasa

Reprezentanci

*

*

Ograniczenie {subset}

wskazuje, że pewien zbiór (kolekcja) jest

włączony w inny zbiór np.

Reprezentanci rodziców dzieci są także

rodzicami dzieci.

Rodzice dzieci

Osoba

Klasa

Reprezentanci

*

{subset}

*

Różne asocjacje pomiędzy tymi samymi
klasami

Dla danego obiektu obie relacje asocjacji są

możliwe.

naucza

Uczy_sie

Osoba

Universytet

*

*

background image

6

Ograniczenie {exclusive or}

wskazuje, że dla danego obiektu jedynie jedna

relacja asocjacji spośród grupy relacji jest
właściwa.

naucza

Uczy_sie

Osoba

Universytet

{exclusive or}

*

*

Powiązania "kwalifikowane"

Kwalifikator wyróżnia między wieloma

obiektami, sprowadza punkt wiele do 1.

k atalo g

plik

n azw a

k atalo g

plik

*

op isuje

Przykład z kwalifikatorami powiązań

giełda

giełda

zakład

sym b

no tuje

notuje

zakład

*

*

sym b

Agregcja -kompozycja

Określa relację :

„

"składa się z"

„

"jest zbudowany z"

„

"jest częścią"

książka

rozdział

paragraf

*

*

Kompozycja – agregacja całościowa

oznacza „fizyczną” agregację np. wielokąt

składa się z uporządkowanych punktów.

wielokat

Punkt

3..*

{ordered

}

Dziedziczenie i generalizacja

„

Generalizacja

jest związkiem między klasą a

jej "ulepszeniami" -podklasami.

„

Atrybuty i operacje wspólne dla grupy
podklas są umieszczane w superklasie.

„

"podklasa" dziedziczy atrybuty, operacje.

„

Dziedziczenie jest przechodnie.

background image

7

Przykład dziedziczenia

w y p o s a ż e n ie

n a z w a
p ro d u c .
w a g a
k o s z t

p o m p a

s s a n ie
p rz e p ływ

z b io rn ik

p o je m n o
c iś n ie n ie

Ograniczenia relacji dziedziczenia

„

{exclusive}

domniemana, obiekt jest instancja tylko

jednej podklasy

„

{disjoint}

rozłączna: klasa pochodna od A jest

podklasą tylko jednej podklasy klasy A

„

{overlapping}

nakładająca się : klasa pochodna

od A należy do produktu kartezjańskiego podklas

klasy A np. (urządzenia, urządzenia do rejestracji

obrazu, urządzenia do rejestracji dźwięku,

magnetowid)

„

{complete}

„

{incomplete}

Przykład ograniczeń generalizacji

{complete,

disjoint}

Osoba

Kobieta

Mężczyzna

Podsumowanie

„

ze specyfikacji wyodrębnij obiekty (ważne

rzeczowniki z dziedziny problemu ale nie

dotyczące implementacji),

„

utwórz powiązania,

„

zastosuj generalizację, kompozycję,

„

dodaj atrybuty, operacje,

„

podziel klasy na modułu spójne pod

względem świadczonych usług, umieść je w

pakietach.

Przykład – różne typy relacji

Samochód

Samochód
osobowy

Samochód
ciężarowy

Osoba

Układ
napędowy

Układ
hamulcowy

Układ
kierowniczy

kieruje

{incomplete}

Klasa interfejsowa

Klasa definiuje operacje udostępniane innym

obiektom

koszyk

+dodajpozycje()
+usuńpozycje ()

książka

-autor: char*
-tytuł: char*
-ISBN: int

+

dodajpozycje()

+usuńpozycje ()

<<realize>>

książka

-autor: char*
-tytuł: char*
-ISBN: int

+

dodajpozycje()

+usuńpozycje ()

<<realize>>

background image

8

Klasa interfejsowa -2

Inna notacja

książka

+

dodajpozycje()

+usuńpozycje ()

-autor: char*
-tytuł: char*
-ISBN: int

koszyk

Bramy (ports)

Klasa

television

wymaga sygnału z zewnętrznego źrodła,

firma telewizja kablowa chce mieć możliwość śledzenia
używania telewizji. Brama

Cable_box

dostarcza tego

interfejsu (

Track_usage

), także dostarczony jest interfejs

umożliwiający obciążanie klienta (

Biling_inf

).

television

Cable_box

signal

Track_usage
Billing_inf

Zadanie 1

Określ i narysuj w notacji UML typy relacji

pomiędzy obiektami w poniższych zdaniach.

Odpowiedź należy uzasadnić

1.

Klient ma miejscówkę na określony pociąg

2.

Listonosz dostarcza przesyłki

3.

Bileter sprzedaje bilety

4.

W plecaku znajdują się książki, zeszyty

5.

Magnetofon, magnetowid są urządzeniami

do rejestracji dźwięku

Zadanie 2

Na podstawie podanego poniżej zbioru słów

opracuj spójny diagram klas w UML,
pokazujący relacje między obiektami klas.

Należy podać typ relacji (powinny występować

wszystkie typy relacji), jej nazwę ewentualnie
krotność. Odpowiedź należy uzasadnić.

{Zamek, most zwodzony, wieża, schody,

korytarz, pokój, okno, podłoga, duch,
strażnik, kucharz, hrabia, hrabina, lokaj}


Wyszukiwarka

Podobne podstrony:
8(45) Diagramy klas cz2
Serwis sprzetu domowego z diagramem klas
Diagram Klas
Diagram klas
Diagram Klas
Diagramy klas
7(45) Diagramy klas wprowadzenie
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
Diagram klas projekt
DIAGRAM KLAS
Lab3 Diagram Klas
5 Diagram klas

więcej podobnych podstron