Laboratorium z PO Zestaw 06

background image

Programowanie obiektowe

1

L

L

a

a

b

b

o

o

r

r

a

a

t

t

o

o

r

r

i

i

u

u

m

m

z

z

p

p

r

r

z

z

e

e

d

d

m

m

i

i

o

o

t

t

u

u

P

P

r

r

o

o

g

g

r

r

a

a

m

m

o

o

w

w

a

a

n

n

i

i

e

e

o

o

b

b

i

i

e

e

k

k

t

t

o

o

w

w

e

e

-

-

z

z

e

e

s

s

t

t

a

a

w

w

0

0

6

6

Cel zajęć. Celem zajęć jest zaprojektowanie związków między klasami na podstawie słownego opisu problemu i ich
implementacja.

Wprowadzenie teoretyczne. Rozważana w ramach niniejszych zajęć tematyka jest ważna, gdyż przed
implementacją danej aplikacji należy zaprojektować jej strukturę w postaci diagramu klas. Aby ze zrozumieniem

zrealizować zadania przewidziane do wykonania w ramach zajęć laboratoryjnych, należy znać znaczenie pojęć:
zależności, asocjacji, agregacji, kompozycji.

1. Relacje zachodzące pomiędzy klasami

Zależność – jest najsłabszym rodzajem powiązania między klasami. Zależność pomiędzy klasami
oznacza, że jedna klasa używa drugiej klasy lub posiada dotyczące niej informacje. Związek ten jest
zazwyczaj krótkotrwały. Zależność występuje, kiedy zmiana specyfikacji jednej z klas może
powodować konieczność wprowadzania zmian w innej klasie. Zależności używa się najczęściej do

pokazania, że jedna klasa używa innej jako parametru jakiejś operacji.

Rys. 6 – Graficzna reprezentacja relacji zależności

Asocjacja – jest silniejszym typem powiązań niż zależność. Oznacza, że jeden obiekt jest związany
z innym przez pewien okres czasu, jednak czas życia obiektów nie jest od siebie zależny (usunięcie
jednego nie powoduje usunięcia drugiego).

Firma

Pracownik

Pracownicy

1

Pracodawca

1..*

3 Pracuje w

Rys. 7 – Graficzna reprezentacja relacji asocjacji

Asocjacja może zawierać nazwę, wraz z kierunkiem asocjacji, role (opcjonalne nazwy zadań klas
w ramach zależności) oraz specyfikację liczebności (liczba obiektów z poszczególnych klas, mogących
kojarzyć się z obiektami innej klasy).
Liczebność może być reprezentowana przez liczby całkowite lub przez przedziały:

0..1 – zero lub jeden obiekt

0..* - od zera do nieograniczonej liczby obiektów (często reprezentowane również w postaci
„*”)

n ..* - od n do nieograniczonej liczby obiektów

m..n – liczba obiektów z przedziału od m do n


Należy pamiętać, że za n i m można również podstawić liczby całkowite.

Agregacja – agregacja jest silniejszą formą asocjacji. Stanowi relację typu całość-część, w której część
może należeć do kilku całości, a całość nie zarządza czasem istnienia części (usunięcie całości nie
powoduje usunięcia części). Obiekt będący całością składa się z określonej liczby
obiektów-składników.

Strona HTML

Obrazy

Rys. 8 – Graficzna reprezentacja relacji asocjacji

Kompozycja (agregacja całkowita) – kompozycja jest najsilniejszym rodzajem powiązania między

klasami. Stanowi relację całość-część, w której części są tworzone i zarządzane przez obiekt

background image

Programowanie obiektowe

2

reprezentujący całość. „Część” może być zaangażowana tylko w jeden związek tego typu w danym
czasie. Czasy życia instancji biorących udział w takim związku są ze sobą powiązane (usunięcie całości
powoduje usunięcie części).

Strona HTML

head

body

Rys. 9 – Graficzna reprezentacja relacji kompozycji


Zadanie 1.

Proszę zaprojektować diagram klas na podstawie słownego opisu problemu. Następnie proszę
o implementację zaprojektowanego diagramu.

Opis problemu:

W pewnym ogrodzie zoologicznym znajdują się trzy rodzaje zwierząt: ssaki, ptaki i gady. O każdym

ze zwierząt gromadzone są informacje na temat gatunku, rodzaju pożywienia oraz pochodzenia zwierzęcia.
Każdy z trzech rodzajów zwierząt posiada też pewne unikatowe cechy i/lub umiejętności.

Ptaki potrafią latać, a informacja o maksymalnej długości lotu ptaka bez odpoczynku wyznaczana

jest na podstawie iloczynu rozpiętości skrzydeł ptaka i jego wytrzymałość. Niektóre gady mogą być
jadowite. W zoo gromadzone są także informacje na temat naturalnego środowiska życia ssaków.


Wszystkie zwierzęta trzymane są w klatkach, które mają pewną określoną pojemność. Klatka może

wymagać posprzątania. Każda klatka jest identyfikowana za pomocą unikatowego numeru.


W zoo zatrudnieni są również opiekunowie, którzy odpowiadają m.in. za sprzątanie klatek. Każdy

z nich może być przydzielony do opieki nad kilkoma klatkami.


Dyrekcja zoo potrzebuje na bieżąco sprawdzać informacje na temat wszystkich klatek wraz ze

szczegółowymi informacjami na temat znajdujących się w nich zwierząt oraz na temat opiekunów
pracujących w zoo.


Dyrekcja może podjąć decyzję o budowie nowej klatki, powiększeniu klatki, zatrudnieniu nowego

pracownika oraz umieszczeniu w klatce nowego zwierzęcia.


Proszę o zaprojektowanie systemu umożliwiającego dyrekcji podjęcie powyższych działań.

Przy ocenie zadania główny nacisk będzie kładziony na:

Utworzony diagram klas.

Implementację.

Wyniki testów.

Na następnych zajęciach odbędzie się kolokwium!!!


Wyszukiwarka

Podobne podstrony:

więcej podobnych podstron