26
 Projektovanje softvera Jezik UML

01 Jezik UML

  • Upload
    fedza

  • View
    235

  • Download
    0

Embed Size (px)

DESCRIPTION

UML

Citation preview

  • Projektovanje softvera

    Jezik UML

  • 01.10.2014.Jezik UML2

    Literatura

    Materijal prireman na osnovu: Booch,G., Rumbaugh,J., Jacobson,I., The Unified Modeling

    Language User Guide, 2nd Edition, Addison Wesley, May 2005 Rumbaugh,J., Jacobson,I., Booch,G., Unified Modeling Language

    Reference Manual, 2nd Edition, Addison-Wesley, 2004 Fowler,M., UML Distilled: A Brief Guide to the Standard Object

    Modeling Language, 3rd Edition, Pearson Education, 2004 UML 2 Infrastructure Specification, OMG UML 2 Superstructure Specification, OMG

  • 01.10.2014.Jezik UML3

    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/

  • 01.10.2014.Jezik UML4

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

    vode i usmeravaju kadrove i upravljaju resursima

  • 01.10.2014.Jezik UML5

    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

    U periodu 1989-1994: broj OO metoda je porastao sa manje od 10 na vie od 50

    Metode koje su ostvarile najvei uticaj na oblast OO modeliranja su: Booch metoda OMT (Object Modeling Technique, Rumbaugh) OOSE (Object Oriented Software Engineering, Jacobson) Fusion Shlaer-Mellor Coad-Yourdon

  • 01.10.2014.Jezik UML6

    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 prihva en od OMG 14.11.1997. Jun 1998: verzija UML 1.2, 2000: verzija UML 1.3 2001: v1.4 (v. 1.4.2 => ISO std. 19501:2005), 2003: v1.5 (akciona semantika) 2005: v 2.0, 2007: v 2.1, 2009: v 2.2, 2010: v 2.3 2011.: v2.4 (v. 2.4.1 => ISO std. 19505:2012) 2013.: v2.5 http://www.omg.org/spec/UML/

  • 01.10.2014.Jezik UML7

    Konceptualni model UML -a

    Elementi UML-a su: Osnovni gradivni blokovi Pravila za povezivanje gradivnih blokova Opti mehanizmi koji se primenjuju u UML-u

    Gradivni blokovi UML-a Stvari (things)

    apstrakcije koje su "graani prvog reda" u modelu Relacije (relationships)

    povezuju stvari Dijagrami (diagrams)

    grupiu interesantne skupove povezanih stvari

  • 01.10.2014.Jezik UML8

    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

  • 01.10.2014.Jezik UML9

    Stvari strukture klasa i interfejs

    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 skup operacija koje specificiraju uslugu klase ili komponente

    opisuje ponaanje elementa koje je spolja vidljivo (ugovor) interfejs definie skup deklaracija (prototipova) operacija

    ali ne i njihove implementacije klasa i komponenta mogu da implementiraju vie interfejsa razlikuju se implementirani i zahtevani interfejs

    Tacka

    x

    y

    rastojanje()

    Alarm

    postaviVreme()

    ukljuci()

    iskljuci()

    Agencija

    IRezervacija IHotel

  • 01.10.2014.Jezik UML10

    Stvari strukture slu aj kori enja i saradnja

    Sluaj korienja (use-case) je opis skupa sekvenci akcija koje obavlja sistem da bi proizveo vidljiv rezultat vredan za pojedinog aktera

    jedna sekvenca aktivnosti primerak sluaja korienja (scenario) sluaj korienja reprezentuje funkcionalnost sistema koirsti se da bi se strukturirale stvari ponaanja u modelu realizuje se kroz saradnju (kolaboraciju)

    Saradnja (collaboration) opisuje strukturu skupa uloga koje imajuspecifine funkcije da bi zajedno ostvarile ciljnu funkcionalnost

    ima strukturalnu, kao i dimenziju ponaanja ponaanje se opisuje posebnim dijagramima

    klasa ili objekat moe da uestvuje u vie saradnji Projektni uzorci (design patterns) se predstavljaju kao saradnje

    Prikaz rasporeda casova

    Posmatrac

  • 01.10.2014.Jezik UML11

    Stvari strukture komponenta, artefakt i vor

    Komponenta je modularni deo sistema koji kapsulira neki sadraj ostvaruje realizaciju skupa interfejsa i sakriva implementaciju ima ponuene (realizovane) i zahtevane interfejse moe se zameniti drugom koja realizuje iste interfejse ista komponenta se moe koristiti u raznim sistemima u UML-u 1 fizika stvar, ali u UML-u 2 logika

    Artefakt je fiziki i zamenljivi deo sistema koji sadri informacije predstavlja fiziku manifestaciju elementa modela (npr. komponente) moe biti fajl sa izvornim ili izvrnim kodom, dokument i sl.

    vor (node) je fiziki element koji postoji u vreme izvrenja i reprezentuje resurs obrade

    vor poseduje neku memoriju i, esto, mogunost procesiranja Skup artefakata moe biti u voru, a moe i migrirati sa vora na vor Samo poslednje dve stvari (artefakt i vor) reprezentuju fizike stvari

    Server

    ProveraPravopisa

    ProveraPravopisa.dll

  • 01.10.2014.Jezik UML12

    Stvari ponaanja

    Interakcija je ponaanje koje specificira sekvence poruka koje se razmenjuju izmeu skupa ulogaunutar posebnog konteksta da se ostvari specifina svrha

    Interakcija ukljuuje odreen broj elemenata: poruke (priloen grafiki simbol) sekvence akcija (ponaanje izazvano porukom) konektori (komunikacione putanje izmeu objekata)

    Automat stanja je ponaanje koje specificira sekvence stanjakroz koje prolazi jedan objekat ili jedna interakcija za vreme svog ivotnog veka, sa prelazima kao posledicama dogaaja, zajedno sa odgovorima na te dogaaje

    Automat stanja ukljuuje odreen broj elemenata: stanja (priloen grafiki simbol), tranzicije (prelaze izmeu stanja) dogaaje (stvari koje izazivaju tranziciju) akcije (odgovore na tranzicije)

    prikazi()

    Cekanje

  • 01.10.2014.Jezik UML13

    Stvari organizacije i anotacije

    Paket je optenamenski mehanizam 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 (postoji samo u vreme razvoja)

    Pored paketa postoje i sledee stvari grupisanja: radni okviri (frameworks), modeli

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

    awt

    FIFO

  • 01.10.2014.Jezik UML14

    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 sadranje je specijalna vrsta asocijacije koja reprezentuje

    strukturnu relaciju izmeu celine i njenih delova esto grafiki simbol sadri ukrase kao to su multiplikativnost i imena uloga

    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 saradnji koje ih realizuju

    +zaposleni+poslodavac

    1..*1

  • 01.10.2014.Jezik UML15

    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 vizualizovaoiz razliitih perspektiva

    Vrste dijagrama u UML-u: dijagrami za prikaz strukturnih aspekata sistema

    strukturni aspekti odgovaraju statikim aspektima dijagrami za prikaz aspekata ponaanja sistema

    aspekti ponaanja odgovaraju dinamikim aspektima

  • 01.10.2014.Jezik UML16

    Dijagrami strukture

    Dijagram klasa (class diagram) prikazuje logiku strukturu apstrakcija:skup klasa, interfejsa, saradnji i njihovih relacija

    Dijagram objekata (object diagram) prikazuje logiku strukturu primeraka:skup objekata (primeraka klasa) i njihovih veza

    Dijagram komponenata (component diagram) prikazuje komponente, njihovu unutranju strukturu i zavisnosti izmeu skupa komponenata

    Dijagram rasporeivanja (deployment diagram) prikazuje konfiguraciju vorova obrade i artefakata koji se rasporeuju na njih

    Dijagram paketa (package diagram) [UML 2] prikazuje statiku strukturu grupisanja elemenata modela u pakete

    Dijagram sloene strukture (composite structure diagram) [UML 2] prikazujehijerarhijsko razlaganje primerka klase, komponente ili saradnje na delove

  • 01.10.2014.Jezik UML17

    Dijagrami ponaanja

    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 uloga 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 povezanih uloga koje 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 interakcijekoji prikazuje promenu stanja uloge 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

  • 01.10.2014.Jezik UML18

    Pravila UML -a

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

    semantiki konzistentan u harmoniji sa korelisanim modelima

    UML ima semantika pravila za: imena - kako se nazivaju stvari, relacije i dijagrami doseg - koji kontekst daje specifino znaenje imenu vidljivost - gde se imena mogu videti i koristiti od strane drugih integritet - kako se stvari propisno i konzistentno koreliu prema drugim stvarima izvrenje - ta neto znai za izvrenje ili simulaciju dinamikog modela

    Tokom razvoja se ne prave samo modeli koji su dobro formirani, ve mogu biti i: skraeni (elided) - izvesni elementi su sakriveni da se pojednostavi izgled nekompletni - izvesni elementi nedostaju nekonzistentni - integritet modela nije garantovan

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

  • 01.10.2014.Jezik UML19

    Opti mehanizmi UML -a

    Gradnja je jednostavnija i harmoninija ako se potuju opti uzorci

    Postoje etiri opta mehanizma koja se primenjuju konzistentno kroz jezik: specifikacije ukrasi opte podele mehanizmi proirivosti

  • 01.10.2014.Jezik UML20

    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)

  • 01.10.2014.Jezik UML21

    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

  • 01.10.2014.Jezik UML22

    Opte podele

    Dve osnovne podele: apstrakcije i primerci (instance) interfejsi i implementacije

    Primeri prve podele: klase/objekti (klasa je apstrakcija, a objekat primerak te apstrakcije) sluajevi korienja/primerci sluajeva korienja (scenarija) vorovi/primerci vorova

    Primeri druge podele: interfejsi/komponente sluajevi korienja/saradnje operacije/metodi

    U UML-u se razlika izmeu apstrakcije i primerka pravi tako to se imena primeraka podvlae

    Interfejs deklarie ugovor, a implementacija reprezentuje jednu konkretnu realizaciju ugovora

  • 01.10.2014.Jezik UML23

    Mehanizmi proirivosti

    UML je otvoren za proirenja jezika na kontrolisani nain

    Mehanizmi proirivosti ukljuuju: Stereotipove Obeleene vrednosti Ogranienja

  • 01.10.2014.Jezik UML24

    Stereotipovi

    Stereotip proiruje renik UML-a doputajui kreiranje novih vrsta gradivnih blokova specifinih za problem

    Novi gradivni blokovi su izvedeni iz postojeih Stereotip se prikazuje kao ime uokvireno znacima >

    smeteno iznad imena odgovarajueg elementa Na primer, izuzeci su klase iji se objekti mogu bacati i hvatati

    Moe se definisati i grafiki simbol za odreeni stereotip

    Merljiv

    +meri()Merljiv

    +meri()

    Prekoracenje

  • 01.10.2014.Jezik UML25

    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), separator (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.0autor=...}

  • 01.10.2014.Jezik UML26

    Ograni enja

    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}