das- seminarski racunarsko obrazovnog softvera

Upload: senad-sinanovic

Post on 30-Oct-2015

79 views

Category:

Documents


0 download

DESCRIPTION

dasdasdasdasdsadasdasdasdasfasg15165151ad5sa15da1s5d1as5d1as5d15asd15as1d5as1d5a1s5d1asdsa1d sadaskldhaks kas j as odas as as das

TRANSCRIPT

UNIVERZITET U NOVOM PAZARUDEPARTMAN ZA PRIRODNO-TEHNIKE NAUKESMER ZA INFORMATIKU

SEMINARSKI RADTema: PREDNOSTI KORIENJA OBJEKTNO - ORIJENTISANOG MODELOVANJA U DIZAJNU APLIKATIVNOG SOFTVERA

Uvod

Osnova svakog objektno-orijentisanog reenja je takozvano objektno-orijentisano modelovanje (OOM), kojim se definie principijelni postupak reavanja, ali takoe i opte primenljivi mehanizam, ili, bolje reeno, pogodan matematiki opis problema, koji omoguava formalnu, ali takoe jasnu i preciznu formulaciju problema. Razvoj i projektovanje softvera brzo je od informatiara nazvan inenjerstvom i mogao se izrazom programiranje samo nepotpuno definisati: da bi se dolo do toga da je softver pravi inenjerski proizvod uporediv sa drugim inenjerskim proizvodima na primer, mostom, mainom, ureajem, i sl. i da bi se uinilo razumljivim da je proces stvaranja softvera slian drugim inenjerskim procesima na primer procesu konstruisanja, uveden je izraz softversko inenjerstvo. Ovaj izraz bi trebalo da objasni da softver mora da bude konstruisan po strogo postavljenim principima i kontrolisan jasno definisanom sistematikom, uz omoguavanje upravljanja njime. Iako se objektno-orijentisani programski jezici ve dugo vreme upotrebljavaju, iznenaujue je da je objektno-orijentisano modeliranje, koje je u sutini koncepcionalna osnova objektnoorijentisanog programiranja, nastalo mnogo docnije.UML je zadovoljio sve uslove jednog konzistentnog opisnog matematikog alata i podravao obe oblasti virtuelnog programiranja, tehniku analize i dizajna projektovanja. Bazirajui se na definisanoj sistematici i formalnoj notaciji, moe se pomou UML-a od pojedinog problema razviti odgovarajui meta-model (tj. jedan slikoviti, ali od nepotrebnih detalja abstrahovan model problema), koji se relativno lako, poto je konsekventno objektno-orijentisano postavljen, bez znaajnijih gubitaka informacija, pomou objektno-orijentisanog jezika prevesti u izvrni program. Striktna konzistentnost objektne orijentacije, od analize preko dizajna do programiranja, omoguuje ak i automatsko generisanje programskog koda. Tipian primer za to je razvojni alat Together J, pomou koga se metamodel razvijen pomou UML notacije moe automatski prevesti u jezik JAVA i obrnuto. Osnove dizajna i analize softvera

Dizajn je dvojako definisan, kao proces koji definie arhitekturu, komponente, interfejse i druge karakteristike sistema ili komponente i kao rezultat tog procesa. Posmatrano kao proces, dizajn softvera je aktivnost softverskog inenjerstva unutar ivotnog ciklusa razvoja softvera, gde su softverski zahtevi analizirani sa ciljem da se napravi opis unutranje strukture softvera, koji e sluiti kao osnova za njegovu izradu. Tanije reeno, dizajn softvera mora opisati softversku arhitekturu, odnosno opisati kako je softver podeljen i organizovan na komponente i interfejse koji povezuju ove komponente.

1.1. Dizajn softvera

Dizajn softvera igra vanu ulogu u razvoju softvera: on dozvoljava softver inenjerima da proizvode razlicite modele kako bi formirali ideju vodilju za reenja koja ce biti primenjena. Kroz analizu i vrednovanje ovih modela odlucujemo da li ce nam omogiciti da ispunimo razlicite zahteve. Takode, moemo ispitati i vrednovati razliita reenja. Konacno, moemo koristiti vec postojece modele za planiranje sledecih razvojnih aktivnosti, posebno kao ulaznu i pocetnu tacku kodiranja i testiranja.[footnoteRef:2] [2: Saraevi ,Objektno - orijentisano programiranje i modelovanje, JAVA i UML. Univerzitet u Novom Pazaru 2011, Novi Pazar]

Kada je softverski dokument specificiran i kompletan, softver inenjeru je omoguen prelazak u fazu dizajna. Pristupi softverskom dizajnu su uestalo bazirani na top-downmetodu, koji omoguuje uspjenu dekompoziciju problema, ralanjivanjem u seriju potproblema. Ovo ponavljanje se vri uspjeno, dok svaki potproblem ne bude lake reen.

1.2. Strukturna sistemska analiza softvera Strukturna sistemska analiza (SSA) je jedna potpuna metodologija za specifikaciju informacionog sistema, odnosno softvera. Ona se na razliite naine moe povezati sa metodama drugih faza u neku specifinu metodologiju celokupnog razvoja IS. Tako na primer, ona moe biti polazna osnova za metodu Strukturnog projektovanja programa, ili projektovanja logike strukture baze podataka metodom normalizacije, ili se moe tretirati kao metodoloki postupak dekompozicije nekog sistema na podsisteme sa ciljem da se, nalaenjem modela podataka podsistema i njihovom integracijom, doe do potpunog modela podataka posmatranog sistema. Upravo zbog mogunosti njene raznovrsne primene, metoda SSA se ovde tretira kao jedinstvena, samosvojna metoda, dok se u drugim materijalima pokazuje kako se ona koristi u pojedinim koracima standardne metodologije razvoja informacionih sistema. Potpuna, tana, formalna i jasna specifikacija IS, ili kako se to obino kae, specifikacija zahteva korisnika, zahteva koje budui sistem treba da zadovolji, predstavlja bitan preduslov za uspeno dalje projektovanje i implementaciju sistema. Oigledno je zbog ega specifikacija IS treba da bude potpuna i tana. Zahtev da specifikacija bude formalna iskazuje se zbog toga to je formalna specifikacija osnov za "transformaciono" projektovanje i implementaciju, za atomatizovano generisanje baze podataka i programa iz nje, odnosno za korienje CASE sistema. Zahtev da specifikacija bude jasna iskazuje se zbog toga to u specifikaciji IS u velikoj meri uestvuju korisnici sitema, ne informatiari, pa jezik specifikacije mora biti i njima prihvatljiv. Originalna SSA iji su tvorci Yourdon i njegovi saradnici (DeMarco i drugi) poseduje veoma jednostavne, grafike, pa samim tim i jasne koncepte. Ovde su svi ovi koncepti zadrani, a stroija formalizacija je dodata samo za opis strukture tokova i skladita podataka, da bi se obezbedio specifian transformacioni razvoj IS koji Standardna metodologija zagovara.2. Objektno orijentisna analiza i dizajn

Analiza je istraivanje problema a ne definisanje reenjaje reenja. Dizajn istie istie logiko reenje, kako sistem izvrava reenje.Objektno orijentisana analiza i dizajn omoguava svim uesnicima u razvoju aplikacije da na jednostavan i sveobuhvatan nain steknu uvid u analizu i implementaciju konkretnog problema. Shodno tome, javila se potreba za univerzalnim jezikom namenjenim za objektno-orjentisano modelovanje.Rezultat je UML (Unified Modeling Language) univerzalni jezik za modelovanje koji slui za specifikaciju, vizuelizaciju, konstrukciju i dokumentaciju razvoja sistema. Koristi se u razliitim fazama razvoja, od specifikacije zahteva do testiranja zavrenih, gotovih sistema.

2.1. Pojam OO analize Proces objektno orijentisana analiza (OOA) koriste se za definisanje kljucnih koncepata (kljucnih apstrakcija) i veza izmedju koncepata (mehanizama) vezanih za domen problema modeliranja realnog sistema objekata.Realni sistem objekata i njihove veze modeliraju se predstavljanjem odredjenog broja precizno definisanih koncepata. U softverskom inzenjerstvu, koncepti sluze za formiranje jasnog, preciznog i potpunog modela realnog sistema (njegove specifikacije), kao uslov za implementaciju modela naracunaru.[footnoteRef:3] [3: Hartmann, orevi, Goci, Uvod u objektno orijentisano modeliranje (Softverski inenjering).]

[footnoteRef:4] [4: [7] Muzafer Saraevi, Maovi Sead, Kamberovi Hamza: Tehnike Text Mining-a i njihova realizacija primenom objektno-orijentisane analize, 18. telekomunikacioni forum TELFOR 2010. ]

Za definisanje kljucnih apstrakcija ili koncepata potrebno je uociti termine koji opisuju karakteristicne entitete domena. U okviru aktivnosti Izrada konceptualnog modela definisu se koncepti, asocijacije izme|u koncepata, atributi I recnik podataka. Za radni primer koji se posmatra, kljucne apstrakcije su: Osoba, Isplata, Sertifikat i sifrarnici (slika 2.). Definisan koncept odgovara modelu objekti veze, koji se definise u tradicionalnom postupku modeliranja podataka.Za aktivnost Izrada dijagrama sekvenci potrebno je izvrsiti generisanje I dokumentovanje dijagrama sekvenci za odgovarajue slucajeve upotrebe po kojima se realizuju interakcije izme|u programskih objekata. Dijagram sekvenci je dobar za shvatanje scenarija u pocetnim fazama razvoja sistema, pre nego sto se uoce protokoli pojedinacnih klasa. Dijagram sekvenci se fokusira na doga|aje, jer se na taj nacin mogu uociti i granice sistema. Treci bitan element je aktivnost Definisanje ugovora o izvrsenju operacija, kojom se defini{u odnosi dva ili vise koncepata, kao i opis interakcija dva ili vise objekata koji kroz tu iteraciju ostvaruju neki od tih zahteva. Identifikovani mehanizmi se koriste u okviru sledece faze, za objektno orijentisan dizajn, kao metoda ili procedura (funkcija clanica buducih klasa). Granica izmedju objektno orijentisane analize (OOA) i objektno orijentisanog dizajna (OOD) pomalo je maglovita. Iako obe analize posmatraju sistem iz razlicitog ugla, izmedju njih dolazi do malog preplitanja. Na slici 2. je prikazano stablo aktivnosti vezano za fazu Objektno orjenitisana analiza.

Slika 2. Stablo aktivnosti faze Objektno orijentisana analizaIzrada konceptualnog modela Konceptualni model opisuje domen realnog sistema i ne predstavlja model softverskog re{enja. Formalno gledano, koncept je ideja, predmet, objekt I dr. Konceptualni model se u notaciji UML-a opisuje dijagramom klasa bez operacija (sto odgovara modelu objekti veze) ili sa samo nekim elementarnim operacijama.Tako se c esto i naziva - dijagram klasa bez operacija.2.2. Definisanje koncepta Konceptom se opisuju stvari u realnom sistemu i na osnovu njih se kasnije, u fazi Objekto orijentisanog dizajna, definisu odgovaraju}e klase i objekti koji definisu odgovaraju}a softverska resenja. Koncept se definise preko odgovarajucih simbola, tekstualnog opisa i primera na kojima se koncept primenjuje (slika 3).

Slika 3. Definisanje koncepata

3. UML modelovanje

UML je sistem obeleavanja koji je postao standardan u svetu razvoja sistema. UML predstavlja kolekciju najboljih uspenih inenjerskih metoda kojima je, iskustveno dokazano, pojednostavljeno modelovanje velikih i sloenih sistema.

3.1. UML (Unified Modeling Language)UML ili Unified Modeling Language je grafiki jezik za vizueliziranje, specificiranje, konstruisanje i dokumentovanje sistema programske podrke koji je postavljen kao standard od OMG-a.Ako malo fleksibilnije elimo to da objasnimo moramo naglasiti da UML nije programski jezik, to je grafiki jezik.Njime nije samo mogue modelovati neki program, ve je mogue pratiti razvoj neke graevine, izraditi plan uzgajanja voa u vonjaku itd.[footnoteRef:5] [5: Jon Oldevik, UML Model Transformation Tool- Overview and user guide documentation. umt-qvt.sourceforge.net/docs/UMT_documentation_v08.pdf]

Ako napravimo poreenje izmeu graevinara i programera, moemo rei da je UML standardizovani jezik za izradu nacrta programa.[footnoteRef:6] [6: Muzafer Saraevi, Sead Maovi, Primena UML modelovanja i PHP jezika u izradi web aplikacije za e-uenje (Oktobar, 2010). Univerzitet METROPOLITAN - Elektronsko uenje na putu ka drutvu znanja 2010, Beograd]

Postoji sedam ciljeva kojima UML kao jezik tei:1. Pruiti korisniku brz jezik za vizuelno modelovanje kojim e moi u relativno kratkom vremenu napraviti i razmenjivati modele sa odreenim znaenjem.2. Pruiti korisniku mogunost proirenja i stvaranja specijalizovanih delova.3. Biti nezavisan od programskih jezika i razvojnih procesa4. Pruiti formalne osnove za razumevanje jezika za modelovanje5. Podsticanje rasta i razvoja objektno orijentisanih programskih jezika6. Podrka visoko pozicioniranih razvojnih pojmova kao to su saradnja, okvirni rad, uzorci i komponente7. Integrisanje i nadopunjavanje praktinim iskustvom.UML je razvijen sa ciljem da pojednostavi veliki broj objektno orijentisanih razvojnih metoda.3.2. Struktura UML-a Da bi lake razumeli ta je UML i emu slui moramo znati od ega se on sastoji. UML se sastoji od niza pogleda na arhitekturu (Architectural Views) koji zavise od problema i reenja, a dele se na: - Pogled korienja (use case view) - Logiki pogled (logical view) - Pogled paralelnog rada (concurrency view) - Pogled na komponente (component view) - Pogled postavljanja (deployment view)Pogled korienja -pokazuje problem i reenje onako kako ga vide oni koji postavljaju problem.Logiki pogled pokazuje strukturnu dimenziju problema i reenja Pogled paralelnog rada pokazuje dimenziju ponaanja problema i reenja, a naziva se jo i dinamiki pogled.Pogled na komponente pokazuje strukturu i ponaanje realizacije reenja, a naziva se jo i razvojni pogled.Pogled postavljanja pokazuje strukturu i ponaanje domena u kome je reenje ostvareno, a naziva se jo i fiziki pogled ili pogled na razmetaj.Svaki od ovih pogleda opisan je pomou UML dijagrama. Njih postoji devet, a svaki pogled je opisan sa jednim ili vie dijagrama. UML dijagram je grafika prezentacija skupa elemenata.Dijagrami se crtaju kako bi se vizuelizirao sistem iz razliitih perspektiva.Za gotovo sve sisteme, osim onih vrlo jednostavnih, dijagrami predstavljaju poboljani prikaz elemenata koji ine sistem.Isti elementi mogu se pojaviti u svim dijagramima.Teoretski, dijagram moe sadravati bilo koju kombinaciju stvari i relacija u modelu. U praksi, meutim, samo se mali broj kombinacija pojavljuje, i one su konzistentne sa pet najkorisnijih pogleda koje smo prethodno nabrojali.UML dijagrami:1. Dijagram sluajeva korienja (use case diagram)2. Dijagram klasa (class diagrams)3. Dijagram objekata (object diagrams)4. Dijagram redosleda (sequence diagrams)5. Dijagram saradnje (collaboration diagrams)6. Dijagram stanja (statechart diagrams)7. Dijagram aktivnosti (activity diagrams)8. Dijagram komponenti (component diagrams)9. Dijagram postavljanja (deployment diagrams)

STRUKTURA UML-aModel Driven Architecture (MDA) UML se moe definisati kao grafiki jezik za vizuelizovanje, specifikovanje, konstruisanje i dokumentovanje projekata i programa u sistemu u kome se intenzivno primenjuje softver. Objektno orijentisani (OO) jezici modelovanja nastaju sredinom 1970. i kasnih 1980. Namenjeni su OO analizi i projektovanju. Booch, Jacobson iRumbaugh su zaetnici su tvorci ovog koncepta koji se i dan danas aktivno koristi. Kritian period za razvoj UML poinje sredinom 1990-tih kada su se ova trojica udruila. Oni su zapoeli unifakiciju svojih tehnika (metoda) i stvaranje opteg prihvatljivog jezika.Rad na UML-u zvanino je zapoet u oktobru 1994 a prva verzija UML 0.9 objavljena je u junu 1996. nakon koje dobijaju podrku od mnogih istaknutih kompanija (IBM, DEC, HP,Microsoft, Oracle, TI, ...)UML 1.0nastaje 1977. i ponuen je za standardizaciju grupi OMG (ObjectMenagmentGroup) u januaru 1977.Nove firme se pridruuju podrci UML-uiu junu 1977. nastaje verzija UML 1.1.Od novembra 1977. odravanje UML-a preuzima OMG-ova grupa za reviziju RTF (Revision Task Force) i u junu 1998. objavljuje verziju UML 1.2, a iste godine u jesen 1998. RTF objavljuje verziju UML 1.3.Prveznaajnije razlike pojavljuju se u verziji UML 1.4.iz2001. koja je kasnije posluila kaoosnova za UML 2.0 koji je konano oformljen 2003.UML omoguava da se specifikuju, vizuelizuju i dokumentuju modeli softverskih sistema (ukljuujui njihovu strukturu i dizajn) u skladu sa postavljenim zahtevima. (Mogu se modelirati i nesoftverske aplikacije.) UML je nezavisan od metodologije koja se koristi za skupljanje i analizu aplikacionih zahteva, takoe je nezavisan od platforme za koju se vri modelovanja iako se moe povezati sa konkretnim platformama.UML je usko povezan sa:Model Driven Architecture(MDA) na kome je i baziran.Da bi se razumeo UML zahteva se poznavanje:osnovnih blokova za izgradnju UML-a;pravila za spajanje blokova u celine;opih mehanizama koji se primenjuju u UML-u.ta moemo uraditi pomou UML-a?UML 2.0 definie 12 tipa dijagrama podeljena u 3 kategorije:1. Strukturni dijagrami (4 tipa dijagrama) (klasni, objektni, komponentni i razvojni)2.Dijagrami ponaanja (5 vrsta dijagrama) (case-dijagrami, sekvencni, dijagramiaktivnosti, kolaboracionii dijagrami stanja)3.Dijagrami upravljakih modela (3 tipa dijagrama) (paketi, (podsistemi i modeli)).4. Statiki, dinamiki i fiziki model sistema

UML je sredstvo modeliranja koje je upotrebljivo i za oveka i za mainu i da se uspostavi eksplicitna veza izmeu koncepata i izvrnog koda.Takodje cilj je da se predstavi kompletan sistem, ne samo softverski deo, korienjem objektno-orjentisanih koncepata. Analiza i reavanje problema na ovakav nain ima mnoge prednosti.UML standard koji se primenjuje kod objektno orijentisanog pristupa predvia odgovarajue poglede na sistem, s tim to se u svakom pogledu sistem moe opisati sa statikog (strukturnog) i dinamikog aspekta. Koristi se za konstrukcija software-a kod koga treba odraditi plan ,nudi mogunost vizualizacije u vie dimenzija i nivoa detalja i prikladan je za nadogradnju nasljeenih, starih sistema. Klasa predstavlja skup atributa i operacija kojima se opisuje struktura i ponaanje objekata posmatrane klase.4.1. Statiki model sistema Statikim modelom opisuju se entiteti sistema.Dijagram klasa i dijagram objekata su dijagrami pomou kojih se prikazuje statika struktura sistema. Entiteti i veze izmeu njih predstavljeni su klasama i vezama izmeu klasa prikazanim na dijagramu klasa.Statiki : Dijagram sluajeva korienja (Use-Case Diagrams) Dijagrami klasa i objekata (Class & Object Diagrams)

4.2. Dinamiki model sistema

Dinamikim modelom se opisuju karakteristike sistema, odnosno pojedinano ponaanje objekata u sistemu, kao i ponaanje kompletnog sistema koji se modelira. Dinamike karakteristike sistema opisuju se: [footnoteRef:7] [7: Muzafer Saraevi ,Objektno - orijentisano programiranje i modelovanje, JAVA i UML. Univerzitet u Novom Pazaru 2011, Novi PazarJon Oldevik, UML Model Transformation Tool- Overview and user guide documentation. umt-qvt.sourceforge.net/docs/UMT_documentation_v08.pdf]

* objektima,ulogama koje objekti mogu imati u sistemu, * vezama koje vae izmeu objekata, * porukama koje objekti meusobno prosljeuju i operacijama koje se izvravaju kao odgovor na primljene poruke, * stanjima u kojima se objekti mogu nai i promjenama stanja kao odgovor na primljene poruke.

Za predstavljane dinamikih modela sistema koriste se UML dijagrami, i to:

Dijagrami ponaanja (Behavior): dijagrami stanja (Statechart Diagrams) dijagrami aktivnosti (Activity Diagrams) Dijagrami interakcije (Interaction): dijagram sekvenci (Sequence Diagram) dijagram saradnje (Collaboration Diagram)

Dijagramom sekvenci mogue je prikazati komunikaciju izmeu skupa objekata, ostvarenu pomou poruka koje objekti meusobno razmjenjuju u cilju ostvarivanja oekivanog ponaanja.Slino dijagramu sekvence, dijagram kolaboracije opisuje interakciju izmeu objekata kroz niz poruka pri emu akcenat nije na vremenu, kao kod dijagrama sekvence,ve na relacijama izmeu objekata.Slue za prikaz sloenijih interakcija izmeu objekata i njihove meusobne povezanosti.Fokusira se na kolaboracionoj strukturi i organizaciji izmeu objekata.Modeluje link izmeu objekata. Sastoji se od objekata, linkova, poruka.Dijagrami stanja slue za modelovanje dinamikih aspekta sistema.* Stanje je situacija u ivotu objekta kada on zadovoljava neki uslov. Objekat ostaje u nekom stanju u konanom vremenskom intervalu.* Dijagram stanja pokazuje odvijanje upravljanja od stanja do stanja. Obino modeluju objekte koji reaguju.* Tranzicija pokazuje kretanje od jednog stanja ka drugom.To je relacija izmeu 2 stanja koja kae da e objekat u jednom stanju izvriti neke akcije pa e ui u drugo stanje. Dijagrami aktivnosti slue za modelovanje dinamikih aspekata sistema. Oni slue da prikau: * proceduralnu logiku, * poslovni proces ili tok posla. Slini su blok-dijagramima za opis algoritama (dodatno, podravaju paralelno ponaanje).Dijagrami aktivnosti mogu se tretirati kao specijalan sluaj dijagrama stanja.U vorovima ovog dijagrama prikazane su akcije. Akcije se implemetiraju kao metodi klasa ili neke podaktivnosti.4.3. Fiziki model sistemaFiziki model sistema opisuje konkretnu softversku i hardversku kompoziciju.Za predstavljane fizikih modela sistema koriste se UML dijagrami, i to: Dijagrami implementacije (Implementation): dijagram komponenti (Component Diagram) dijagram realizacije (Deployment Diagram) Dijagrami implementacije prikazuju strukturu programskog koda i strukturi implementacije u realnom vremenu.Dijagram komponenata prikazuje : -(komponente programskog i binarnog koda i izvrne komponente)-fiziku strukturu koda u terminima kodnih komponenti (komponente u vremenu prevoenja,u vremenu povezivanja, vremenu izvravanja ili u nekoliko od navedenih vremena).

Generisanje Java izvornog koda iz UML dijagrama i obrnuto

Postoji mogunost generisanja koda iz UML dijagrama klasa u java izvorni kod.To se moe odraditi u STAR UML-u ili u Visual Paradigm-u. STAR UML je alat za kreiranje raznih vrsti dijagrama u UML-U. On omoguava automatsko generisanje JAVA koda na osnovu dijagrama I obrnuto, generisanje dijagrama u skladu sa odreenim JAVA kodom.Postupak kod STAR UML-a je sledei: Da biste generisali JAVA kod , idite na tools na meniju pri vrhu, izaberite JAVA , pa Generate Code. Iz dialog box-a, izaberite model, verovatno nazvan model1 i idite na next. Izaberite opciju select all i idite na next Izaberite zeljeni output direktorijum i idite na next U Option setup obavezno ekirajte Generate the Documentation by JavaDoc i Generate empty JavaDoc. Ostale opcije ne treba ekirati STAR UML e nakon ovog generisati kod na osnovu naih dijagrama. Za izlazak idite na FINISH

Moete u skladu sa gore opisanim da dopunite kod da biste dodati eljene i potrebne funkcionalnosti. Pogledajte klasu Pravougaonik sa klasama naslednicama (kvadrat i puni_Pravougaonik). Navedene klase smo radili u odeljcima klase i objekti i nasleivanje.Sledi dijagram klasa iz kog se moe izgenerisati struktura:

5. Alati za UML modelovanje

UML alati ili alati za UML modelovanje su softverske aplikacije koje podravaju neke ili sve sisteme biljeenja i semantike povezane sa Unified Modeling Languge-om koji je industrijski standardni jezik za modeliranje za softversko inenjerstvo.[footnoteRef:8] [8: Muzafer Saraevi, Sead Maovi, Esad Meedovi, Application of object-oriented analysis and design in navigation systems and transport networks (Sept, 2010), 10th International Conference "Research and Development in Mechanical Industry" RaDMI 2010]

5.1. UML alati podravaju sljedee vrste funkcionalnosti:

Grafiki dijagrami Kruno (round-trip) inenjerstvo Generiranje koda Obrnuto inenjerstvo Model transformacije Dokumentacija Kontrola verzijeDiagramming - Crtanje i editiranje UML dijagrama, te na taj nain implicitno stvaranje i menjanje UML modela. No veina takvih alata obavlja i bar neke od sledeih dodatnih funkcija. Forward Engineering generiranje delova programskog koda u odabranom programskom jeziku na osnovu UML modela. Reverse Engineering generiranje UML modela na osnovu programskog koda. Round-Trip Engineering stalna sinkronizacija UML modela s programskim kodom i obratno.Danas postoji 50-tak besplatnih i 50-tak komercijalnih UML alata (vidi Wikipedia).Oni se razlikuju po mogunostima i stupnju integriranosti s odreenim programerskim alatima.

5.2. Star UMLSTAR UML je alat za kreiranje klasnih dijagrama i ostalih vrsti dijagrama u UML-U.U textu ispod je opisan kratak tutorijal u vezi kreiranja klasnih dijagrama u JAVI.

STAR UML (SU) je alat za kreiranje raznih vrsti dijagrama u UML-U. On omoguava automatsko generisanje JAVA koda na osnovu dijagrama i obrnuto , generisanje dijagrama u skladu sa drenenim JAVA kodom.SRAT UML se koristi da bi se kreirao program. Paljivo sledimo korake ispod. STAR UML e generiati kod koji reflektuje strukturu klasa, ali ne i specifine akcije bilo kojih objekata. Zbog toga , nakon kreiranja dijagrama preko SU, dobijeni kod e samo trebati da se uini malo funkcionalnijim u tom smistu to e morati da se dopie kod koji predstavlja akcije izmenu klasa[footnoteRef:9]. [9: Grupa autora: Argo UML - an UML Tool with Cognitive Support. Open Source Software Engineering Tools. http://argouml.tigris.org/]

[footnoteRef:10] [10: ]

1 korak INSTALACIJADa bi poeli , STAR UML mora biti instaliran. Ako nije , ovaj softverski paket je slobodan ( free ), licenciran pod GPL ( GNU public licence ), opensource i moe se besplatno skinuti sa INTERNETA. Jedna od adresa je -http://staruml.en.softonic.com/

2 korakKada je STAR UML instaliran , startujte program dvostrukim klikom miena ikonicu.

3 korakNakon startovanja programa , trebalo bi da se pojavi templejt stranica"New Project by Approach" koja ima izgled kao na slici ispod. Ukoliko je tako , izaberite EMPTY PROJECT i kliknite OK.

4 korakU MODEL EXPLORERU sa desne strane izaberemo UNTITTLED .

5 korakU sladu sa opisom na slici ispod , izaberemo MODEL i opciju ADD I izaberemo DESIGN MODEL.

6 korakKao na slici ispod , u MODEL EXPLORER panelu izaberemo opciju ADD DIAGRAM, pa nakon toga CLASS DIAGRAM.

7 korakIdemo na MODEL PROFILE u okviru MODEL EXPLORERA , da bistepodesili profil modela koji emo koristiti. Budimo sigurni da ste ukljuili JAVA PROFILE. Grafiki prikaz je na slici ispod.

8 korakSauvamo projekat odmah da ne bi dolo do neeljenih situacija. Izaberemo FILE, SAVE AS i odaberemo ime i lokaciju za projekat. Nakon toga, projekat bi trebalo da ima izgled kao na slici ispod.

9 korakSada trebamo poeti stvarni rad sa dijagramom koristei TOOLBOX, pozicioniran na levoj strani ekrana. Izanerite class i uradite i uradite levi klik mia bilo gde u prozoru. Ovo bi trebalo da stvori novu klasu nagenerisanim programskim imenom. Promenite joj ime u circle.

10 korakDodadajemo atribut ( ili polje ) kreiraniom circle-u, desnim klikon objekta na dijagramu, biranjem ADD MENU, pa Attribute opcije. Ukucamo za name_radius.

Specificirajte tip podatka u Properties panelu da bude double Vidljivost atributa je po automatski podeena na private, ukolikoima potrebe moemo je promeniti , ali mi emo na na primer ostaviti kako jeste.

11 korakPonovite isti postupak pri kreiranje klasa RECTANGLE sa privatnim atributima _height i _width.

12 korak Kreirajte interfejs ISHAPE. Iz toolbox-aizaberite opcijuInterface i kliknite negde na paletu. Promenite programskigenerisano ime naISHAPE.

U toolbaru na vrhu izaberemo Stereotype Display i promenite jos vrednost na none. Ovo e promenimo prethodni cirkularni oblik upravougaoni oblik. Isto, u toolbaru pri vrhu, de-selektujte Suppress Operations opciju.

Dodajemo getArea metod tipa double u okviru ISHAPE interfejsa. Ovo se postie desnim klikom na interfejs biranjem opcije addmenu i klikom na crveno Operation dugme. Ime je kao to jeVe reeno getArea.

DA bismo odabrali (povratni) tip metode, u MODEL EXPLORERU , desni klik na motod koji smo upravo kreirali, izaberimo Add Parameter, pa u Properties box za ime nita ne menjamo, za Direction kind izabereno return , a za tip double.

13 korakDa bi rectange i circle implementirali interfejs ISHAPE, izaberite realization strelicu iz toolboxa i poveire rectangle i circle saISHAPE.

14 korakKako circle i rectangle implementiraju ISHAPE interfejs, obe moraju imati isto ponaanje (metode) kao taj interfejs. U MODEL EXPLORER TOOLU iskopiramo getArea metod iz ISHAPE u circle i rectangle Ove metode u cirlce i rectangle nisu abstraktne, ali logiki gledano izvravaju istu akciju (raunaju povrinu) pa se treba unekirati opcija IsAbstract

15 korakDijagram treba da izgleda kao na slici iznad

16 korakDodajemo klasu Privatan atribut _price tipa double Javna metoda getPrice tipa double

17 korakDa bi program imao referencu sa ISHAPE , izaberemo klasu Izaberite vezu DirectedAssociation iz toolboxa i odpizza ka ISHAPE izvrite povezivanje Nakon povezivanja, kliknite na strelicu i promenite jos ime sa End1.Aggregation na AGGREGATE

19 korakKonstruktori su posebni delovi koda kada elimo da inicijalizujrmo instance klase

Da bi dodali konstruktor, uradimo desni klik na Pizza i iz Add menija izaberite Operation. Sada dodajte parametre, tipa double za price i ISHAPE za shape Dodajte circle konstruktor sa parametrom double radius Dodajte rectangle konstruktor sa parametrima double height i double Width

20 korakDa bismo generisali JAVA kod , idite na tools na meniju pri vrhu, izaberiteJAVA , pa Generate Code.

Iz dialog box-a, izaberite model , verovatno nazvan model1 I idite na next Izaberemo opciju select all i idite nanext Izaberemo zeljeni output direktorijum i idite nanext U Option setup obavezno ekirajte Generate the Documentation by JavaDoc i Generate empty JavaDoc. Ostale opcije ne treba ekirati STAR UML e nakon ovog generisati kod na osnovu naih dijagrama. Za izlazak idemo na finish. Moemo u skladu sa gore opisanim da dopunimo kod da bismo dodali eljene i potrebne funkcionalnosti.

5.3. Visual Paradigm for UML

Visual Paradigm for UML- je alat koji podrava UML-a 2.1 .Pored modeliranja i UML-podrke, obezbeuje modeliranje poslovnih procesa (BPMN), objektno-relacionog mapiranja generatora za Javu, NET i PHP-a.Prednosti su: mogunost generisanja kda iz klase modela, a takoe i relacione strukture baze podataka (tabele) . Generisani kod se sastoji od klase zasnovane na dijagramima klasa i kontrolera klase koji prua itanje, pisanje i brisanje funkcije za baze podataka. Jo neki od primera UML razvojnih alata su: Rational Rose, Microsoft Visio, Borland Together, Appolo for Eclipse, Enterprise Arhitect, Eclipse Uml2Tools, ArgoUML, MonoUML, Rational Software Architect, MagicDraw UML, PowerDesigner, Visible Analyst for UML, MetaUML, UmlDesigner itd.Visual Paradigm for UML je proizvod tvrtke Visual Paradigm International sa sjeditem u Hong Kongu. Rije je o jednom od vodeih komercijalnih UML alata koji zadovoljava najvie profesionalne zahtjeve. Dostupan je u donekle okljatrenom no besplatnom community izdanju koje emo mi za sada koristiti. ak i to okljatreno izdanje u potpunosti podrava UML modeliranje, dakle crtanje i editiranje UML dijagrama. No svaki od dijagrama mogue je tampati ili preko clipboarda pretvoriti u JPG sliku te ubaciti u neki dokument.

Glavni prozor izgleda otprilike ovako:

Glavni prozor je podeljen u 5 delova.1.Izbornik i alatne trake. 2.Hijerarhijski prikaz sadraja otvorenog projekta. 3.Razni pomoni prikazi. 4.Radni prostor, obino prikazuje jedan dijagram. 5.Poruke.

Crtanje dijagrama odvija se slino kao u MS Paint-u.Taj element se pomou mia smjeta na dijagram, rastee, skuplja i slino. Alat razumije sintaksu dijagrama, te nam prilikom crtanja sugerira poteze, ili pak zabranjuje neispravne poteze. Alat svrstava dijagrame i dijelove tih dijagrama u trenutno otvoreni model, a model u trenutno otvoreni projekt.Dakle da bi mogli raditi, potrebno je stvoriti ili otvoriti projekt i model u njemu. Model se zapravo moe izbjei (tada se sve sprema neposredno u projekt), no to se ne preporua.Dobro je imati barem dva modela unutar projekta: za analizu, odnosno za oblikovanje. Cijeli projekt sa svim ukljuenim modelima i dijagramima pohranjuje se na disku kao jedna datoteka. Nalazi se u radnom prostoru (workspace - ustvari direktoriju) kojeg je korisnik odabrao.5.4. Rational Rose Familija programaRational Rose projektovana je tako da programerima obezbedi kompletalata za vizuelno modelovanje koji omoguuju razvoj robusnih, efikasnih reenja za stvarneposlovne potrebe. Proizvodi Rational Rosea koriste opti univerzalni standard i timepribliavaju modelovanje kako programerima koji modeluju logiku aplikacije, tako ineprogramerima koji bi hteli da modeluju poslovne procese.

Rational Rose je softver za vizuelno objektno orjentisano modelovanje koji omoguava formiranje, analizu, projektovanje, pregled i izmenu modela, manipulisanje njima i implementaciju softverskih sistema iz objektnih modela. Rational Rose podrava notacije UML, Booch i OMT kojima se dokumentuje arhitektura sistema.5.5. Kreiranje i pamenje modela Kada se prvi put pokrene Rational Rose pokazae se dijalog za kreiranje Rose modela, slika 1.1. Iz ovog dijaloga moe se uitati model koji ve postoji ili kreirati model korienjem nekog od postojeih ablona. Da bi se kreirao nov model, bez upotrebe postojeih ablona, treba izabrati opciju Cancel.[footnoteRef:11] [11: MartinFowler:UML ukratko,Mikroknjiga,Beograd,2004 ]

Slika 1.1 Dijalog za kreiranje Rose modela

Kao i kod drugih aplikacija, dobra je praksa da se model, na kome se trenuto radi, periodino snima na disk. Rose model i svi dijagrami, objekti i drugi elementi se pamte u jednoj datoteci sa ekstenzijom .mdl. Da bi se snimio model treba izabrati opciju File, a zatim opciju Save iz menija. Prilikom prvog snimanja modela neophodno je i dati ime modelu i eventualno odrediti mesto gde e model biti snimljen. 5.6. Delovi ekrana Rational Rose-aU toku kreiranja Rose modela, na ekranu, prikazanom na slici 1.2, mogu se videti pet osnovnih delova: pretraiva - koristi se za brzu navigaciju kroz model; prozor dokumenatcije - koristi se za pregled ili auriranje dokumentacije elemenata modela; log prozor - korsiti se za prikaz greaka, izvetaja i rezultata razliitih komandi; palete alata - koriste se za brz pristup esto korienim komandama; prozor dijagrama - koristi se za prikaz ili obradu jedno ili vie korienih UML dijagrama.

Slika 1.2 Rose interfejs5.7. PretraivaPretraiava je hijerarhijska struktura koja se koristiti za lako kretanje kroz Rose model. ta god da se doda u model, (akter, sluaj upotrebe, klasa, komponenta...), bie prikazano u prozoru pretraivaa. Pretraiva je prikazan na slici 1.3. Pomou pretraivaa mogu se: dodati neki elementi u model (sluaj upotrebe, akter, klasa, komponenta, dijagram, itd.) pregledati postojei elementi u modelu pregledati postojee veze izmeu elementa modela pomerati elementi modela preimenovati elementi modela dodati elementi modela na dijagram povezati datoteke ili URL za neki element grupisati elementi u pakete uitati dijagrami.Kao to se iz pretraivaa moe videti, model u Rose-u organizovan je u pakete koji predstavljaju osnovne prikaze sistema. Ti prikazi su: prikaz sluajeva upotrebe (Use Case View), logiki prikaz (Logical View), prikaz komponenata (Component View) i prikaz rasporeivanja (Deployment View).

Slika 1.3 Pretraiva RoseSvaki prikaz standardno sadri dijagram pod imenom Main. U tabeli 1.1 se nalazi lista svih ovih prikaza i elemanata koje oni mogu sadre.

Tabela 1.1 Prikai u Rational Rose-u5.8. Prozor dokumenatcije U prozoru dokumentacije moe se formirati, menjati ili samo pregledati dokumentacija za bilo koji izabrani element modela. Sve to se napie u prozoru dokumentacije pojavie se u vidu komentara u kodu koji se moe generisati na osnovu modela, kao i u izvetajima koji se takoe mogu generisati iz Rose-a. Prozor dokumentacije prikazan je na slici 1.4.

Da bi dodali dokumentaciju za odreeni element treba uraditi sledee:1. Izaberite element u stablu pretraivaa.2. Postavite kursor u prozor dokumentacije.3. Unesite dokumentaciju.

Slika 1.4 Prozor dokumentacije

5.9. Palete alataPalete alata u Rational Rose-u omoguavaju brz pristup komandama koje se esto koristite. Postoje, naelno, dve palete alata u Rose-u: standardna paleta alata i paleta alata dijagrama. Standardna paleta alata nalazi se u gornjem delu ekrana i sadri opcije koje se mogu koristiti u svim dijagramima. Paleta alata dijagrama nalazi se izmeu pretraivaa I prozora dijagrama i sadri opcije koje se menjaju u zavisnosti od UML dijagrama koji se kreira. Svaka od paleta alata moe da se modifikuje:

1. Desni klik na eljenu paletu.2. Izaberite opciju Customize.3. Izaberite odgovarajui element a zatim opciju Add iliRemove kako bimodifikovali paletu alata, kako je prikazano na slici 1.6.

Slika 1.6 Modifikacija palete alata5.10. Prozor dijagrama U prozoru dijagrama, prikazanom na slici 1.7, mogu se videti UML dijagrami Rose modela. Kako se vre promene na dijagramu, automatski se vre promene i u pretraivau i slino, ako se promene vre u pretraivau istovremeno se auriraju odgovarajui dijagrami.

Slika 1.7 Prozor dijagrama

5.11. Osnovni elementi modela

Svaki Rose model se sastoji od elemenata, pri emu se svaki element, u skladu sajezikom UML, moe svrstati u jednu od tri kategorije:

*stvari (things) - paketi, akteri, sluajevi upotrebe, klase, komponente...*relacije (relations) - zavisnosti, asocijacije, generalizacije...*dijagrami (diagrams) - klasa, sluajeva upotrebe, kolaboracije...

Da bi se kreirao eljeni element (paket, akter, sluaj upotrebe, klasa, dijagram...):1. Desnim tasterom mia pritisnite odgovarajui paket u stablu pretraivaa.2. Iz prikazanog menija birajte opciju New a zatim odgovarajui element,kako je prikazano na slici 1.8.3.Dok je novi element izabran, dodelimo ime.

Slika 1.8 Kreiranje elementa

Izmeu ostalog, elementi modela se mogu u okviru pretraivaa premetati, na primer, u novo kreirani paket:1. Izaberite element modela koji elite da premestite.2. Prevucite taj element u odredini paket.

Specifikacija se prikazuje pomou kartica, tako da je kretanje kroz nju lako. Na primer, ako je potrebno dodati nov atribut ili operaciju klasu:

1. Otvorite specifikaciju klase.2. Izaberite karticu Attributes iliOperations.3. Pritisnite desni taster mia da bi se prikazao meni.4. Izaberite stavku menija Insert, ime se dodaje atribut ili operacija, slika 1.10.5. Dok je novi atribut ili operacija izabrana, dodelite mu ime.

Slika 1.10 Prozor specifikacije sa karticom Operations

6. Primena UML modelovanja u dizajnu softvera U ovom poglavlju sam opisala primenu UML modelovanja u dizajnu softvera, uzela sam za primer projekat koji sam odradila kao praktini deo ovog rada.5.1. Analiza gotovih UML projekata i njihova funkcionalnostU ranim danima kompjuterizacije programeri se nisu pouzdali u dubokosene analize problema na stvari. Ako su uinili bilo kakve analize bilo je tipino na paretu papira. esto su pisali programe od temelja prema gore kreirajui kod dok su radili. Iako je ovo dodalo dah romanse i odvanosti procesu, to je neispravno u dananjem visokorizinom poslovnom svijetu. Danas, dobro promiljen plan je neophodan. Klijent mora razumjeti to e tim za razvijanje napraviti i uputiti na promjene ako se tim nije potpuno posvetio klijentovim potrebama (ili ako se klijent predomisli u procesu). Uz to razvoj je tipino timski rad, stoga svaki lan tima mora znati gdje je njegovo ili njezino mjesto u timu.[footnoteRef:12] [12: Gotov Projekat korien za analizu UML funkcionalnosti.]

Kako svijet postaje zamreniji, kompjuterski sistemi moraju poveavati sloenost. esto upliu mnogobrojne dijelove hardvera i softvera, odaslano preko velikih daljina, povezano sa bazom podataka koja sadri brdo infiormacija. Ako elite stvoriti sistem koji e vas odvesti u sledei milenijum tj. kako dovesti do sloenosti? Njihov klju je organizovati stvaralaki proces na nain da analitiari, klijenti, programeri i drugi ukljueni u sistem razvoja mogu razumjeti i sloiti se jedni s drugima. UML osigurava organizaciju. Kao to bi ste voljeli sagraditi sloenu strukturu kao zgradu bez da prvo ne razvijete nacrt, ne biste gradili komplicirani sistem da dobijete zgradu, a da prvo ne napravite detaljan plan. Plan mora biti takav da se u njega razumijete kao kad arhitekt predoi shemu zgrade onome koji plaa zgradu. Taj plan dizajna bi trebao biti rezultat paljivih analiza klijentovuh potreba. Kratki vremenski rokovi za razvoj su druga slika suvremenog sistema razvoja okruenja. Kad se rokovi nagomilaju jedan na drugi solidan dizajn je od potpune vanosti. Kad jedna kompanija potrai usluge od druge kompanije, njihova nova organizacija mogla bi bitno promjeniti njihova stajalita u razvoju projekta. Najbolji projekt bit e presudan za preokret. Ako je dizajn dobar, promjene u izvrenju proi e glatko. Potreba za dobar dizajn dovela je do potrebe obiljeavanja koji e analitiari, razvijai i klijenti prihvatiti kao standard, kao obiljeje u ematskom dijagramu krunih pomonika kao standard za elektroniki ininjering. UML je to obiljeje.Zakljuak

U toku izrade ovog rada upoznala sam se sa alatima i okvirima koji znatno olakavaju razvoj softvera i omoguavaju bri razvoj aplikacija, bez preterane brige o detaljima.UML je sistem obeleavanja koji je postao standardan u svetu razvoja sistema. On je rezultat rada Booch-a, Rumbaugh-a i Jacobson-a. Sadravajui skup dijagrama, UML prua standard koji omoguuje da sistemski analitiar izgradi konstrukciju sistema pristupanog klijentima, programerima i svima ukljuenim u proces razvoja. Neophodno je imati sve ove dijagrame jer svaki je u vezi s drugim, ulagae u sistemu. UML model govori TO sistem treba initi a ne KAKO treba raditi. Analiza i reavanje problema pomou UML-aima mnoge prednosti. UML standard koji se primenjuje kod objektno orijentisanog pristupa predvia odgovarajuce poglede na sistem, s tim to se u svakom pogledu sistem moe opisati sa statikog (strukturnog) i dinamikog aspekta. Koristi se za konstrukcija software-a kod koga treba odraditi plan ,nudi mogunost vizualizacije u vie dimenzija i nivoa detalja i prikladan je za nadogradnju nasljeenih, starih sistema. Prednosti UML-a su: otvoren standard, obuhvata celi ivotni ciklus oblikovanja programske potpore, temeljen je na iskustvu i potrebama zajednice oblikovatelja i korisnika programske potpore, podravaju ga mnogi alati. UML notacija nudi razlicite dijagrame za razlicite svrhe, on je moan i bogat opcijama.UML dijagrami imaju jasno definisanu semantiku, podrava apstrakcije, i ima iroku primenu.UML predstavlja budunost - trend njegovog razvoja i upotrebe e se nastaviti.

Literatura

[1] Muzafer Saraevi, Objektno - orijentisano programiranje i modelovanje, JAVA i UML. Univerzitet u Novom Pazaru 2011, Novi Pazar[2] Jon Oldevik, UML Model Transformation Tool- Overview and user guide documentation. umt-qvt.sourceforge.net/docs/UMT_documentation_v08.pdf[3] Sead Maovi, Muzafer Saraevi , Hamza Kamberovi, Objektno-orijentisani pristup u simulaciji i metodologija simulacionog modeliranja, (Sept.2010). Festival informatikih dostignua - INFOFEST 2010 Budva, Crna Gora.

[4] Muzafer Saraevi, Sead Maovi, Primena UML modelovanja i PHP jezika u izradi web aplikacije za e-uenje (Oktobar, 2010). Univerzitet METROPOLITAN - Elektronsko uenje na putu ka drutvu znanja 2010, Beograd.

[5] Muzafer Saraevi, Sead Maovi, Esad Meedovi, Application of object-oriented analysis and design in navigation systems and transport networks (Sept, 2010), 10th International Conference "Research and Development in Mechanical Industry" RaDMI 2010

[6] Muzafer Saraevi, Maovi Sead, Lonarevi Zoran: Primena UML dijagrama aktivnosti u predstavljanju Data Mining modela tehnikom genetskih algoritama, 18. telekomunikacioni forum TELFOR 2010.

[7] Muzafer Saraevi, Maovi Sead, Kamberovi Hamza: Tehnike Text Mining-a i njihova realizacija primenom objektno-orijentisane analize, 18. telekomunikacioni forum TELFOR 2010.

[8] Sead Maovi, Muzafer Saraevi, Modelovanje poslovnih procesa i primena Data Mining tehnika u e-uenju (Oktobar, 2010). Univerzitet METROPOLITAN - Elektronsko uenje na putu ka drutvu znanja 2010, Beograd.

[9]Hartmann, orevi, Goci, Uvod u objektnoorijentisano modeliranje (Softverskiinenjering).[10] Mr.Ivana Stanojevi, Dr.Duan Surla, Uvod u objedinjeni jezik modeliranja, PMF Novi Sad.

[11] Grady Booch, Robert Maksimchuk, Michael W. Engle, Bobbi J. Young, Ph.D., JimConallen, Kelli A. Houston, Object-Oriented Analysis and Design withApplications.

[12]MartinFowler:UML ukratko,Mikroknjiga,Beograd,2004

[13]Eric J. Naiburg, Robert A. Maksimchuk:UML za projektovanje baza podataka ,CET,Beograd, 2001;

[14] Gotov Projekat - UML za program rada masine za pranje odece[15] Grupa autora: Argo UML - an UML Tool with Cognitive Support. Open Source Software Engineering Tools. http://argouml.tigris.org/[16] http://muzafers.uninp.edu.rs/ Poseeno 28.08.2012 godine.[17]http://infosys3.elfak.ni.ac.rs/nastava/attach/URPredavanja/Softversko+inzenjerstvo.pdf Poseeno 11.07.2012 godine. [18] http://www.cet.rs/ Poseeno 07.09.2012 godine.

34