D
IAGRAM KLAS I
OBIEKTÓW
Autorzy: V ZIN 3
Joanna Walczak
Alicja Olizarowska
Sławomir Kwiatkowski
Krzysztof Szcześniak
D
IAGRAM KLAS I
OBIEKTÓW
-
Diagram klas odwzorowuje świat rzeczywisty
obejmując obiekty świata rzeczywistego i
powiązania między nimi
Ang.: Class Diagram
Jest rozszerzoną formą diagramu związków encji z
modelowania strukturalnego
Główne elementy diagramu:
klasa (class)
związek (association)
D
IAGRAM KLAS I
OBIEKTÓW
Klasa jest miejscem przechowywania cech
obiektów, które są niezmienne (inwariantów). Klasa
nie jest zbiorem obiektów i nie jest definicją zbioru
obiektów. Stosunek klasa/podklasa oznacza, że
obiekty podklasy posiadają wszystkie inwarianty
nadklasy, plus swoje inwarianty, np. klasa Student
ma wszystkie inwarianty klasy Osoba, plus niektóre
własne. Żadna klasa nie żyje w izolacji –działa w
kooperacji z innymi, aby zrealizować działanie
niemożliwe do wykonania w pojedynkę.
Diagram klas służy do zobrazowania współpracy
klas.
D
IAGRAM KLAS I
OBIEKTÓW
Zastosowanie diagramów klas
zapis modelu pojęciowego:
-
Klasy reprezentują pojęcia w dziedzinie
zastosowań, które aktualnie podlegają analizie,
sformalizowana wizja wyobrażeń powstających
podczas myślenia nad problemem
sformalizowana specyfikacja danych i metod:
-
dotyczy opisu zewnętrznego oprogramowania bez
szczegółów implementacyjnych
implementacja :
-
może bezpośrednio służyć jako graficzny środek
pokazujący szczegóły implementacji
D
IAGRAM KLAS I
OBIEKTÓW
Graficznym językiem pozwalającym na opisywanie
systemów (nie tylko informatycznych) za pomocą
diagramów i słów jest UML (ang. Unified Modeling
Language . UML jest standardem (Unified -
zunifikowany, jednolity), dzięki czemu diagramy w
nim zbudowane są zrozumiałe dla każdego.
Diagramy UML
można także z powodzeniem
rozrysowywać na zwykłej kartce. Jednak ciągłe
używanie ołówka i gumki szybko okaże się mało
wygodne.
D
IAGRAM KLAS I
OBIEKTÓW
UML nie jest sposobem projektowania, a
sposobem na przejrzystą prezentację projektu.
Jednak tworząc diagramy UML, będziesz
zmuszony zastanowić się nad budową aplikacji,
czyli tak naprawdę ją zaprojektować. Co więcej,
budowa diagramów UML pozwala często na
wychwycenie problemów projektowych, które
normalnie wypłynęłyby podczas kodowania,
znacznie utrudniając pracę, bądź też powodując
konieczność przeprojektowania zakodowanej już
aplikacji.
D
IAGRAM KLAS I
OBIEKTÓW
Poniższy diagram obiektów konkretyzuje diagram
klas, zastępując go rzeczywistym przykładem.
System wspomagający obsługę zgłoszeń serwisowych w dziale informatycznym firmy
D
IAGRAM KLAS I
OBIEKTÓW
Przyjęło się, że nazwa klasy opisuje zadanie jakie
klasa ma spełniać. Nazwa klasy zawsze
rozpoczyna się wielką literą, w przypadku zaś gdy
jest to nazwa złożona z kilku wyrazów, każdy wyraz
rozpoczyna się bezpośrednio po poprzednim (bez
spacji, odstępu czy innego znaku) wielką literą
(patrz
WystąpienieAwarii).
Klasy mogą posiadać atrybuty oraz operacje.
Atrybuty można sobie wyobrazić jako pojemniki
służące do przechowywania danych, a więc są
odpowiednikami zmiennych (pól klas) z języków
programowania. Operację są czynnościami, jakie
może wykonywać klasa - są to więc odpowiedniki
metod klas z języków programowania.
D
IAGRAM KLAS I
OBIEKTÓW
Nazwy atrybutów i operacji tworzy się w sposób analogiczny do nazw klas, z tą
różnicą, że powinny one rozpoczynać się od małej litery. Na rysunku widzimy
kilka notacji prezentujących klasę.
Dozwolone notacje prezentujące klasy na diagramach UML. Od lewej:
sama nazwa klasy, nazwa klasy wraz z atrybutami, nazwa klasy z
operacjami, nazwa klasy z atrybutami oraz operacjami.
D
IAGRAM KLAS I
OBIEKTÓW
Zarówno atrybutom, jak i
operacjom można przypisać poziomy
widoczności:
-
publiczny -
dostęp do elementu mają
obiekty wszystkich innych klas
systemu,
-
prywatny
– dostęp do elementu mają
tylko obiekty klasy, w której element
jest zdefiniowany,
-
chroniony -
dostęp do elementu mają obiekty klasy, w której element jest
zdefiniowany oraz klas dziedziczących po tej klasie.
Widzimy tutaj analogię do działania modyfikatorów dostępu w klasach
obiektowych języków programowania (jak public, private i protected z języków
PHP, Java czy C++)?
Klasa reprezentowana jest
przez prostokąt podzielony na bloki.
Górny blok zawsze zawiera nawę
klasy (na rysunku
WystąpienieAwarii). Kolejne bloki
zawierają odpowiednio pola oraz
atrybuty. Dodatkowo klasa może
posiadać jeszcze dodatkowe pola z
innymi informacjami. W zależności od ustawionego poziomu szczegółowości,
widoczne mogą być wszystkie bądź tylko niektóre bloki. Jak przedstawiono to
na rysunku powyżej, najmniej szczegółowa prezentacja klasy posiada tylko jej
nazwę.
Pamiętaj, że wszystkie te poziomy szczegółowości są poprawne. Możesz się
między nimi przełączać w zależności od konieczności - np. w zależności od
tego, komu chcesz
zaprezentować diagram.
D
IAGRAM KLAS I
OBIEKTÓW
D
IAGRAM KLAS I
OBIEKTÓW
Klasy abstrakcyjne
Klasa abstrakcyjna jest to klasa, która
posiada jedną lub więcej metod (w
UML-u nazwanych operacjami)
nieposiadających ciała. Metody takie są
jedynie deklaracjami, zapowiedziami,
że klasa dziedzicząca po klasie
abstrakcyjnej dostarczy ciała takiej
metody, w przeciwnym razie sama też
będzie klasą abstrakcyjną. Ważne jest to, że nie można tworzyć instancji
(obiektów) klas abstrakcyjnych.
W UML-u klasy
abstrakcyjne niewiele różnią się od normalnych klas. Jedyną
widoczną różnica jest ich nazwa, napisana kursywą.
D
IAGRAM KLAS I
OBIEKTÓW
Agregacja
Agregacja najprościej mówiąc oznacza zawieranie.
-
Na przykład:
-
lampka zawiera żarówkę,
-
komputer zawiera procesor,
-
jabłko zawiera robaka,
-
itd.
Agregację na diagramie UML oznacza się pustym rombem,
tak jak zaprezentowano to na rysunku. Pokazane są także
klasy biorące udział w agregacji .
D
IAGRAM KLAS I
OBIEKTÓW
Kompozycja
Szczególnym przypadkiem agregacji jest
kompozycja. Od agregacji różni się tym, że klasa
posiada obiekty (składa się z obiektów), które bez
tej klasy istnieć by nie mogły. Przykłady takich
związków to:
-
blok zawiera mieszkania (mieszkania poza
blokiem nie istnieją),
-
komputer zawiera procesor,
Kompozycja oznaczona jest wypełnionym rombem
D
IAGRAM KLAS I
OBIEKTÓW
Asocjacja
Asocjacja jest podstawowym rodzajem związków między
klasami. Oznacza ona istnienie trwałego powiązania
pomiędzy nimi. Oto przykłady asocjacji
firma zatrudnia pracowników,
student studiuje na uczelni,
ekspedientka pracuje w sklepie,
itd.
Asocjacja może być jednokierunkowa, to znaczy można
zaznaczyć jej kierunek - wiadomo, że firma zatrudnia
pracowników, ale nie odwrotnie. Kierunek asocjacji zaznacza
się strzałką. Asocjacja taka nazywana jest nawigacją.
D
IAGRAM KLAS I
OBIEKTÓW
Asocjacja n-arne
Zaprezentowana wyżej asocjacja to tak zwana asocjacja
binarna -
są to asocjacje, w skład których wchodzą dwie
klasy. Czasami (jednak o wiele rzadziej) stosuje się
asocjacje n-arne
. w skład takich asocjacji może
wchodzić więcej klas. Oto przykład: w sklepie
oferującym części komputerowe mogą wystąpić
następujące klasy połączone w asocjację n-arną: Część,
Cennik, Cena. Na rysunku pokazano diagram takiej
właśnie asocjacji. W jej skład może wchodzić więcej niż
trzy klasy.
D
IAGRAM KLAS I
OBIEKTÓW
Nazwy, role i liczebność asocjacji
Omawiając asocjację, trzeba wspomnieć także o ich
nazwach, rolach i liczebności. Nazwa asocjacji wskazuje
bezpośrednio czynność, jaka zachodzi pomiędzy
klasami. Może także wskazywać kierunek.
D
IAGRAM KLAS I
OBIEKTÓW
Role określają, jak sama nazwa wskazuje, jaką rolę pełni
dana klasa w asocjacji
Liczebność określa, ile obiektów jednej klasy bierze udział
w asocjacji drugiej klasy.
-
Liczebność można określić stałą cyfrą, np.: 1, 2, 10, itd.
-
Liczebność jako nieskończoność - *.
1..* -
od 1 do nieskończoności (czyli minimum 1)
-
Liczebność jako przedział liczebności, np.
0..3 - od 0 do 3; 1..5 - od 1 do 5; 10..100 - od 10 do 100;
D
IAGRAM KLAS I
OBIEKTÓW
Generalizacja
Generalizacja odpowiada dziedziczeniu znanemu z języków
programowania. Inaczej mówiąc, jest to związek pomiędzy
bardziej ogólną klasą a klasą bardziej szczegółową.
Oto przykłady generalizacji:
-
manager jest pracownikiem’
-
sklep jest firmą,
-
latarnia jest lampą, podobnie lampą jest lampka nocna, itd.
D
IAGRAM KLAS I
OBIEKTÓW
Przykładowy diagram klas zapisany w UML.
D
IAGRAM KLAS I
OBIEKTÓW
Diagramy obiektów
W przypadku gdy mamy do czynienia z bardziej złożonymi
diagramami klas, można pokusić się o zbudowanie
dodatkowo diagramu obiektów. Obiekty na diagramie
prezentuje się za pomocą prostokątów, w których nazwa jest
podkreślona. Po niej, po dwukropku, znajduje się nazwa
klasy, której obiekt reprezentuje dany prostokąt. Na rysunku
przedstawiono powiązanie obiektów pracowników (klasy
Pracownik) z obiektem klasy Firma.
public by UW