Professional Documents
Culture Documents
10 Dijagrami Klasa - Napredni Pojmovi
10 Dijagrami Klasa - Napredni Pojmovi
10 Dijagrami Klasa - Napredni Pojmovi
Aktivne klase
Aktivni objekat je onaj koji poseduje vlastiti tok kontrole koji se odvija paralelno/konkurentno sa drugim tokovima kontrole Aktivna klasa je klasa ije su instance aktivni objekti Aktivni objekti su koreni pojedinih tokova kontrole
oni pozivaju svoje ili metode drugih objekata kada se aktivni objekat kreira/unitava mogu postojati i posebne operacije za pokretanje i zaustavljanje
Tok kontrole se pokree/zaustavlja: Mnogi jezici podravaju aktivne objekte (Ada, Java, Smalltalk) Aktivni objekti i aktivne klase se mogu pojaviti u dijagramima gde i pasivni
12.11.2007.
Procesi i niti
Proces (process, task) je "teki" (heavyweight) tok kontrole
ima vlastiti adresni prostor deli zajedniki adresni prostor sa drugim nitima
Nit (thread) je "laki" (lightweight) tok kontrole Jedan proces moe sadrati vie niti Proces je jedinica konkurentnosti u operativnim sistemima:
procesi konkuriu za resurse procesi - razmena poruka (message passing) niti - deoba zajednikih podataka (data sharing)
12.11.2007.
Takt
<<thread>> Sabirac
12.11.2007.
abloni
ablon (template) je parametrizovani element
Primer na C++:
template <class Element, int Broj> class GenerickiBafer{ public: virtual void stavi(const Element&); virtual Element& uzmi(); ... }; typedef GenerickiBafer<Predmet,100> Bafer; // eksplicitno generisanje GenerickiBafer<Predmet,100> bafer; // implicitno generisanje
12.11.2007.
abloni - notacija
Primer generikog bafera:
Element, Broj GenerickiBafer stavi(e : Element&) : void uzmi() : Element& implicitno generisanje
GenerickiBafer<Predmet,100>
eksplicitno generisanje
12.11.2007.
Izuzeci
Izuzeci su vrste signala koji se modeliraju stereotipom klase <<exception>> Signal alje operacija koja izaziva izuzetak
Primer:
exception Underflow
12.11.2007.
Klasa asocijacije
Sama asocijacija moe imati svoje atribute Ti atributi pripadaju klasi koja opisuje asocijaciju (slino veznoj tabeli kod relacionih baza) Primer:
Firma +poslodavac * Posao +opis +datumZaposlenja +plata +zaposleni 1..* Lice
12.11.2007.
N-arna asocijacija
Asocijacija moe povezivati vie od 2 klase
Svaka instanca n-arne asocijacije je n-torka vrednosti odgovarajuih klasa Sezona Primer ternarne asocijacije * (sa klasom asocijacije): * Tim
Statistika pobeda izgubljenih
Igra
12.11.2007.
Kvalifikacija (1)
Koristi se da oznai klju (kvalifikator) koji se koristi za selekciju objekta iz neke strukture Objekat strukture za datu vrednost kljua selektuje jedan ili grupu elemenata Uesnici u relaciji su Struktura i njen Element
Kvalifikator moe imati vie atributa, oni su atributi asocijacije Atributi kvalifikatora imaju istu sintaksu kao i atributi klasifikatora, sem inicijalne vrednosti Grafika notacija:
Struktura kljuc 0..1 Element
10
Kvalifikacija (2)
Primeri struktura kojima se pristupa pomou kljua su
he tabela, B-stablo, mogue kardinalnosti skupa selektovanih objekata uparivanjem sa objektom strukture uz zadatu vrednost kljua:
0..1 1 * moe da bude selektovan jedinstven objekat, ali postoje i vrednosti kljua za koje se ne selektuje ni jedan objekat svaka mogua vrednost kvalifikatora selektuje jedinstvenu instancu elementa vrednost kvalifikatora deli skup elemenata u podskupove
Primeri:
Banka racun * 0..1 Osoba
SahTabla red kolona 1 1 Polje
11
12.11.2007.
12
12.11.2007.
Generalizacioni skupovi
Relacija generalizacije/specijalizacije uspostavlja odnos izmeu posebnog i opteg Ponekad se specijalizacija vri po nekom klasifikacionom kriterijumu
kriterijum klasifikacije odreuje podtipove esto objekti podtipova ne mogu biti i jedne i druge klase (ogranienje disjoint)
Generalizacioni skup definie poseban skup relacija generalizacije koji opisuje na koji nain se natklasa specijalizuje Ogranienja generalizacionog skupa (piu se u zagradama {}):
disjoint/overlaping
da li objekti podtipova mogu biti iskljuivo jednog od podtipva generalizacionog skupa
complete/incomplete
da li podtipovi predstavljaju potpuni skup moguih podtipova
13
12.11.2007.
Notacija i primer
Primer generalizacionog skupa pol:
Osoba pol {complete, disjoint} za po sle nje {incomplete, disjoint}
Osoba
Muskarac
Zena
Zaposleni
potklase klase Osoba mogu biti Muskarac, Zena i Zaposleni generalizacije prema potklasama Muskarac i Zena pripadaju generalizacionom skupu pol
14
12.11.2007.
Metaklasa
Metaklasa je klasifikator ije su instance klase Primer:
metaklasa Class u metamodelu (metajeziku) UML-a opisuje apstrakciju klase instance ove metaklase su klase u modelu koji kreiramo metamodel je model kojim se specificira jezik za modeliranje
15
12.11.2007.
Powertype
Powertype je klasifikator ije su sve instance deca (potklase) nekog roditelja Powertype je takoe metatip (tip u metamodelu), ali korisniki
instance tog metatipa su tipovi (klase) koji su podtipovi nekog drugog tipa u modelu ako je A tip, tada je Power(A) tip ije su sve instance podtipovi tipa A ako je tip B instanca tipa Power(A), tada je B podtip A
Formalno:
16
12.11.2007.
Powertype - primer
Primer: instance Model (Yugo, Megan,...) su deca klase Automobil
A uto mo bil <<powertype>> <<powertype>> Model
Automobil
* :Model
Model
Yugo
Yugo
Megan
UML 1
UML 2
odredite stereotipa relacije zavisnosti <<powertype>> je powertype klasifikator stereotip zavisnosti <<instanceOf>> se koristri za veze klasa-->metaklasa Dijagrami klasa napredniji pojmovi 12.11.2007.
17
Relacija realizacije
Semantika relacija izmeu klasifikatora od kojih jedan specificira ugovor a drugi garantuje njegovu implementaciju Grafika notacija: <<interface>>
Interfejs
Klasa
Klasa Interfejs
Korisnik
<<interface>> Interfejs
Klasa
Korisnik Interfejs
Klasa
18
12.11.2007.
kontekst interfejsa (realizuje ga klasa ili komponenta) kontekst sluajeva korienja (realizuje ga kolaboracija)
<<interface>> IKruzniBafer FIFOred +stavi() +uzmi()
Klasni dijagram:
Dijagram komponenata:
IBafer
PosloviStampaca
19
12.11.2007.
Parametrizovana kolaboracija
Koristila se za opis projektnih uzoraka u UML1 Notacija u UML 1:
20
12.11.2007.
21
12.11.2007.
klasa iji su atributi i operacije zajedniki za sve instance klase klasa koja implementira glavnu (poslovnu) logiku klasa koja pomae focus klasi u implementaciji logike klasifikator je stereotip koji se moe primeniti na druge elemente klasifikator ije su instance klase klasifikator ije su instance deca datog roditelja (UML1) klasa iji su objekti aktivni sa zasebnim adresnim prostorom klasa iji su objekti aktivni sa deljenim adresnim prostorom (UML1)
naglaeno stereotip specificiran kao standardni i u UML 2 (profili L2 i L3) kurziv stereotip eksplicitno naveden kao zastareo obino nije naveden kao zastareo, ali nije naveden ni kao stereotip UML 2 (u datom kontekstu; npr. process je stereotip za komponente, ne za klase)
22
12.11.2007.
instantiate izvor kreira instance odredita instanceOf izvor je objekat koji je instanca odredinog klasifikatora (UML 1) send izvor (operacija) alje signal koji je odredite relacije (odredite relacije nije primalac signala) derive izvor se moe izraunati na osnovu odredita; relacija izmeu dva atributa ili dve asocijacije: jedan je konkretan, a drugi konceptualan (npr: DatumRodj i Starost) refine izvor je finiji stepen apstrakcije od odredita; na primer: klasa u projektu je na finijem stepenu apstrakcije od odgovarajue klase u analizi permit izvoru se daju posebna prava pristupa odreditu friend izvoru se daju posebna prava pristupa odreditu (samo UML 1) powertype odredite je powertype izvora (samo UML 1)
Izmeu paketa:
access import
izvorni paket ima pravo pristupa elementima odredinog (privatni uvoz) javni sadraj odredinog paketa ulazi u prostor imena izvornog paketa (kao da su imena odredinog paketa deklarisana u izvornom paketu)
23
12.11.2007.
24
12.11.2007.