10 Dijagrami Klasa - Napredni Pojmovi

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 24

Projektovanje softvera

Dijagrami klasa napredniji 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

Dijagrami klasa napredniji pojmovi

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)

Primeren mehanizam za komunikaciju:

Dijagrami klasa napredniji pojmovi

12.11.2007.

Aktivne klase - notacija


Grafiki simbol aktivne klase: UML 1: UML2: Kontroler
Signals PeriferalSpreman

Takt

poseban odeljak se predvia za signale koje klasa moe primati

Stereotipovi procesa (process) i niti (thread) - samo UML 1


<<process>> ObradaDokumeta

<<thread>> Sabirac

Dijagrami klasa napredniji pojmovi

12.11.2007.

abloni
ablon (template) je parametrizovani element

C++, Ada, Java podravaju ablone (generike)

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

Dijagrami klasa napredniji pojmovi

12.11.2007.

abloni - notacija
Primer generikog bafera:
Element, Broj GenerickiBafer stavi(e : Element&) : void uzmi() : Element& implicitno generisanje

GenerickiBafer<Predmet,100>

eksplicitno generisanje

<<bind>> <Element->Predmet, Broj->100> Bafer

Dijagrami klasa napredniji pojmovi

12.11.2007.

Izuzeci
Izuzeci su vrste signala koji se modeliraju stereotipom klase <<exception>> Signal alje operacija koja izaziva izuzetak

modelira se stereotipom <<send>> relacije zavisnosti


exception Exception

Primer:

Item Buffer send +add() +remove() send exception Overflow

exception Underflow

Dijagrami klasa napredniji pojmovi

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

Dijagrami klasa napredniji pojmovi

12.11.2007.

N-arna asocijacija
Asocijacija moe povezivati vie od 2 klase

takva asocijacija se naziva n-arnom

Svaka instanca n-arne asocijacije je n-torka vrednosti odgovarajuih klasa Sezona Primer ternarne asocijacije * (sa klasom asocijacije): * Tim
Statistika pobeda izgubljenih

Igra

Dijagrami klasa napredniji pojmovi

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

Element(i) strukture se izdvaja(ju) uz pomo kljua

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

ukras je deo asocijacije, ne klase


Dijagrami klasa napredniji pojmovi 12.11.2007.

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

Multiplikativnost na kraju asocijacije kod klase Element:

Primeri:
Banka racun * 0..1 Osoba
SahTabla red kolona 1 1 Polje

11

Dijagrami klasa napredniji pojmovi

12.11.2007.

Specifikator interfejsa (UML 1)


Uloge mogu implementirati samo neke od interfejsa koje realizuju klase u asocijaciji Ime interfejsa koji zadovoljava uloga se pie iza dvotake koja sledi naziv uloge Primer:
Osoba radnik:IZaposleni * supervizor:IUpravnik 1

12

Dijagrami klasa napredniji pojmovi

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

Dijagrami klasa napredniji pojmovi

12.11.2007.

Notacija i primer
Primer generalizacionog skupa pol:
Osoba pol {complete, disjoint} za po sle nje {incomplete, disjoint}

Osoba

pol ---------------------------Muska ra c Zena Zaposleni

Muskarac

Zena

Zaposleni

potklase klase Osoba mogu biti Muskarac, Zena i Zaposleni generalizacije prema potklasama Muskarac i Zena pripadaju generalizacionom skupu pol

14

Dijagrami klasa napredniji pojmovi

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

Dijagrami klasa napredniji pojmovi

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

Dijagrami klasa napredniji pojmovi

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

Megan <<instanceOf>> <<instanceOf>>

Yugo

Megan

UML 1

UML 2

U gronjem primeru Model je metatip za klase Yugo, Megan UML 1:


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

kanonika forma: skraena forma:

Interfejs

Klasa

Klasa Interfejs

Korienje interfejsa (relacija zavisnosti)

kanonika forma: skraena forma (ball & socket):

Korisnik

<<interface>> Interfejs

Klasa

Korisnik Interfejs

Klasa

18

Dijagrami klasa napredniji pojmovi

12.11.2007.

Konteksti relacije realizacije


Realizacija se koristi u dva konteksta:

kontekst interfejsa (realizuje ga klasa ili komponenta) kontekst sluajeva korienja (realizuje ga kolaboracija)
<<interface>> IKruzniBafer FIFOred +stavi() +uzmi()

Klasni dijagram:

Dijagram komponenata:
IBafer

PosloviStampaca

Dijagram sluajeva korienja:


ProveraLozinke ProveraIdentiteta

19

Dijagrami klasa napredniji pojmovi

12.11.2007.

Parametrizovana kolaboracija
Koristila se za opis projektnih uzoraka u UML1 Notacija u UML 1:

uloga 1 uloga 2 ... naziv uzorka uloga 1 Participant1 uloga 2 Participant2

20

Dijagrami klasa napredniji pojmovi

12.11.2007.

Projektni uzorci u UML 2


Primer uzorak "posmatra":

Konkretna kolaboracija koja realizuje uzorak "posmatra":

21

Dijagrami klasa napredniji pojmovi

12.11.2007.

Standardni stereotipovi klasa


utility focus auxiliary stereotype metaclass powertype process thread Legenda:

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

Dijagrami klasa napredniji pojmovi

12.11.2007.

Standardni stereotipovi relacije zavisnosti


Izmeu klasa i/ili objekata na klasnom dijagramu:

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

Dijagrami klasa napredniji pojmovi

12.11.2007.

Standardni stereotipovi ostalih relacija


Standardni stereotip relacije generalizacije
implementation dete nasleuje implementaciju roditelja, ali je ini privatnom i ne podrava interfejs roditelja, pa ne moe zamenjivati roditelja izvor je instanca ciljnog ablona sa datim stvarnim parametrima

Standardni stereotip relacije realizacije


bind

24

Dijagrami klasa napredniji pojmovi

12.11.2007.

You might also like