background image

D

IAGRAM KLAS I

OBIEKTÓW

Autorzy: V ZIN 3

Joanna Walczak
Alicja Olizarowska
Sławomir Kwiatkowski
Krzysztof Szcześniak

background image

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)

background image

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.

background image

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

background image

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. 

background image

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. 

background image

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

background image

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. 

background image

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.

background image

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++)?  

 

background image

 

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

background image

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ą.  

 

background image

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 . 

background image

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

background image

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ą. 

background image

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. 

background image

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.

background image

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;   

background image

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.

background image

D

IAGRAM KLAS I

OBIEKTÓW

Przykładowy diagram klas zapisany w UML. 

 

background image

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. 

background image

public by UW