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

Projektovanje softvera

Jezik UML

Literatura
Materijal prireman na osnovu:

Booch, G., Rumbaugh, J., Jacobson, I., The Unified Modeling Language User Guide, Addison Wesley Longman, Inc., 1999. (UML 1.3) Fowler,M., UML Distilled: A Brief Guide to the Standard Object Modeling Language, 3rd Edition, Pearson Education, 2004. (UML 2.0)

UML 2.0 Infrastructure Specification, OMG UML 2.0 Superstructure Specification, OMG

Jezik UML

01.10.2009.

Standardni jezik za modeliranje UML


UML (Unified Modeling Language) je grafiki jezik za:

vizuelizaciju specifikaciju konstruisanje i dokumentovanje

softverski-intenzivnih sistema UML omoguava konstruisanje ema koje modeliraju sistem opisujui:

konceptualne stvari
npr. proces poslovanja i funkcije sistema

konkretne stvari
npr. klasne tipove, eme baza podataka, softverske komponente

http://www.uml.org/

Jezik UML

01.10.2009.

Korisnici UML-a
Sledee kategorije korisnika UML-a se uoavaju:

sistem-analitiari i krajnji korisnici: specificiraju zahtevanu strukturu i ponaanje sistema arhitekti: projektuju sistem koji zadovoljava zahteve razvojni inenjeri (developers): transformiu arhitekturu u izvrni kod kontrolori kvaliteta (quality assurance personel): proveravaju strukturu i ponaanje sistema bibliotekari (librarians): kreiraju i katalogiziraju komponente rukovodioci projekata (managers): voenje i usmeravanje kadrova i orkestracija resursima
Jezik UML 01.10.2009.

Praistorija UML-a
Jezici za OO modeliranje se pojavljuju jo od sredine 70ih

uzrok njihove pojave je pojava nove generacije OO jezika i poveana kompleksnost softverskih sistema broj OO metoda je porastao sa manje od 10 na vie od 50 Booch metoda OMT (Object Modeling Technique, Rumbaugh) OOSE (Object Oriented Software Engineering, Jacobson) Fusion Shlaer-Mellor Coad-Yourdon
Jezik UML 01.10.2009.

U periodu 1989-1994:

Metode koje su ostvarile najvei uticaj na oblast OO modeliranja su:

Istorija UML-a
1994: poetak rada na UML-u - Rumbaugh se pridruio Booch-u u firmi Rational Oktobar 1995: pojavila se verzija 0.8 drafta UM-a (Unified Method) Jesen 1995: Jacobson se pridruio Rational-u rad na objedinjenju UM sa OOSE Jun 1996: pojavila se verzija 0.9 UML-a Vaniji partneri (uestvovali u definisanju verzije 1.0):

DEC, HP, IBM, Microsoft, Oracle, Rational, TI, ...

U januaru 1997: OMG-u (Object Management Group) podnet predlog std. UML 1.0 Grupa partnera je proirena drugim podnosiocima predloga:

npr. ObjecTime, Ericsson,...

Jul 1997: podnet predlog UML 1.1 koji je prihvaen od OMG 14.11.1997. Jun 1998: verzija UML 1.2 Jesen 1998: verzija UML 1.3 Septembar 2001: verzija UML 1.4 (v. 1.4.2 => ISO std. 19501:2005) 2002: verzija UML 1.5 (akciona semantika) Jun 2003: v 2.0, februar 2007: v 2.1, februar 2009: v 2.2, u pripremi v 2.3

Jezik UML

01.10.2009.

Konceptualni model UML-a


Tri osnovna elementa UML modela su:

Osnovni gradivni blokovi Pravila za povezivanje gradivnih blokova Opti mehanizmi koji se primenjuju u UML-u Stvari (things)
apstrakcije koje su "graani prvog reda" u modelu

Gradivni blokovi UML-a


Relacije (relationships)
povezuju stvari

Dijagrami (diagrams)
grupiu interesantne skupove povezanih stvari

Jezik UML

01.10.2009.

Stvari
Stvari strukture - statiki delovi modela, reprezentuju konceptualne ili fizike elemente (imenice) Stvari ponaanja - dinamiki delovi modela, reprezentuju ponaanje kroz prostor i vreme (glagoli) Stvari grupisanja - organizacioni delovi modela, kutije u koje model moe biti dekomponovan Stvari anotacije - objanjavajui delovi modela, komentari koji se primenjuju na bilo koji element

Jezik UML

01.10.2009.

Stvari strukture klase i interfejsi


Klasa je opis skupa objekata koji dele zajednike karakteristike (atribute i operacije), ogranienja i semantiku Aktivna klasa je klasa iji objekti imaju vlastitu nit kontrole i tako mogu da zaponu neku upravljaku aktivnost Ponaanje objekta aktivne klase je konkurentno sa drugim aktivnim objektima Interfejs je kolekcija operacija koje specificiraju servis klase ili komponente Interfejs opisuje ponaanje elementa koje je spolja vidljivo Interfejs definie skup specifikacija (prototipova) operacija ali ne i njihove implementacije Klasa i komponenta mogu da implementiraju vie interfejsa
Tacka x y rastojanje() Alarm postaviVreme() ukljuci() iskljuci()

IStek

Jezik UML

01.10.2009.

Stvari strukture sluaj korienja i saradnja


Sluaj korienja (use-case) je opis skupa sekvenci aktivnosti koje obavlja sistem da bi proizveo vidljiv rezultat vredan za pojedinog aktera Jedna sekvenca aktivnosti instanca sluaja korienja (scenario) Sluaj korienja reprezentuje funkcionalnost sistema Prikaz rasporeda casova (mada se neki autori ne slau sa tim) Koirsti se da bi se strukturirale stvari ponaanja u modelu Realizuje se kroz saradnju (kolaboraciju) Saradnja (collaboration) definie zajednicu i interakciju aktera i drugih elemenata koji dejstvuju zajedno Posmatrac da ostvare kooperativno ponaanje koje je kvalitativno novo u odnosu na prostu sumu ponaanja elemenata Kolaboracija ima strukturalnu, kao i dimenziju ponaanja Kolaboracije predstavljaju implementaciju projektnih uzoraka (patterns)

10

Jezik UML

01.10.2009.

Stvari strukture komponenta i vor


Komponenta je fiziki i zamenjivi deo sistema <<component>> koji ostvaruje realizaciju skupa interfejsa Servis.jar Komponenta je tip koji ima ponuene i zahtevane interfejse U sistemu mogu postojati razne vrste izvrnih komponenata, npr. ActiveX ili Java Beans, ili fajlovi izvornog koda Servis.jar Komponenta obino predstavlja fiziko pakovanje drugih logikih elemenata kao to su klase, interfejsi i kolaboracije vor (node) je fiziki element koji postoji u vreme izvrenja i reprezentuje resurs obrade Server vor poseduje neku memoriju i, esto, mogunost procesiranja Skup komponenata moe biti u voru, a moe i migrirati sa vora na vor Prvih pet stvari reprezentuje konceptualne ili logike stvari, dok poslednje dve reprezentuju fizike stvari Sve navedene stvari osim kolaboracije predstavljaju klasifikatore: mehanizme koji opisuju strukturne i karakteristike ponaanja

11

Jezik UML

01.10.2009.

Stvari ponaanja
Interakcija je ponaanje koje obuhvata skup poruka koje se razmenjuju izmeu skupa objekata unutar posebnog konteksta da se ostvari specifina svrha Interakcija ukljuuje odreen broj elemenata:

poruke (priloen grafiki simbol) sekvence akcija (ponaanje izazvano porukom) veze (komunikacione putanje izmeu objekata)

prikazi

Automat stanja je ponaanje koje specificira sekvence stanja kroz koje prolazi jedan objekat ili jedna interakcija za vreme svog ivotnog veka, kao posledice dogaaja, zajedno sa njegovim odgovorima na te dogaaje Automat stanja ukljuuje odreen broj elemenata:

Cekanje

stanja (priloen grafiki simbol), tranzicije (prelaze izmeu stanja) dogaaje (stvari koje izazivaju tranziciju) aktivnosti (odgovore na tranzicije)

12

Jezik UML

01.10.2009.

Stvari organizacije i anotacije


Paket je optenamenski mehanizam awt za organizovanje elemenata u grupe Stvari strukture, ponaanja, pa ak i druge stvari grupisanja mogu biti smetene u paket Za razliku od komponente, paket je isto konceptualna stvar (egzistira samo u vreme razvoja) Pored paketa postoje i sledee stvari grupisanja:

radni okviri (frameworks), modeli


FIFO

Napomena je simbol za prikazivanje komentara pridruenih jednom elementu ili kolekciji elemenata

13

Jezik UML

01.10.2009.

Relacije
Zavisnost je semantika relacija izmeu dve stvari u kojoj izmena jedne (nezavisne) stvari moe uticati na semantiku druge (zavisne) stvari Asocijacija je strukturna relacija koja opisuje skup veza izmeu objekata

+poslodavac sadranje je specijalna vrsta asocijacije koja reprezentuje strukturnu relaciju izmeu celine i njenih delova 1 esto grafiki simbol sadri ukrase kao to su multiplikativnost i imena uloga +zaposleni 1..*

Generalizacija je relacija specijalizacije/generalizacije u kojoj su objekti specijalizovanog elementa (deca) zamene za objekte generalizovanog elementa (roditelja)

dete deli strukturu i ponaanje roditelja

Realizacija je semantika relacija izmeu klasifikatora u kojoj jedan klasifikator specificira ugovor koji drugi klasifikator ostvaruje

Sree se:
izmeu interfejsa i klasa ili komponenata koje ga realizuju izmeu sluajeva korienja i kolaboracija koje ih realizuju

14

Jezik UML

01.10.2009.

Dijagrami
Dijagram je grafika reprezentacija skupa povezanih elemenata

najee se pojavljuje u obliku grafa temena (stvari) povezanih granama (relacijama)

Dijagrami se crtaju da bi se sistem vizualizovao iz razliitih perspektiva Vrste dijagrama u UML-u:


dijagrami za prikaz statikih aspekata sistema dijagrami za prikaz dinamikih aspekata sistema

15

Jezik UML

01.10.2009.

Statiki dijagrami
Dijagram klasa (class diagram) prikazuje logiku strukturu apstrakcija: skup klasa, interfejsa, kolaboracija i njihovih relacija Dijagram objekata (object diagram) prikazuje logiku strukturu instanci: skup objekata (instanci klasa) i njihovih veza Dijagram komponenata (component diagram) prikazuje fiziku organizaciju i zavisnosti izmeu skupa komponenata Dijagram rasporeivanja (deployment diagram) prikazuje konfiguraciju vorova obrade i komponenata koje ive na njima Dijagram paketa (package diagram) [UML 2] prikazuje statiku strukturu grupisanja elemenata modela u pakete Dijagram sloene strukture (composite structure diagram) [UML 2] prikazuje hijerarhijsko razlaganje primerka klase, komponente ili saradnje na delove

16

Jezik UML

01.10.2009.

Dinamiki dijagrami
Dijagram sluajeva korienja (use case diagram) prikazuje skup sluajeva korienja, aktera (specijalne vrste klasa) i njihovih relacija Dijagram interakcije (interaction diagram) prikazuje jednu interakciju koju ine skup objekata i njihovih veza sa porukama koje razmenjuju

Dijagram sekvence (sequence diagram) je dijagram interakcije koji naglaava vremenski redosled poruka Dijagram komunikacije (communication diagram) je dijagram interakcije koji naglaava strukturnu organizaciju objekata koji alju i primaju poruke; Dijagram pregleda interakcije (interaction overview diagram) [UML 2] je dijagram interakcije koji definie interakcije kroz vrstu dijagrama aktivnosti (kombinacija d. aktivnosti i d. sekvence) Vremenski dijagram (timing diagram) [UML 2] je dijagram interakcije koji prikazuje promenu stanja objekata u vremenu

Dijagram aktivnosti (activity diagram) prikazuje tok od jedne do druge aktivnosti u sistemu (nije specijalna vrsta dijagrama stanja u UML 2) Dijagram stanja (statechart diagram) prikazuje konani automat koji obuhvata stanja, tranzicije, dogaaje i aktivnosti

17

Jezik UML

01.10.2009.

Pravila UML-a
UML ima pravila koja specificiraju kako izgleda dobro formiran model Dobro formiran model je

semantiki konzistentan u harmoniji sa korelisanim modelima Imena Doseg Vidljivost Integritet Izvrenje - kako se nazivaju stvari, relacije i dijagrami - koji kontekst daje specifino znaenje imenu - gde se imena mogu videti i koristiti od strane drugih - kako se stvari propisno i konzistentno koreliu prema drugim stvarima - ta to znai za izvrenje ili simulaciju dinamikog modela - izvesni elementi su sakriveni da se pojednostavi izgled - izvesni elementi nedostaju - integritet modela nije garantovan

UML ima semantika pravila za:

Tokom razvoja se ne prave samo modeli koji su dobro formirani, ve mogu biti i:
Skraeni (elided) Nekompletni Nekonzistentni

Pravila UML-a vode kroz vreme ovakve modele prema dobro formiranim

18

Jezik UML

01.10.2009.

Opti mehanizmi UML-a


Gradnja je jednostavnija i harmoninija ako se podvrgava uzorcima zajednikih osobina Postoje etiri opta mehanizma koja se primenjuju konzistentno kroz jezik:

Specifikacije Ukrasi Opte podele Mehanizmi proirivosti


Jezik UML 01.10.2009.

19

Specifikacije
Iza svakog dela grafike notacije UML-a lei specifikacija koja obezbeuje tekstualni iskaz sintakse i semantike tog gradivnog bloka Iza grafikog simbola (sliice, ikone) klase stoji specifikacija koja navodi:

potpun skup atributa potpun skup operacija (ukljuujui kompletne potpise) ponaanje

Grafiki simbol moe pokazivati samo mali deo potpune specifikacije Moe postojati i drugi izgled iste klase koji prikazuje drugi skup delova iste klase konzistentan sa specifikacijom UML grafika notacija se koristi za vizuelizaciju UML specifikacija se koristi da se saopte detalji sistema Modeli se mogu graditi:

najpre pomou crtanja dijagrama, a zatim dodavanjem semantike u specifikaciju (tipino za direktni inenjering pri kreiranju novog sistema) direktnim kreiranjem specifikacije pa naknadnim kreiranjem dijagrama koji su njene projekcije (tipino za reverzni inenjering postojeeg sistema)

20

Jezik UML

01.10.2009.

Ukrasi
Detalji specifikacije se prikazuju kao grafiki ili tekstualni ukras osnovnog grafikog elementa Na primer:

za klasu se moe naglasiti da je apstraktna tako to se ime pie italic slovima vidljivost (pravo pristupa) atributa i operacija se moe naglasiti pomou simbola: + (javni), # (zatieni), (privatni) i ~(paketni) Agregacija se predstavlja dodatnim simbolom na simbolu asocijacije
Jezik UML 01.10.2009.

21

Opte podele
Dve osnovne podele:

apstrakcije i instance interfejsi i implementacije klase/objekti (klasa je apstrakcija, a objekat instanca te apstrakcije) sluajevi korienja/instance sluajeva korienja (scenarija) komponente/instance komponenti interfejsi/komponente sluajevi korienja/kolaboracije operacije/metodi

Primeri prve podele:

Primeri druge podele:

U UML-u se razlika izmeu apstrakcije i instance pravi tako to se imena instanci podvlae Interfejs deklarie ugovor, a implementacija reprezentuje jednu konkretnu realizaciju ugovora

22

Jezik UML

01.10.2009.

Mehanizmi proirivosti
UML je otvoren za proirenja jezika na kontrolisani nain Mehanizmi proirivosti ukljuuju:

Stereotipove Obeleene vrednosti Ogranienja

23

Jezik UML

01.10.2009.

Stereotipovi
Stereotip proiruje renik UML-a doputajui kreiranje novih vrsta gradivnih blokova specifinih za problem Novi gradivni blokovi su izvedeni iz postojeih Stereotop se prikazuje kao ime uokvireno znacima << i >> smeteno iznad imena odgovarajueg elementa Na primer, izuzeci su klase iji se objekti mogu bacati i hvatati
<<exception>> Prekoracenje

Moe se definisati i grafiki simbol za odreeni stereotip


<<interface>> Merljiv +meri()

Merljiv +meri()

24

Jezik UML

01.10.2009.

Obeleene vrednosti
Obeleene vrednosti proiruju osobine UML gradivnog bloka doputajui dodavanje nove informacije Obeleene vrednosti se prikazuju kao string okruen zagradama { i } ispod imena odgovarajueg elementa String sadri ime (tag), sepearator (simbol =) i vrednost Na primer, verzija i autor klase nisu primitivni koncepti u UML-u, a mogu se dodati bilo kom gradivnom bloku kao to je klasa
RedCekanja {verzija=4.0 autor=...}

25

Jezik UML

01.10.2009.

Ogranienja
Ogranienja proiruju semantiku UML gradivnog bloka doputajui da se dodaju nova pravila ili promene postojea Ogranienja se mogu pisati:

kao slobodan tekst na OCL (Object Constraint Language)


RedCekanja dodaj() ukloni() isprazni()

{red uredjen}

26

Jezik UML

01.10.2009.

You might also like