Transcript
Page 1: 10 Dijagrami Klasa - Napredni Pojmovi

Projektovanje softvera

Dijagrami klasa –napredniji pojmovi

Page 2: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi2

Aktivne klase

Aktivni objekat je onaj koji poseduje vlastiti tok kontrolekoji 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 Tok kontrole se pokreće/zaustavlja:

– kada se aktivni objekat kreira/uništava– mogu postojati i posebne operacije za pokretanje i zaustavljanje

Mnogi jezici podržavaju aktivne objekte (Ada, Java, Smalltalk) Aktivni objekti i aktivne klase

se mogu pojaviti u dijagramima gde i pasivni

Page 3: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi3

Procesi i niti

Proces (process, task) je "teški" (heavyweight) tok kontrole– ima vlastiti adresni prostor

Nit (thread) je "laki" (lightweight) tok kontrole– deli zajednički adresni prostor sa drugim nitima

Jedan proces može sadržati više niti Proces je jedinica konkurentnosti u operativnim sistemima:

– procesi konkurišu za resurse Primeren mehanizam za komunikaciju:

– procesi - razmena poruka (message passing)– niti - deoba zajedničkih podataka (data sharing)

Page 4: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi4

Aktivne klase - notacija

Grafički simbol aktivne klase: UML 1: UML2:

– poseban odeljak se predviđa za signale koje klasa može primati

Nit (thread)

Proces (process)

Kontroler

SignalsPeriferalSpreman

Takt

Kompresor<<process>>

Kompresor<<process>>

UML 1 UML 2

Sabirac<<thread>> Sabirac

Page 5: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi5

Šabloni

Šablon (template) je parametrizovani element– C++, Ada, Java podržavaju š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 generisanjeGenerickiBafer<Predmet,100> bafer; // implicitno generisanje

Page 6: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi6

Šabloni - notacija

Primer generičkog bafera:– definicija šablona i

eksplicitno generisanje iz njega: implicitno generisanje:

GenerickiBafer

+stavi(Element)+uzmi(): Element

ElementBroj : Integer = 10

Bafer

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

GenerickiBafer<Element->Predmet, Broj->100>

Page 7: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi7

Izuzeci

Izuzeci su vrste signalakoji se modeliraju stereotipom klase <<exception>>

Signal šalje operacija koja izaziva izuzetak– modelira se stereotipom <<send>> relacije zavisnosti

Primer:

StekPun<<exception>>

Stek

+stavi(Element) {exception StekPun}+uzmi(): Element {exception StekPrazan}

StekPrazan<<exception>>

<<send>>

<<send>>

Page 8: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi8

Klasa asocijacije

Sama asocijacija može imati svoje atribute Ti atributi pripadaju klasi koja opisuje asocijaciju

(slično veznoj tabeli kod relacionih baza) Primer:

Firma Lice+zaposleni+poslodavac

1..**

Posao

+opis+datumZaposlenja+plata

Page 9: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi9

N-arna asocijacija

Asocijacija može povezivati više od 2 klase– takva asocijacija se naziva n-arnom

Svaka instanca n-arne asocijacijeje n-torka vrednosti odgovarajućih klasa

Primer ternarne asocijacije(sa klasom asocijacije):

Tim Igrač

Sezona

Statistika

pobedaizgubljenih

*

**

Page 10: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi10

Kvalifikacija (1)

Koristi se da označi ključ (kvalifikator)koji se koristi za selekciju objekta iz neke strukture

Objekat strukture za datu vrednost ključaselektuje jedan ili grupu elemenata

Učesnici u relaciji su Struktura i njen Element– element(i) strukture se izdvaja(ju) uz pomoć ključa

Kvalifikator može imati više atributa, oni su atributi asocijacije Atributi kvalifikatora imaju istu sintaksu

kao i atributi klasifikatora, sem inicijalne vrednosti Grafička notacija:

– ukras je deo asocijacije, ne klase

Struktura Element0..1

kljuckljuc

Page 11: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi11

Kvalifikacija (2)

Primeri struktura kojima se pristupa pomoću ključa su– heš tabela, B-stablo, …

Multiplikativnost na kraju asocijacije kod klase Element:– moguće kardinalnosti skupa selektovanih objekata

uparivanjem sa objektom strukture uz zadatu vrednost ključa: 0..1 – može da bude selektovan jedinstven objekat, ali postoje

i vrednosti ključa za koje se ne selektuje ni jedan objekat 1 – svaka moguća vrednost kvalifikatora selektuje

jedinstvenu instancu elementa * – vrednost kvalifikatora deli skup elemenata u podskupove

Primeri:

Banka Osoba0..1*

racunracunSahTabla Polje

11redkolonaredkolona

Page 12: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi12

Specifikator interfejsa (UML 1)

Uloge mogu implementirati samo neke od interfejsakoje realizuju klase u asocijaciji

Ime interfejsa koji zadovoljava uloga - iza dvotačke koja sledi naziv uloge Primer 1:

Primer 2:

Osoba

*1

supervizor:IUpravnik

1

radnik:IZaposleni *

Predmet Podsetnik-podsetnik:IPodsetnik

Cuvar-podsetnik:ICuvani

Page 13: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi13

Generalizacioni skupovi

Relacija generalizacije/specijalizacijeuspostavlja odnos između posebnog i opšteg

Ponekad se specijalizacija vrši po nekom klasifikacionom kriterijumu– kriterijum klasifikacije određuje podtipove– često objekti podtipova ne mogu biti i jedne i druge klase

(ograničenje disjoint) Generalizacioni skup definiše poseban skup relacija generalizacije

koji opisuje na koji način se natklasa specijalizuje Ograničenja generalizacionog skupa (pišu se u zagradama {}):

– disjoint/overlaping da li objekti podtipova mogu biti isključivo jednog

od podtipova generalizacionog skupa– complete/incomplete

da li podtipovi predstavljaju potpuni skup mogućih podtipova

Page 14: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi14

Notacija i primer

Primer generalizacionog skupa pol:

– potklase klase Osoba mogu biti Muskarac, Zena i Zaposleni– generalizacije prema potklasama Muskarac i Zena

pripadaju generalizacionom skupu pol

Osoba

Muskarac Zena Zaposleni

pol{complete, disjoint}

Muskarac

zaposlenje{incomplete}

Osoba

Muskarac Zena Zaposleni----------------------------

pol

Page 15: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi15

Metaklasa

Metaklasa je klasifikator čije su instance klase Primer:

– metaklasa Class u metamodelu (metajeziku) UML-aopisuje apstrakciju klase

– instance ove metaklase su klase u modelu koji kreiramo– metamodel je model kojim se specificira jezik za modeliranje

Page 16: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi16

Powertype

Powertype je klasifikator čije su sve instancedeca (potklase) nekog roditelja

Powertype je takođe metatip (tip u metamodelu), ali korisnički– instance tog metatipa su tipovi (klase)

koji su podtipovi nekog drugog tipa u modelu Formalno:

– 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

Page 17: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi17

Powertype - primer

Primer: instance Model (Yugo, Megan,...) su deca klase Automobil

UML 1 UML 2

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

– odredište stereotipa relacije zavisnosti <<powertype>>je powertype klasifikator

– stereotip zavisnosti <<instanceOf>> se koristri za veze klasa-->metaklasa

Auto mo bil Model<<powertype>>

Yugo Megan

<<powertype>>

<<instanceOf>>

<<instanceOf>>

Automobil Model1*

Yugo Megan

:Model

1*

Page 18: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi18

Konteksti relacije realizacije

Realizacija se koristi u dva konteksta:– kontekst interfejsa (realizuje ga klasa ili komponenta)– kontekst slučajeva korišćenja (realizuje ga kolaboracija)

Klasni dijagram:

Dijagram komponenata:

Dijagram slučajeva korišćenja:

ProveraLozinke ProveraIdentiteta

FIFOredIKruzniBafer<<interface>>

+stavi()+uzmi()

FIFOred

IKruzniBafer

+stavi()+uzmi()

PosloviStampaca

IBafer

Page 19: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi19

Parametrizovana kolaboracija

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

uloga 1uloga 2...

naziv uzorka

Ucesnik1 Ucesnik2

uloga 1 uloga 2

Page 20: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi20

Projektni uzorci u UML 2

Definicija uzoraka "posmatrač“ – parametrizovana saradnja:

Konkretna saradnja koja realizuje uzorak "posmatrač":

Page 21: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi21

Standardni stereotipovi klasifikatora

utility – klasa čiji su atributi i operacije zajednički za sve instance klase focus – klasa koja implementira glavnu (poslovnu) logiku auxiliary – klasa koja pomaže focus klasi u implementaciji logike stereotype – klasifikator je stereotip koji se može primeniti na druge elemente metaclass – klasifikator čije su instance klase powertype – klasifikator čije su instance deca datog roditelja (UML1) thread – klasa čiji su objekti aktivni sa deljenim adresnim prostorom (UML1)

process – komponenta čiji primerci imaju vlastite procese(u UML1 process je bio stereotip klase)

Legenda:– naglašeno – stereotip specificiran kao standardni i u UML 2 (profili L2 i L3)– obično – nije naveden kao zastareo, ali nije naveden ni kao std. stereotip UML 2– kurziv – stereotip eksplicitno naveden kao zastareo

Page 22: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi22

Standardni stereotipovi relacije zavisnosti

Između klasa i/ili objekata na klasnom dijagramu:– instantiate – izvor kreira instance odredišta– instanceOf – izvor je objekat koji je instanca odredišnog klasifikatora (UML 1)– send – izvor (operacija) šalje signal koji je odredište relacije

(odredište relacije nije primalac signala)– derive – izvor se može izračunati na osnovu odredišta;

relacija između dva atributa ili dve asocijacije:jedan je konkretan, a drugi konceptualan (npr: DatumRodj i Starost)

– refine – izvor je finiji stepen apstrakcije od odredišta; na primer: klasa u projektuje na finijem stepenu apstrakcije od odgovarajuće klase u analizi

– permit – izvoru se daju posebna prava pristupa odredištu– friend – izvoru se daju posebna prava pristupa odredištu (samo UML 1)– powertype – odredište je powertype izvora (samo UML 1)

Između paketa:– access – izvorni paket ima pravo pristupa elementima odredišnog (privatni uvoz)– import – javni sadržaj odredišnog paketa ulazi u prostor imena izvornog paketa

(kao da su imena odredišnog paketa deklarisana u izvornom paketu)

Page 23: 10 Dijagrami Klasa - Napredni Pojmovi

24.11.2010.Dijagrami klasa – napredniji pojmovi23

Standardni stereotipovi ostalih relacija

Standardni stereotip relacije generalizacijeimplementation – dete nasleđuje implementaciju roditelja,

ali je čini privatnom i ne podržava interfejs roditelja,pa ne može zamenjivati roditelja

Standardni stereotip relacije realizacijebind – izvor je instanca ciljnog šablona

sa datim stvarnim parametrima


Top Related