objektno orijentisano projektovanje - vps.ns.ac.rs · pdf fileočekivanja? upoznavanje sa...

68
Objektno orijentisano Objektno orijentisano projektovanje projektovanje Dr Borislav Jošanov, profesor Visoka poslovna škola strukovnih studija Novi Sad

Upload: trannhan

Post on 05-Feb-2018

241 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Objektno orijentisano Objektno orijentisano projektovanjeprojektovanje

Dr Borislav Jošanov, profesorVisoka poslovna škola strukovnih studija

Novi Sad

Page 2: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

OOččekivanja?ekivanja?�� Upoznavanje sa objektno orijentisanim Upoznavanje sa objektno orijentisanim

nanaččinom razmiinom razmiššljanjaljanja�� KoriKoriššććenje grafienje grafiččkih alata za prezentacije, kih alata za prezentacije,

analize i dizajnanalize i dizajn�� Detaljnije upoznavanje UMLDetaljnije upoznavanje UML--aa�� Rukovanje programskim alatom Rational Rukovanje programskim alatom Rational

RoseRose�� Izrada skica i projektnih dokumenata Izrada skica i projektnih dokumenata

prema UML konceptuprema UML konceptu

Page 3: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Literatura (I)Literatura (I)

�� Martin Fowler: UML ukratko, prevod 3. Martin Fowler: UML ukratko, prevod 3. izdanja, Mikro knjigaizdanja, Mikro knjiga

�� Grady Booch, James Rumbaugh, Ivar Grady Booch, James Rumbaugh, Ivar Jacobson: UML VodiJacobson: UML Vodičč za korisnike, CETza korisnike, CET

�� Matt Weisfeld: Objektno orijentisani naMatt Weisfeld: Objektno orijentisani naččin in mimiššljenja, CETljenja, CET

�� Terry Quatrani: Vizuelno modelovanje Terry Quatrani: Vizuelno modelovanje Rational Rose 2002 i UML, CETRational Rose 2002 i UML, CET

Page 4: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Literatura (II)Literatura (II)

�� Dragan MiliDragan Miliććev: Objektno orijentisano ev: Objektno orijentisano modelovanje na jeziku UML, Mikro knjigamodelovanje na jeziku UML, Mikro knjiga

�� Ivana StanojeviIvana Stanojevićć, Du, Duššan Surla: Uvod u an Surla: Uvod u objedinjeni jezik modeliranja, Mala knjigaobjedinjeni jezik modeliranja, Mala knjiga

�� http://http://www.is.pmf.uns.ac.rs/bobericd/Knjiwww.is.pmf.uns.ac.rs/bobericd/Knjiga_iz_UML.zipga_iz_UML.zip

Page 5: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

BodoviBodovi

�� PrisustvoPrisustvo nana predavanjimapredavanjima i vei vežžbama bama –– 5 5 bodovabodova

�� Kolokvijum Kolokvijum –– 20 bodova20 bodova�� Rad na predavanjima i veRad na predavanjima i vežžbama bama –– 35 35

bodovabodova�� Izrada studije sluIzrada studije sluččaja aja –– 10 bodova10 bodova�� Pismeni ispit Pismeni ispit –– 30 bodova30 bodova

Page 6: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Perfekcija nije kada se Perfekcija nije kada se nema nema ššta dodati, veta dodati, veććkada se nema kada se nema ššta ta izostaviti.izostaviti.

Antoine de SaintAntoine de Saint--ExupExupééryry

Page 7: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,
Page 8: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,
Page 9: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,
Page 10: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Ideja OOPIdeja OOP

�� 80% tro80% trošškova za odrkova za održžavanje, 20% za razvojavanje, 20% za razvoj�� Zasovana na: Zasovana na:

iskustvenom prepoznavanju objekata i iskustvenom prepoznavanju objekata i njihovih obelenjihovih obeležžjajarazlikovanju celine objekta od njegovih razlikovanju celine objekta od njegovih delovadelovaformiranju klasa objekata uoformiranju klasa objekata uoččavanjem avanjem razlika meñu njimarazlika meñu njima

Page 11: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Odnos strukturiranog i OO Odnos strukturiranog i OO projektovanjaprojektovanja

�� SP se zasniva na skupu funkcija koje dele SP se zasniva na skupu funkcija koje dele zajednizajedniččko stanjeko stanje

�� OOP zasnovano je na sakrivanju, objekti OOP zasnovano je na sakrivanju, objekti se formiraju u interakcijama, oni imaju se formiraju u interakcijama, oni imaju privatna stanjaprivatna stanja

Page 12: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Karakteristike SPKarakteristike SP�� Modeluju se reModeluju se reššenja (a ne problemi)enja (a ne problemi)�� Problemi se reProblemi se reššavaju u algoritamskim koracima avaju u algoritamskim koracima

na razlina različčitim hijerarhijskim nivoimaitim hijerarhijskim nivoima�� Izmene u programima su izmene i u Izmene u programima su izmene i u

algoritmimaalgoritmima�� RazliRazliččite lokalizacije jedne izmeneite lokalizacije jedne izmene�� Nakon izmena neophodna provera Nakon izmena neophodna provera ššireg ireg

kontekstakonteksta

Page 13: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Karakteristike OOPKarakteristike OOP�� Modeluju se problemi, a ne reModeluju se problemi, a ne reššenjaenja�� Problemi se razlaProblemi se razlažžu na objekteu na objekte�� Za objekte se odreñuje Za objekte se odreñuje ššta rade ta rade --> crne kutije> crne kutije�� Nad objektima Nad objektima –– spoljne akcijespoljne akcije�� Izmene i dodavanja Izmene i dodavanja –– u odreñenom objektu u odreñenom objektu�� Provera Provera –– samo za menjani objekatsamo za menjani objekat�� Fleksibilno dodavanje novih objekataFleksibilno dodavanje novih objekata�� Laka moguLaka moguććnost ponovnog korinost ponovnog koriššććenjaenja

Page 14: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Istorija OO programskih jezikaIstorija OO programskih jezika�� 1961. Dahl, Myhrhang i Nygaard objavljuju 1961. Dahl, Myhrhang i Nygaard objavljuju

jezik Simulajezik Simula--67: u67: uvodi koncepte objekta i vodi koncepte objekta i nasleñivanje nasleñivanje –– svaki objekat sopstveno svaki objekat sopstveno ponaponaššanje i podacianje i podaci

�� Xerox ranih 70Xerox ranih 70--ih objavljuje Smaltalk, ih objavljuje Smaltalk, potpuno zasnovan na OO paradigmi potpuno zasnovan na OO paradigmi

�� 1982. Stroustrup objavljuje C++ koji uvodi 1982. Stroustrup objavljuje C++ koji uvodi klase i enkapsulacijuklase i enkapsulaciju

�� 1991. James Gosling u Sun Microsystems 1991. James Gosling u Sun Microsystems razvija Javu, univerzalnu softversku platformu razvija Javu, univerzalnu softversku platformu koja ne zavisi od hardvera, zvanikoja ne zavisi od hardvera, zvaniččno no objavljena 1996.objavljena 1996.

Page 15: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Nedostaci OO programiranjaNedostaci OO programiranja�� OO jezici nemaju efikasna sredstva za OO jezici nemaju efikasna sredstva za

specificiranje i dokumentovanje sistemaspecificiranje i dokumentovanje sistema�� Nedovoljno apstraktni koncepti OO jezikaNedovoljno apstraktni koncepti OO jezika�� Tekstualne specifikacije manje su efikasne Tekstualne specifikacije manje su efikasne

od vizuelnihod vizuelnih�� OO programiranje ne pruOO programiranje ne pružža podra podrššku za sve ku za sve

faze razvoja ni prelaze iz jedne u drugufaze razvoja ni prelaze iz jedne u drugu�� Nema efikasna sredstva za dobru Nema efikasna sredstva za dobru

dokumentaciju softveradokumentaciju softvera

Page 16: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,
Page 17: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

ZaZaššto modelovati?to modelovati?�� Da bismo dobili dobar softver koji zadovoljava Da bismo dobili dobar softver koji zadovoljava

sve vesve većće potrebe korisnikae potrebe korisnika�� AngaAngažžovanje korisnika na disciplinovan naovanje korisnika na disciplinovan naččin in

radi izlaganja stvarnih zahteva sistemaradi izlaganja stvarnih zahteva sistema�� Da bismo razlikovali Da bismo razlikovali ““manje vamanje važžnono”” od od

““nevanevažžnognog””�� Da bismo razvili softver trajnog kvalitetaDa bismo razvili softver trajnog kvaliteta�� Da bismo brzo i efikasno razvili softverDa bismo brzo i efikasno razvili softver�� Da bismo vizuelizovali i kontrolisali arhitekturu Da bismo vizuelizovali i kontrolisali arhitekturu

sistemasistema�� Da bismo bolje razumeli sistem koji razvijamoDa bismo bolje razumeli sistem koji razvijamo

Page 18: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Funkcije metoda OO modelovanjaFunkcije metoda OO modelovanja

�� Razvoj modela softvera na viRazvoj modela softvera na viššem nivou em nivou apstrakcijeapstrakcije

�� Specifikacija modela pomoSpecifikacija modela pomoćću vizuelnih, u vizuelnih, grafigrafiččkih notacijakih notacija

�� Transformacija apstraktnih, vizuelnih Transformacija apstraktnih, vizuelnih modela u implementacione forme u modela u implementacione forme u programskim jezicimaprogramskim jezicima

Page 19: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

ModelovanjeModelovanje�� Centralna aktivnost u izgradnji dobrog Centralna aktivnost u izgradnji dobrog

softverasoftvera�� Model je pojednostavljen prikaz realnostiModel je pojednostavljen prikaz realnosti�� Pravi se da bi se bolje razumeo sistem koji se Pravi se da bi se bolje razumeo sistem koji se

gradigradi�� Kompleksan sistem se bez modela ne moKompleksan sistem se bez modela ne možže e

razumeti kao kompaktna celinarazumeti kao kompaktna celina�� OOM je alternativa tradicionalnom, OOM je alternativa tradicionalnom,

algoritamskom modelovanjualgoritamskom modelovanju

Page 20: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Ciljevi modelovanjaCiljevi modelovanja

�� Model sluModel služži da prikai da prikažžemo kakav sistem jeste emo kakav sistem jeste ili kakav ili kakav žželimo da bude (vizuelizacija)elimo da bude (vizuelizacija)

�� Modelom se definiModelom se definišše struktura i ponae struktura i ponaššanje anje sistema (specifikacija)sistema (specifikacija)

�� Model predstavlja uzor (Model predstavlja uzor (ššablon) kako treba ablon) kako treba konstruisati sistem (konstrukcija)konstruisati sistem (konstrukcija)

�� Model sadrModel sadržži dokumentaciju projektnih i dokumentaciju projektnih odluka (dokumentacija)odluka (dokumentacija)

Page 21: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Modelovanje kompleksnih sistemaModelovanje kompleksnih sistema

�� Ljudi imaju ograniLjudi imaju ograniččenja u sposobnosti enja u sposobnosti razumevanja kompleksnih problemarazumevanja kompleksnih problema

�� Modelovanjem problem suModelovanjem problem sužžavamo na avamo na pojedine aspekte: pristup pojedine aspekte: pristup ““podeli pa vladajpodeli pa vladaj””

�� Modelovanjem se pojaModelovanjem se pojaččava ljudski intelektava ljudski intelekt�� Dobar izbor modela omoguDobar izbor modela omoguććava rad na ava rad na

viviššem nivou apstrakcijeem nivou apstrakcije�� Softverske kompanije malo rade na polju Softverske kompanije malo rade na polju

formalnog modelovanjaformalnog modelovanja

Page 22: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Principi modelovanjaPrincipi modelovanja

�� Izbor modela ima kljuIzbor modela ima ključčan uticaj na rean uticaj na reššavanje avanje i oblikovanje rei oblikovanje reššenjaenja

�� Svaki model moSvaki model možže imati razlie imati različčite nivoe ite nivoe detaljadetalja

�� Najbolji modeli su povezani sa realnim Najbolji modeli su povezani sa realnim svetomsvetom

�� Nijedan model nije dovoljan sam za sebe, Nijedan model nije dovoljan sam za sebe, svaki slosvaki složženiji sistem najbolje se opisuje eniji sistem najbolje se opisuje skupom nezavisnih modelaskupom nezavisnih modela

Page 23: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

OO modelovanjeOO modelovanje

�� Glavni sastavni delovi softverskog sistema su Glavni sastavni delovi softverskog sistema su objekti i klaseobjekti i klase

�� Objekat je opObjekat je opššte sredstvo u rete sredstvo u reččniku prostora niku prostora problema i njegovog reproblema i njegovog reššenjaenja

�� Klasa je opKlasa je opššti opis skupa objekatati opis skupa objekata�� Svaki objekat ima identitet, stanje i ponaSvaki objekat ima identitet, stanje i ponaššanjeanje�� Arhitektura OO modela se sastoji iz korisniArhitektura OO modela se sastoji iz korisniččkog kog

interfejsa, osnovnih programa i baze podatakainterfejsa, osnovnih programa i baze podataka

Page 24: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Istorija OO metodologija (1)Istorija OO metodologija (1)�� Do sredine 80Do sredine 80--ih dominantni metodoloih dominantni metodološški ki

pristupi zasnovani na specifikaciji funkcija pristupi zasnovani na specifikaciji funkcija sistemasistema

�� U 80U 80--im nastaju ideje o grafiim nastaju ideje o grafiččkim jezicimakim jezicima�� 19891989--1994. od 10 postoje1994. od 10 postojeććih razvijeno viih razvijeno višše e

od 50od 50 OO metoda OO metoda, m, meñu njimaeñu njima::�� HP: Fusion HP: Fusion –– integralna metoda 2. generacijeintegralna metoda 2. generacije�� Sally Shlaer i Tim Malor: Sally Shlaer i Tim Malor: žživotni ciklus ivotni ciklus

objekataobjekata�� Rebecca WirfsRebecca Wirfs--Brock: projBrock: projektovanje voñeno ektovanje voñeno

odgovornostimaodgovornostima

Page 25: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Istorija OO metodologija (Istorija OO metodologija (22))

�� OOA/OOD OOA/OOD –– Object Oriented Analysis/Object Object Oriented Analysis/Object Oriented Design, Oriented Design,

autori autori Yourdon & & Whitehead,Coad & Yourdon

Page 26: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,
Page 27: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Istorija OO metodologija (3)Istorija OO metodologija (3)�� Booch: OO Analsis Booch: OO Analsis –– izraizražžajna tokom ajna tokom

projektovanja i konstrukcije projektaprojektovanja i konstrukcije projekta�� Rumbaugh: Object Modeling Technique Rumbaugh: Object Modeling Technique ––

najkorisnija za analizu i IS sa velikom najkorisnija za analizu i IS sa velikom kolikoliččinom podatakainom podataka

�� Jacobson: OO Software Engineering Jacobson: OO Software Engineering ––podrpodršška korisnika korisniččkim funkcijama za definisanje kim funkcijama za definisanje projektnih zahtevaprojektnih zahteva

�� 1994. Rumbaugh prelazi iz GE u Boochov 1994. Rumbaugh prelazi iz GE u Boochov Rational: Unified MethodRational: Unified Method

�� 1995. Rational kupuje Objectory 1995. Rational kupuje Objectory -- pridrupridružžuje uje im se Jacobson im se Jacobson

Page 28: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Istorija OO metodologija (4)Istorija OO metodologija (4)�� 1996. UML 1996. UML –– Unified Modeling LanguageUnified Modeling Language�� Object Management Group (OMG) pokreObject Management Group (OMG) pokrećće e

akciju standardizacije: radnu grupu vode akciju standardizacije: radnu grupu vode Mary Loomis i Jim OdellMary Loomis i Jim Odell

�� januara 1997. dostavljeno vijanuara 1997. dostavljeno višše predloga i e predloga i njihovim spajanjem prihvanjihovim spajanjem prihvaććen UML 1.1en UML 1.1

�� danas aktuelan UML 2danas aktuelan UML 2.2.2�� three amthree amigosigos: Grady Booch, Jim : Grady Booch, Jim RumbaughRumbaugh & &

Ivar JacobsonIvar Jacobson

Page 29: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

UML

Booch

RumbaughJacobson

MeyerPočetni i krajnji uslovi

HarelDijagrami stanja

Wirfs-BrockOdgovornosti

FusionOpisi operacija, numeracija poruka

EmblySingleton klase

Gamma idrOkviri, mustre i komentari

Shlaer-MeyerPočetni i krajnji uslovi

OdellKlasifikacija

Page 30: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Primena OO projektovanjaPrimena OO projektovanja

�� PowerBuilder i Visual Basic realizovani u PowerBuilder i Visual Basic realizovani u potpunosti na OO paradigmipotpunosti na OO paradigmi

�� Primena OO paradigme kod legatnih IS: Primena OO paradigme kod legatnih IS: objekti se koriste kao omotaobjekti se koriste kao omotačči i

�� Novi IS najNovi IS najččeeššćće se razvijaju na OO e se razvijaju na OO paradigmiparadigmi

�� Pojava Weba i Jave u potpunosti donose OO Pojava Weba i Jave u potpunosti donose OO paradigmu: Internetom putuju objektiparadigmu: Internetom putuju objekti

Page 31: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

UML i elektronsko poslovanjeUML i elektronsko poslovanje

�� radnradnaa grupgrupaa EU TMWG (EU TMWG (Techniques and Techniques and Methodology Working GroupMethodology Working Group)) predlopredložžilaila jejeUML kao tehniku koja najviUML kao tehniku koja najvišše odgovara EPe odgovara EP

�� projekprojekaat Instituta za primenjene t Instituta za primenjene raraččunarske nauke i informacione sisteme unarske nauke i informacione sisteme iz Beiz Beččaa odabralo je 4 koncepta sa kojima odabralo je 4 koncepta sa kojima se optimalno rese optimalno reššavaju problemi EPavaju problemi EP

Page 32: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Komunikacija u decentralizovanom i Komunikacija u decentralizovanom i distribuiranom okrudistribuiranom okružženjuenju

�� u objektno orijentisanom razvoju zasniva se na u objektno orijentisanom razvoju zasniva se na SOAPSOAP ((Simple Object Access ProtocolSimple Object Access Protocol) ) protokoluprotokolu

�� objekti u razmeni opisuju objekti u razmeni opisuju se se kao WSDLkao WSDL ((Web Web Services Description LanguageServices Description Language) ) dokumentidokumenti

�� XML DTD kontrolisana grupa XML dokumenata XML DTD kontrolisana grupa XML dokumenata napisana pomonapisana pomoćću WSDLu WSDL

Page 33: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Ciljevi UMLCiljevi UML

�� Modelovanje sistema od koncepta do izvrModelovanje sistema od koncepta do izvrššnih nih celina koricelina koriššććenjem OO tehnikaenjem OO tehnika

�� Primenljivost na probleme glomaznosti u Primenljivost na probleme glomaznosti u slosložženim sistemima sa kritienim sistemima sa kritiččnim zadacimanim zadacima

�� Stvaranje jezika za modelovanje upotrebljivog Stvaranje jezika za modelovanje upotrebljivog i za ljude i za rai za ljude i za raččunareunare

�� Izrada metamodela sistema koji projektujemo Izrada metamodela sistema koji projektujemo ili programiramoili programiramo

Page 34: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

NaNaččini koriini koriššććenja UMLenja UML--aa

�� Izrada skica Izrada skica �� Izrada projektaIzrada projekta�� Programiranje Programiranje

Page 35: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Izrada skicaIzrada skica�� Ubedljivo najUbedljivo najččeeššćća primenaa primena�� Koristi se kao pomoKoristi se kao pomoććno sredstvo za no sredstvo za

opisivanje nekih aspekata sistemaopisivanje nekih aspekata sistema�� U razvoju i reverzibilnoj analiziU razvoju i reverzibilnoj analizi�� Selektivan izbor u primeniSelektivan izbor u primeni�� Koristi se najKoristi se najččeeššćće za opise alternativa, e za opise alternativa,

neformalno i dinamineformalno i dinamiččkiki�� Korisne su u dokumentaciji, radi informisanjaKorisne su u dokumentaciji, radi informisanja�� Ne pridrNe pridržžava se strogo pravila UMLava se strogo pravila UML--aa

Page 36: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Izrada projektaIzrada projekta�� Kreiraju se potpuni opisi projekata i opisi Kreiraju se potpuni opisi projekata i opisi

odlukaodluka�� Projektant kreira uputstva programerimaProjektant kreira uputstva programerima�� Analogija sa tehniAnalogija sa tehniččkim crtekim crtežžima inima inžženjera koji enjera koji

se dostavljaju drugimase dostavljaju drugima�� Obuhvataju sve detalje ili samo odreñenu Obuhvataju sve detalje ili samo odreñenu

oblast, obioblast, običčno do interfejsano do interfejsa�� ČČesto se primenjuje pomoesto se primenjuje pomoćću CASE alatau CASE alata�� Koriste se u reverzibilnoj analizi: iz izvornog Koriste se u reverzibilnoj analizi: iz izvornog

koda kreiraju dijagrame i tumakoda kreiraju dijagrame i tumaččenja smeenja smešštaju taju u skladiu skladišštata

Page 37: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Programiranje pomoProgramiranje pomoćću UMLu UML--aa

�� CASE alati generiCASE alati generiššu kostur programskog kodau kostur programskog koda�� U nekim sluU nekim sluččajevima generiajevima generišše se kompletan e se kompletan

programski kodprogramski kod�� Zahteva veoma sloZahteva veoma složžene alateene alate�� Modelovanje ponaModelovanje ponaššanja: dijagramima anja: dijagramima

interakcije, stanja i aktivnostiinterakcije, stanja i aktivnosti�� Programeri crtaju UML dijagrame koji se Programeri crtaju UML dijagrame koji se

neposredno prevode u izvrneposredno prevode u izvrššni kod (UMLni kod (UML--om om se opisuje izvorni kod)se opisuje izvorni kod)

Page 38: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Arhitektura zasnovana na modeluArhitektura zasnovana na modelu

� Model Driven Architecture (MDA) je standardna platforma za razvoj softvera u kompletnom životnom ciklusu dizajna, razvoja, i integracije aplikacija zasnovana na upotrbi modela u toku razvoja

�� Standardni pristup koriStandardni pristup koriššććenja UML kao enja UML kao programskog jezikaprogramskog jezika

�� Standardom MDA upravlja OMG (kao i UML)Standardom MDA upravlja OMG (kao i UML)

Page 39: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

PIM i PSMPIM i PSM�� Arhitektura MDA deli razvoj u PIM i PSMArhitektura MDA deli razvoj u PIM i PSM�� PIM (Platform Independent Model) je UML PIM (Platform Independent Model) je UML

model koji ne zavisi od tehnologijemodel koji ne zavisi od tehnologije�� PSM (PlPSM (Platform Specific Model) modeatform Specific Model) model sistema l sistema

namenjen odreñenom izvrnamenjen odreñenom izvrššnom okrunom okružženju i enju i sadrsadržži specifii specifiččne tehnolone tehnološške informacije i ke informacije i kreira se za svaku izvrkreira se za svaku izvrššnu platformunu platformu

�� Nakon toga svaki PSM se transformiNakon toga svaki PSM se transformišše u e u programski kod koji programski kod koji ćće se izvoditi na toj e se izvoditi na toj platformiplatformi

Page 40: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

CIMCIM�� Iznad PIM formira se Computation Iznad PIM formira se Computation

Independent Model (CIM) Independent Model (CIM) �� Ovim modelom se opisuje sitem u svom Ovim modelom se opisuje sitem u svom

poslovnom domenu i u njemu se opisuje poslovnom domenu i u njemu se opisuje kako de okako de oččekuje da sistem treba da radiekuje da sistem treba da radi

�� Ne sadrNe sadržži detalje konstrukcijei detalje konstrukcije

Page 41: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

CIM

PIM

PSM PSM

kodkod kod

T T

T T

ručnatransformacija

Page 42: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Od CIM ka PIMOd CIM ka PIMPoslovni procesi Slučajevi korišćenja

Page 43: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

IzvrIzvrššni UMLni UML�� Autor je Steve MellorAutor je Steve Mellor�� SliSliččan je MDA arhitekturian je MDA arhitekturi�� PoPoččinje sa modelom ekvivalentnom PIMinje sa modelom ekvivalentnom PIM�� Prevodilac modela pretvara taj model u Prevodilac modela pretvara taj model u

konakonaččan sistem (ne koristi PSM)an sistem (ne koristi PSM)�� Prevodilac modela zasnovan je na ponovo Prevodilac modela zasnovan je na ponovo

upotrebljivim arhetipovimaupotrebljivim arhetipovima�� Arhetip opisuje kako da izvrArhetip opisuje kako da izvrššni UML model ni UML model

pretvorimo u kod za odreñenu platformu pretvorimo u kod za odreñenu platformu (koliko platformi toliko arhetipova)(koliko platformi toliko arhetipova)

Page 44: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Notacije i metamodeliNotacije i metamodeli�� UML definiUML definišše notaciju i metamodele notaciju i metamodel�� Notacija je skup grafiNotacija je skup grafiččkih elemenata koji se kih elemenata koji se

koriste u modelima, tj. sintaksa jezika koriste u modelima, tj. sintaksa jezika �� GrafiGrafiččki jezici modelovanja obiki jezici modelovanja običčno nisu no nisu

strogi, a notacija je vistrogi, a notacija je višše intuitivnae intuitivna�� Metamodel je dijagram koji precizno definiMetamodel je dijagram koji precizno definišše e

koncepte jezikakoncepte jezika�� Od vitalnog je znaOd vitalnog je značčaja za korisnike UMLaja za korisnike UML--a a

kao programskog jezikakao programskog jezika

Page 45: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Postupak razvoja softveraPostupak razvoja softvera�� UML UML nastao iz vinastao iz višše OO metoda, e OO metoda, ččiji su se autori iji su se autori

lako slolako složžili oko jezika modelovanja, ali nisu oko ili oko jezika modelovanja, ali nisu oko postupka razvoja softverapostupka razvoja softvera

�� Dogovori o postupku razvoja odloDogovori o postupku razvoja odložženi za eni za kasnijekasnije

�� NajNajččeeššćće se spominje objedinjeni razvojni e se spominje objedinjeni razvojni postupak kompanije Rational: USDP postupak kompanije Rational: USDP

�� 2 klju2 ključčne grupe postupaka: kaskadni i iterativnine grupe postupaka: kaskadni i iterativni�� Razlikuju se u naRazlikuju se u naččinu podele projekta u manje inu podele projekta u manje

delovedelove

Page 46: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Kaskadni postupakKaskadni postupak

�� NajNajččeeššćći naziv: model vodopadai naziv: model vodopada�� Smatra se klasiSmatra se klasiččnim i zastarelimnim i zastarelim�� Deli projekat u delove na osnovu aktivnostiDeli projekat u delove na osnovu aktivnosti�� Obavezne aktivnosti u izradi programa: Obavezne aktivnosti u izradi programa:

analiza zahteva, projektovanje, pisanje analiza zahteva, projektovanje, pisanje programa i testiranjeprograma i testiranje

�� ČČesti su povratni tokovi meñu aktivnostimaesti su povratni tokovi meñu aktivnostima

Page 47: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Iterativni postupakIterativni postupak�� Nazivi: postupni, spiralni i evolutivniNazivi: postupni, spiralni i evolutivni�� Moderniji, blizak OO pristupuModerniji, blizak OO pristupu�� Deli projekat na delove po funkcijamaDeli projekat na delove po funkcijama�� IstraIstražživanje prethodi iterativnom postupkuivanje prethodi iterativnom postupku�� U svakoj iteraciji razvoj podjednakih grupa U svakoj iteraciji razvoj podjednakih grupa

zahtevazahteva�� Svaka iteracija donosi gotov integrisan Svaka iteracija donosi gotov integrisan

softversoftver�� Vremenska ograniVremenska ograniččenja za pojedine funkcijeenja za pojedine funkcije�� Hibridni postupak: etapna isporukaHibridni postupak: etapna isporuka

Page 48: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Problemi ponovnog radaProblemi ponovnog rada

�� Ponovno pisanje koda u narednim iteracijamaPonovno pisanje koda u narednim iteracijama�� ČČesto je efikasnije ponovo napisati neko esto je efikasnije ponovo napisati neko

““krpitikrpiti”” kod u kasnijim iteracijamakod u kasnijim iteracijama�� Automatizovani regresivni testovi brzo Automatizovani regresivni testovi brzo

otkrivaju ootkrivaju oššteteččenja nastala od izmena: xUenja nastala od izmena: xUnitnit�� Prerañivanje Prerañivanje (refactoring) je tehnika malih, (refactoring) je tehnika malih,

disciplinovanih promena postojedisciplinovanih promena postojeććeg kodaeg koda�� Neprekidna integracija je sinhronizovan i Neprekidna integracija je sinhronizovan i

automatizovan postupak integracije kodaautomatizovan postupak integracije koda

Page 49: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Predvidljivo planiranjePredvidljivo planiranje�� Glavna pitanja korisnika: koliko Glavna pitanja korisnika: koliko ćće koe košštati i tati i

koliko koliko ćće trajati izrada softvera?e trajati izrada softvera?�� Predvidljivi pristup: procene u ranim fazamaPredvidljivi pristup: procene u ranim fazama�� VeVećća predvidljivost postia predvidljivost postižže se u toku razvojae se u toku razvoja�� Uz Uz ččvrst plan i dobro prikupljene zahteve vrst plan i dobro prikupljene zahteve

ooččekuju se manja odstupanjaekuju se manja odstupanja�� Izmene zahteva u kasnim fazama remete Izmene zahteva u kasnim fazama remete

osnove previdljivog planiranjaosnove previdljivog planiranja�� Rano zamrzavanje zahteva moRano zamrzavanje zahteva možže dovesti do e dovesti do

softvera koji ne odgovara korisnikusoftvera koji ne odgovara korisniku

Page 50: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Prilagodljivo planiranjePrilagodljivo planiranje

�� Zasniva se na principu neizbeZasniva se na principu neizbežžnosti izmena nosti izmena zahteva i da je zahteva i da je ččesto veoma teesto veoma tešško precizno ko precizno definisati zahtevedefinisati zahteve

�� Neprekidne promene su realnost i promena se Neprekidne promene su realnost i promena se smatra konstantom razvoja u cilju dobijanja smatra konstantom razvoja u cilju dobijanja najboljeg softveranajboljeg softvera

�� Promene su kontrolisane, ali projekat nije Promene su kontrolisane, ali projekat nije predvidljivpredvidljiv

�� Korisnici sarañuju sa timom u periodiKorisnici sarañuju sa timom u periodiččnim nim procenama funkcionalnosti, rokova i ceneprocenama funkcionalnosti, rokova i cene

Page 51: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Unificirani proces razvoja softveraUnificirani proces razvoja softvera�� USDP: autori Jacobson, Booch i RumbaughUSDP: autori Jacobson, Booch i Rumbaugh�� Objavljen 1999. godineObjavljen 1999. godine�� Proces klasificiranja iteracija u 4 grupe:Proces klasificiranja iteracija u 4 grupe:

popoččetne iteracije interakcija sa stekholderimaetne iteracije interakcija sa stekholderima razrañene iteracije razrañene iteracije žželja i potrebaelja i potrebaiteracije konstruisanja inicijalnih operacionih iteracije konstruisanja inicijalnih operacionih mogumoguććnostinostiprelazne iteracije kompletiranja proizvodaprelazne iteracije kompletiranja proizvoda

Page 52: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

procena

test

implem

entacija

USDPUSDP

inicijalni

plan

plan

iranj

e

zahtevi analiza i

dizajn

razvoj

Page 53: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,
Page 54: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Rezultati USDPRezultati USDP�� Model korisniModel korisniččkih slukih sluččajeva: opisuje kako ajeva: opisuje kako ćće e

aplikacija biti koriaplikacija biti korišštenatena�� Model analize: sadrModel analize: sadržži osnovne klase rei osnovne klase reššenjaenja�� Model dizajna: opiModel dizajna: opisuje veze izmeñu klasa i suje veze izmeñu klasa i

odabranih objekataodabranih objekata�� Model razvoja: alokacija softvera po raModel razvoja: alokacija softvera po raččunarimaunarima�� Implementacioni model: opisuje kako Implementacioni model: opisuje kako ćće kod e kod

biti organizovanbiti organizovan�� Testni model: sadrTestni model: sadržži komponente, testne i komponente, testne

procedure i sluprocedure i sluččajeveajeve

Page 55: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Stereotipna ponaStereotipna ponaššanjaanja�� IdentiIdentiččne procedure u ponane procedure u ponaššanju 2 ili vianju 2 ili višše e

objekataobjekata�� Elementi: uloge, odnosi, strukture i funkcijeElementi: uloge, odnosi, strukture i funkcije�� Integrisane celine: Integrisane celine: ššabloni, stereotipi, abloni, stereotipi,

obrasci, design patterns (DP) obrasci, design patterns (DP) --> > viviššestruka estruka primenaprimena

Page 56: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Obrasci (DObrasci (Design Patternsesign Patterns))�� Kombinacija komponenti Kombinacija komponenti (obi(običčno klasa i no klasa i

objekata) za kojeobjekata) za koje je utvrñeno da re je utvrñeno da reššavaju avaju odreñene zajedniodreñene zajedniččke probleme dizajnake probleme dizajna

�� Opisuju rezultate razvoja, tj. primere projekataOpisuju rezultate razvoja, tj. primere projekata�� SadrSadržže rezultate rada najiskusnijih projektanatae rezultate rada najiskusnijih projektanata�� Erich Gamma sa trojicom kolega (Gang of Four) Erich Gamma sa trojicom kolega (Gang of Four)

je 1999. opisao 23 DPje 1999. opisao 23 DP�� Opisi sadrOpisi sadržže detalje zajednie detalje zajedniččkog rada objekta, kog rada objekta,

prednosti, ograniprednosti, ograniččenja, odstupanja i savete za enja, odstupanja i savete za realizacijurealizaciju

Page 57: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Kategorije obrazacaKategorije obrazaca

�� Strukturni Strukturni –– sadrsadržže sastav rukovanje sastav rukovanjaaobjekobjekttom kao pojedinaom kao pojedinaččnim entitetomnim entitetom

�� Kreativni Kreativni –– opisuju kreiranje opisuju kreiranje kompleksnih objekatakompleksnih objekata

�� BihejvBihejvjjuiralni uiralni –– ukazuju na ponaukazuju na ponaššanje anje objekataobjekata

�� Kombinovani Kombinovani –– na osnovu prethodnih na osnovu prethodnih kategorijakategorija

Page 58: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Izgled obrazacaIzgled obrazaca

�� Komponente sa opKomponente sa opšštim, karakteristitim, karakterističčnim za nim za razlirazliččite vrste softveraite vrste softvera

�� MoguMoguććnost integracija u heterogene nost integracija u heterogene arhitekture softveraarhitekture softvera

�� Adekvatna dokumentacija: namena, Adekvatna dokumentacija: namena, alternativni nazivi, kratak scenario, situacije alternativni nazivi, kratak scenario, situacije primene, struktura, uprimene, struktura, uččesnici, njihova esnici, njihova saradnja, posledice, uputstvo za primenu, saradnja, posledice, uputstvo za primenu, primeriprimeri

Page 59: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Osobine obrazacaOsobine obrazaca�� Obrazac je viObrazac je višše od modela, jer sadre od modela, jer sadržži i

objaobjaššnjenja i razloge zanjenja i razloge zaššto je bato je bašš takavtakav�� U njemu se jasno opisuje problem i zaU njemu se jasno opisuje problem i zaššto to

se taj problem rese taj problem reššavaava�� SadrSadržži opise u kojim situacijama radi, a u i opise u kojim situacijama radi, a u

kojim nekojim ne�� Pokazuju Pokazuju ššta je dobar model i kako ga ta je dobar model i kako ga

napraviti: podunapraviti: poduččavaju na primeruavaju na primeru

Page 60: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

UML UML i postupak razvoja softverai postupak razvoja softvera�� GrafiGrafiččki jezici se obiki jezici se običčno koriste u kaskadnom no koriste u kaskadnom

razvojurazvoju�� SluSlužže za kreiranje dokumentacije koja se e za kreiranje dokumentacije koja se

prenosi od faze do fazeprenosi od faze do faze�� Upotreba UML ne podrazumeva obaveznu Upotreba UML ne podrazumeva obaveznu

izradu dokumentacije ni upotrebu CASE alataizradu dokumentacije ni upotrebu CASE alata�� UML dijagrami se UML dijagrami se ččesto koriste za skice na esto koriste za skice na

sastancimasastancima�� U svakom postupku sprovode se analiza U svakom postupku sprovode se analiza

zahteva, projektovanje, programiranje i zahteva, projektovanje, programiranje i testiranjetestiranje

Page 61: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Analiza zahtevaAnaliza zahteva�� PokuPokuššava da otkrije ava da otkrije ššta korisnici ota korisnici oččekuju od ekuju od

sistema:sistema:�� Dijagrami sluDijagrami sluččajeva koriajeva koriššććenja opisuju kako enja opisuju kako

korisnici komuniciraju sa sistemomkorisnici komuniciraju sa sistemom�� Dijagram klasa je sredstvo za preciznu izradu Dijagram klasa je sredstvo za preciznu izradu

rereččnika iz neke oblastinika iz neke oblasti�� Dijagram aktivnosti moDijagram aktivnosti možže opisivati rokove e opisivati rokove

poslova, njihov kontekst ili aktivnostiposlova, njihov kontekst ili aktivnosti�� Dijagram stanja se moDijagram stanja se mošše koristiti za opis e koristiti za opis

žživotnog ciklusa nekog pojmaivotnog ciklusa nekog pojma

Page 62: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

ProjektovanjeProjektovanje�� Dijagrami mogu, koriDijagrami mogu, koriššććenjem notacije, enjem notacije,

sadrsadržžati viati vižže tehnie tehniččkih pojedinosti:kih pojedinosti:�� Dijagrami klasa ih prikazuju unutar softvera i Dijagrami klasa ih prikazuju unutar softvera i

njihove meñusobne vezenjihove meñusobne veze�� Dijagrami sekvence opisuju scenarije unutar Dijagrami sekvence opisuju scenarije unutar

programa, alternativa su CRC karticeprograma, alternativa su CRC kartice�� Dijagrami paketa pokazuju opDijagrami paketa pokazuju opšštu organizaciju tu organizaciju

softverasoftvera�� Dijagrami stanja sluDijagrami stanja služže za opis klasa sa e za opis klasa sa

slosložženim enim žživotnim ciklusomivotnim ciklusom�� Dijagrami razmeDijagrami razmešštanja prikazuju fizitanja prikazuju fiziččki ki

raspored softverskih modularaspored softverskih modula

Page 63: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

CRC karticeCRC kartice�� Dijagrami klaseDijagrami klase--odgovornostiodgovornosti--saradnje: Classsaradnje: Class--

ResponsibilityResponsibility--CollaborationCollaboration�� Osmislio Ward Cunningham krajem 80Osmislio Ward Cunningham krajem 80--ihih�� SluSlužže za ispitivanje interakcija izmeñu objekatae za ispitivanje interakcija izmeñu objekata�� Veoma popularna tehnika, nije deo UMLVeoma popularna tehnika, nije deo UML--aa�� Kartice sadrKartice sadržže ime klase u zaglavlju i 2 kolone:e ime klase u zaglavlju i 2 kolone:�� Odgovornost je kratak opis Odgovornost je kratak opis ššta objekat treba da ta objekat treba da

uradi uradi –– aktivnosti, znanje, odlukeaktivnosti, znanje, odluke�� U koloni za saradnju upisuju se druge klase sa U koloni za saradnju upisuju se druge klase sa

kojima treba da se realizuje odgovornostkojima treba da se realizuje odgovornost

Page 64: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Primer CRC karticePrimer CRC kartice

VoziloVoziloIsporuIsporučči robui robu

UplataUplataProveri da li je plaProveri da li je plaććenoeno

KupacKupacOdredi cenuOdredi cenu

SkladiSkladiššteteProveri zaliheProveri zalihe

Stavka upitaStavka upitaPrimi upitPrimi upit

Porudžbina

Page 65: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

NaNaččin radain rada�� U kaskadnom postupku: dijagrami se kreiraju U kaskadnom postupku: dijagrami se kreiraju

i obavljaju aktivnosti po fazamai obavljaju aktivnosti po fazama�� UML se koristi za pravljenje projektaUML se koristi za pravljenje projekta�� U iterativnom postupku: dijagrami se koriste U iterativnom postupku: dijagrami se koriste

za pravljenje skica i projektaza pravljenje skica i projekta�� Skice su grubi projekat, kreiraju se u toku Skice su grubi projekat, kreiraju se u toku

njegovog osminjegovog osmiššljavanja, u svakoj faziljavanja, u svakoj fazi�� UML projekat se pravi na poUML projekat se pravi na poččetku iteracije, na etku iteracije, na

osnovu osnovu ččega se programiraega se programira�� Ne kreNe krećće se od poe se od poččetka, veetka, većć se menjaju se menjaju

postojepostojećći dokumenti, sa naglaskom na i dokumenti, sa naglaskom na iteracijiiteraciji

Page 66: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

DokumentacijaDokumentacija�� Formira se izborom iz radnih beleFormira se izborom iz radnih belešški, ki,

uglavnom skica, a detaljna se kreira nakon uglavnom skica, a detaljna se kreira nakon pisanja programskog kodapisanja programskog koda

�� Dijagram paketa je logiDijagram paketa je logiččka karta puteva kroz ka karta puteva kroz sistemsistem

�� Dijagram rasporeñivanja prikazuje fizDijagram rasporeñivanja prikazuje fizččku ku sliku sistema na visokom nivousliku sistema na visokom nivou

�� Dijagram klasa treba da bude podrDijagram klasa treba da bude podržžan an dijagramima interakcijedijagramima interakcije

�� Dijagram maDijagram maššine stanja koristi se za sloine stanja koristi se za složžene ene žživotne cikluseivotne cikluse

�� Dijagram aktivnosti za najsloDijagram aktivnosti za najsložženije algoritmeenije algoritme

Page 67: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Razumevanje preuzetog kodaRazumevanje preuzetog koda

�� Opisi delova koda koje je pisao neko drugiOpisi delova koda koje je pisao neko drugi�� Formiraju se njihove skiceFormiraju se njihove skice�� ObiObiččno se kreiraju dijagrami klasa i no se kreiraju dijagrami klasa i

dijagrami sekvencidijagrami sekvenci

Page 68: Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa objektno orijentisanim na činom razmišljanja Korišćenje grafičkih alata za prezentacije,

Da nazdravimo za kraj idealnog prvog sastanka.