Diagramy klas


Plan wykładu
Klasa
Diagramy klas
Relacje miedzy klasami (asocjacje,
generalizacje, agregacje)
Ograniczenia relacji
Klasy interfejsowe
Dr inż. Ilona Bluemke
Diagramy klas Klasa
Przedstawiają typy obiektów występujących
osoba
nazwa
w aplikacji i powiązania między nimi.
Jest to model statyczny dziedziny problemu.
Wiek
atrybuty
Adres
Określają CO JEST w systemie potrzebne do
Data_urodzenia
realizacji wymaganych funkcji (model use
case). Podaj_wiek
operacje
Daj_adres
Ustaw_adres
Graficzna reprezentacja klasy Klasa
Opisuje grupę obiektów o podobnych
Osoba
własnościach (atrybutach), zachowaniach
(operacjach), wspólnych relacjach z innymi
Osoba
wiek obiektami, identycznym znaczeniu.
Osoba
adres
Jest uogólnieniem zbioru obiektów. Obiekt
data_urodzenia
Podaj_wiek
jest instancją klasy.
Podaj_adres
Ustaw_adres
Klasy pomagają w abstrakcji, generalizacji
problemu.
1
Atrybuty Atrybut -2
może być:
wartości danych przechowywane w obiekcie
implementacyjny (implementation) ?name
określonej klasy, są unikalne w klasie, różne klasy
wyprowadzalny (derived) /name
mogą mieć takie same nazwy atrybutów.
daje się wyprowadzić z innych atrybutów
są określonego typu
kluczowy (key) *name
mogą mieć wartość domniemaną.
jednoznacznie identyfikuje instancję klasy lub
połączenie
może mieć określony zakres dostępności :
Właściwości atrybutu definiują dodatkowe cechy
prywatny (private) -name : tylko klasa
changeable modyfikowalny bez ograniczeń
publiczny (public) +name : wszystkie klasy
addOnly brak możliwości usuwania
chroniony (protected) #name : klasa, podklasy
frozen stały
Operacja Operacja -2
może mieć argumenty parametryzujące (ale nie wpływają one na
wybór metody).
Operacja jest funkcją lub transformacją, którą
może zwracać wynik (określonego typu).
można zastosować do lub może być
może mieć określony zakres widoczności, określający
dostępność operacji, jakie inne klasy mogą z niej korzystać.
stosowana przez obiekty tej klasy.
prywatna (private) -name : tylko klasa
Wszystkie obiekty danej klasy posiadają te
publiczna (public) +name : wszystkie klasy
chroniony (protected) #name : klasa, podklasy
same operacje.
implementacyjny (implementation) ?name
zasięg będzie określony w implementacji
Metoda - implementacja operacji dla klasy.
Specyfikacja operacji klasy w języku UML:
widoczność nazwa ( lista-argumentów ) : typ { właściwości }
Relacje
lista-argumentów
określa argumenty operacji:
Połączenie - wiąże ze sobą obiekty.
sposób-przekazywania nazwa : typ = wartość-domyślna
gdzie:
Fizyczne lub konceptualne połączenie
sposób-przekazywania
między obiektami.
in przekazanie przez wartość
out przekazanie przez referencję Obiekt współpracuje z innymi obiektami z
inout przekazanie przez referencję
którymi jest połączony.
właściwości definiują dodatkowe cechy operacji:
Poprzez link obiekt klient prosi o usługę inny
leaf operacja nie jest polimorficzna
isQuery operacja nie zmienia atrybutów
obiekt lub poprzez link może sterować innym
sequential wymaga sekwencyjnego działania obiektu
obiektem, wywoływać operacje, otrzymywać
guarded wykonywana rozłącznie z innymi
rezultaty operacji.
concurrent wykonywana współbieżnie z innymi
2
Powiązanie - (association) Agregacja
Modeluje relacje takie jak: dotyczy, modeluje relacje takie jak:
komunikuje się z, obsługuje
składa się z,
Asocjacja dwukierunkowa:
jest zbudowany z,
nazwa
zawiera
całość
część
Asocjacja jednokierunkowa
nazwa
Generalizacja -dziedziczenie Pakiet
modeluje dziedziczenie klas Grupuje części diagramu klas
Służy do porządkowania i hierarchizacji
diagramów
Klasa ogólna
Klasa specjalizowana
przykład powiązania
pracownik  pracuje  dla firmy
czasowniki w opisie problemu.
Nazwa dwukierunkowego powiązania jest zwykle
czytana w określonym kierunku np. pracownik
Pracownik Firma
pracuje dla firmy, firma zatrudnia pracownika.
-nazwisko: char* -nazwa: char* Powiązania mogą być wielowartościowe, zależnie
-imię: char* pracuje -adres: char*
od założeń modelu. Krotność określa ile obiektów
*
-pensja: int .....
danej klasy może być w relacji z obiektem innej
klasy np.:
-Urlop(): int -Zatrudnij(Pracownik):int 1 dokładnie jeden
-Wymówienie(): int -Zwolnij(Pracownik): int
0 ..1 zero lub jeden
-Akceptuj(): int
M ..N od M do N (liczby naturalne)
* od zera do dowolnej liczby całkowitej
1 .. * od jednego do dowolnej liczby całkowitej
3
Przykład  różnice znaczeniowe
role
Można określać role obiektów pełnione w
* powiązaniu np.
instytucja
osoba
* pracuje zatrudnia
instytucja
osoba
Pracuje-dla
*
instytucja
osoba
Powiązania ternarne (ang. ternary
Asocjacja zwrotna
association)
Pomiędzy 3 lub więcej klasami, nie może być
podzielone bez utraty informacji.
Rodzic
Osoba
ję zyk
0..2
p ro jekt
*
Dziecko
osoba
Diagram obiektów Wariant ze zwykłą klasą
P1: projekt C+: język
Przy wartościowościach wiele - wiele atrybut
ten nie może być dołączony do obiektu np.
Jan : osoba
*
korzysta *
plik uzytkownik
P2: projekt
Java: język
prawa dost
4
Atrybuty powiązań Przykład z klasami asocjacyjnymi
Określają pewną własność powiązania
* pracuje -dla
instytucja .
osoba
klasa asocjacyjna
0..1
nazw. nazwa
PES. adres
* adr
*
stanow.
plik uzytkownik pensja
wydajność
prawa dost
Różne asocjacje pomiędzy tymi samymi
Ograniczenie {ordered}
klasami
Powiązania mogą także posiadać własność
Obiekt Osoba może być w relacji
"uporządkowania"
 Reprezentanci ,  Rodzice dzieci z różnymi
obiektami Klasa.
Rodzice dzieci
*
* {ordered}
Osoba
okno ekran Klasa
*
widoczne-na
Reprezentanci
Różne asocjacje pomiędzy tymi samymi
Ograniczenie {subset}
klasami
wskazuje, że pewien zbiór (kolekcja) jest
włączony w inny zbiór np.
Dla danego obiektu obie relacje asocjacji są
Reprezentanci rodziców dzieci są także
możliwe.
rodzicami dzieci.
naucza
Rodzice dzieci
*
Osoba
*
Universytet
Osoba
Klasa
*
{subset}
*
Uczy_sie
Reprezentanci
5
Ograniczenie {exclusive or} Powiązania "kwalifikowane"
wskazuje, że dla danego obiektu jedynie jedna Kwalifikator wyróżnia między wieloma
relacja asocjacji spośród grupy relacji jest obiektami, sprowadza punkt wiele do 1.
właściwa.
nazwa
k atalo g plik
naucza
*
Osoba
Universytet
{exclusive or}
opisuje
*
k atalo g plik
*
Uczy_sie
Przykład z kwalifikatorami powiązań Agregcja -kompozycja
Określa relację :
"składa się z"
giełda giełda
"jest zbudowany z"
symb
notuje
"jest częścią"
*
notuje
*
zakład książka rozdział paragraf
zakład
* *
symb
Kompozycja  agregacja całościowa Dziedziczenie i generalizacja
oznacza  fizyczną agregację np. wielokąt Generalizacja jest związkiem między klasą a
składa się z uporządkowanych punktów. jej "ulepszeniami" -podklasami.
Atrybuty i operacje wspólne dla grupy
podklas są umieszczane w superklasie.
3..*
wielokat
"podklasa" dziedziczy atrybuty, operacje.
Punkt
{ordered } Dziedziczenie jest przechodnie.
6
Przykład dziedziczenia Ograniczenia relacji dziedziczenia
w yposażenie
{exclusive} domniemana, obiekt jest instancja tylko
jednej podklasy
nazw a
produc.
{disjoint} rozłączna: klasa pochodna od A jest
wa ga
podklasą tylko jednej podklasy klasy A
koszt
{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 dzwięku,
z b io rn ik
magnetowid)
p om p a
{complete}
pojem no
ssanie
ciś nienie {incomplete}
p rzep ływ
Przykład ograniczeń generalizacji Podsumowanie
ze specyfikacji wyodrębnij obiekty (ważne
Osoba
rzeczowniki z dziedziny problemu ale nie
dotyczące implementacji),
{complete,
disjoint} utwórz powiązania,
zastosuj generalizację, kompozycję,
dodaj atrybuty, operacje,
Kobieta Mężczyzna
podziel klasy na modułu spójne pod
względem świadczonych usług, umieść je w
pakietach.
Przykład  różne typy relacji Klasa interfejsowa
{incomplete}
Klasa definiuje operacje udostępniane innym
kieruje
obiektom
Układ
Osoba Samochód
książka
napędowy koszyk
książka
-autor: char*
<>
-autor: char*
<>
-tytuł: char*
Układ -ISBN: int
-tytuł: char*
+dodajpozycje()
-ISBN: int
hamulcowy
+usuńpozycje ()
+dodajpozycje()
+dodajpozycje()
+usuńpozycje ()
Samochód Samochód
+usuńpozycje ()
Układ
osobowy ciężarowy
kierowniczy
7
Klasa interfejsowa -2 Bramy (ports)
Klasa television wymaga sygnału z zewnętrznego zrodła,
firma telewizja kablowa chce mieć możliwość śledzenia
Inna notacja
używania telewizji. Brama Cable_box dostarcza tego
interfejsu (Track_usage), także dostarczony jest interfejs
umożliwiający obciążanie klienta (Biling_inf).
książka
-autor: char*
television
koszyk
-tytuł: char*
signal
-ISBN: int
+dodajpozycje()
Cable_box
+usuńpozycje ()
Track_usage
Billing_inf
Zadanie 1 Zadanie 2
Na podstawie podanego poniżej zbioru słów
Określ i narysuj w notacji UML typy relacji opracuj spójny diagram klas w UML,
pomiędzy obiektami w poniższych zdaniach.
pokazujący relacje między obiektami klas.
Odpowiedz należy uzasadnić
Należy podać typ relacji (powinny występować
1. Klient ma miejscówkę na określony pociąg
wszystkie typy relacji), jej nazwę ewentualnie
2. Listonosz dostarcza przesyłki
krotność. Odpowiedz należy uzasadnić.
3. Bileter sprzedaje bilety
{Zamek, most zwodzony, wieża, schody,
4. W plecaku znajdują się książki, zeszyty
korytarz, pokój, okno, podłoga, duch,
5. Magnetofon, magnetowid są urządzeniami
strażnik, kucharz, hrabia, hrabina, lokaj}
do rejestracji dzwięku
8


Wyszukiwarka

Podobne podstrony:
Diagram klas
Diagram klas UŚ
diagram klas
Diagramy klas
Diagram klas projekt
5 Diagram klas
uml diagramy klas
07 Diagram sekwencji
Konkurs czytelniczy dla klas pierwszych
Phase Diagram of Ultrafine Carbon
Toyota Supra? Wiring Diagrams
Test1 dla klas 5 6 z poprawna polszczyzną na codzień(1)

więcej podobnych podstron