Diagram klas i obiektow ZIN 3 i Nieznany

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


Wyszukiwarka

Podobne podstrony:
Diagramy Klas i Obiektów
8(45) Diagramy klas cz2
diagramy procentowe id 135538 Nieznany
Ochrona odgromowa obiektow budo Nieznany
1 Identyfikacja obiektow sterow Nieznany (2)
Serwis sprzetu domowego z diagramem klas
Diagram Klas
Programowanie Obiektowe ZadTest Nieznany
Programowanie obiektowe(cw) 2 i Nieznany
Diagram klas
Plytka DIAGRAM ENCJI id 797920 Nieznany
analiza dynamiczna obiektow mec Nieznany
Diagram Klas
Diagramy klas
Eksploatacja obiektow budowlany Nieznany
7(45) Diagramy klas wprowadzenie

więcej podobnych podstron