Predavanje 06 Flashcards
(36 cards)
UML dijagram razreda - elementi
- razred - tip podatka - sadrži atribute i operacije
- relacije - pridruživanje, generalizacija, ovisnost i realizacija
Što je razred?
jedinica apstrakcije u OO paradigmi koja opisuje sklop objekata sa zajedničkim obilježjima, ograničenjima i ponašanjem
UML reprezentacija razreda - pravokutnik koji sadrži
- naziv razreda
- atributi
- operacije (metode)
Razred : razine detalja
- konceptualni
- specifikacijski
- implementacijski
Atributi - oblik zapisa
[visibility]name[[multiplicity]][:type][=
type][=< default>][{property}]
Vrste vidljivosti
+ public
- private
# protected
~ package
Odgovornost <- operacija <- metoda
- odgovornost - nešto što sustav mora izvršiti, svaki funkcionalni zahtjev je odgovornost nekog razreda
- operacije - ostvaruju odgovornosti i implementiraju se metodama, oblik zapisa:
[visibility] name [(parameter list)] [: return type ] operation modifier }]
parameter-list:==[ direction ] name : type [ = default value direction ::= in |
out | inout
Odnosi među razredima
- pridruživanje (asocijacija, agregacija, zadaje se smjer i brojnost)
- generalizacija
- realizacija
- ovisnost
Pridruživanje i brojnost
-brojnost - prikazuje se na krajevima pridruživanja
- moguće imenovati pridruživanje
- naziv uloge
- smjer (jednosmjerna ili dvosmjerna veza)
- višestrukost (1,n1,n1..n2,n1..,0.. ili *)
- može biti refleksivno
Agregacija - definicija
vrsta pridruživanja koja pokazuje da jedan razred sadrži druge razrede (odnos cjelina - dio)
smjer strelice je od dijela prema cjelini
Kompozicija
jaki tip agregacije, kod uništavanja objekta uništavaju se i pripadnici agregata
Ovisnost
najopćenitiji odnos razreda, utjecaj jednog objekta na drugi
stereotipovi: «use», «call», «create», «modifies»
slabije od pridruživanja
Generalizacija
usmjerena veza od izvedenog razreda (podrazred) prema općenitijem (nadrazred)
veza IS A
npr. jabuka —-> voće
Što moramo provjeriti pri korištenju generalizacije?
- IS A pravilo
- Imaju li sve naslijeđene značajke smisla?
Liskovin princip zamjene
Ako postoji tip varijabla čiji tip je nadrazred, program se mora korektno izvoditi ako se u varijablu pohrani instanca tog nadrazreda ili instanca bilo kojeg podrazreda
Gdje je moguće višestruko nasljeđivanje?
u C++, ali ne u Javi ni C#
Prednosti generalizacije
- mehanizam apstrakcije pogodan za organizaciju
- mehanizam ponovne uporabe
Nedostaci generalizacije
- razredi nisu samodostatni i ne mogu se razumjeti bez poznavanja nadrazreda
- nasljeđivanja uočena u fazi analize mogu dati neučinkovita rješenja
Sučelje
- opisuje dio vidljivog ponašanja skupa objekata
- razred koji ga realizira - implements
Nasljeđivanje ili realizacija
- generalizacija prikladna podrazredi dijele zajedničke atribute i koriste konkretne metode iz nadrazreda
- realizacija prikladna ako razredi ne dijele nikakav zajednički kod
Nabrajanje
oblik tipa podatka koji sadržava uređene parove imenovanih identifikatora i njima pridruženih vrijednosti
Parametrizirani razred
- predložak sa generiranje novih elemenata modela iz predloška
- neophodno povezati sa stvarnim vrijednostima - vezajući odnos dodjeljude vrijednosti parametrima predloška
Objektno usmjerena analiza i oblikovanje
iterativni i inkrementalni pristup analizi ii oblikovanju sustava primjenom objektno usmjerenih koncepata
Aktivnosti u životnom ciklusu
- analiza
- oblikovanje
- implementacija