Click here to load reader

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,

  • View
    231

  • Download
    4

Embed Size (px)

Text of Objektno orijentisano projektovanje - vps.ns.ac.rs · PDF fileOčekivanja? Upoznavanje sa...

  • Objektno orijentisano Objektno orijentisano projektovanjeprojektovanje

    Dr Borislav Joanov, profesorVisoka poslovna kola strukovnih studija

    Novi Sad

  • OOekivanja?ekivanja? Upoznavanje sa objektno orijentisanim Upoznavanje sa objektno orijentisanim

    nanainom razmiinom razmiljanjaljanja KoriKorienje grafienje grafikih 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

  • 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 nain in mimiljenja, CETljenja, CET

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

  • Literatura (II)Literatura (II)

    Dragan MiliDragan Miliev: Objektno orijentisano ev: Objektno orijentisano modelovanje na jeziku UML, Mikro knjigamodelovanje na jeziku UML, Mikro knjiga

    Ivana StanojeviIvana Stanojevi, Du, Duan 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

  • BodoviBodovi

    PrisustvoPrisustvo nana predavanjimapredavanjima i vei vebama bama 5 5 bodovabodova

    Kolokvijum Kolokvijum 20 bodova20 bodova Rad na predavanjima i veRad na predavanjima i vebama bama 35 35

    bodovabodova Izrada studije sluIzrada studije sluaja aja 10 bodova10 bodova Pismeni ispit Pismeni ispit 30 bodova30 bodova

  • Perfekcija nije kada se Perfekcija nije kada se nema nema ta dodati, veta dodati, vekada se nema kada se nema ta ta izostaviti.izostaviti.

    Antoine de SaintAntoine de Saint--ExupExupryry

  • Ideja OOPIdeja OOP

    80% tro80% trokova za odrkova za odravanje, 20% za razvojavanje, 20% za razvoj Zasovana na: Zasovana na:

    iskustvenom prepoznavanju objekata i iskustvenom prepoznavanju objekata i njihovih obelenjihovih obelejajarazlikovanju celine objekta od njegovih razlikovanju celine objekta od njegovih delovadelovaformiranju klasa objekata uoformiranju klasa objekata uoavanjem avanjem razlika meu njimarazlika meu njima

  • 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 zajednizajedniko 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

  • Karakteristike SPKarakteristike SP Modeluju se reModeluju se reenja (a ne problemi)enja (a ne problemi) Problemi se reProblemi se reavaju u algoritamskim koracima avaju u algoritamskim koracima

    na razlina razliitim hijerarhijskim nivoimaitim hijerarhijskim nivoima Izmene u programima su izmene i u Izmene u programima su izmene i u

    algoritmimaalgoritmima RazliRazliite lokalizacije jedne izmeneite lokalizacije jedne izmene Nakon izmena neophodna provera Nakon izmena neophodna provera ireg ireg

    kontekstakonteksta

  • Karakteristike OOPKarakteristike OOP Modeluju se problemi, a ne reModeluju se problemi, a ne reenjaenja Problemi se razlaProblemi se razlau na objekteu na objekte Za objekte se odreuje Za objekte se odreuje ta rade ta rade --> crne kutije> crne kutije Nad objektima Nad objektima spoljne akcijespoljne akcije Izmene i dodavanja Izmene i dodavanja u odreenom objektu u odreenom objektu Provera Provera samo za menjani objekatsamo za menjani objekat Fleksibilno dodavanje novih objekataFleksibilno dodavanje novih objekata Laka moguLaka mogunost ponovnog korinost ponovnog korienjaenja

  • 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 nasleivanje nasleivanje svaki objekat sopstveno svaki objekat sopstveno ponaponaanje 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, zvanino no objavljena 1996.objavljena 1996.

  • 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 prua podra podrku 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

  • ZaZato modelovati?to modelovati? Da bismo dobili dobar softver koji zadovoljava Da bismo dobili dobar softver koji zadovoljava

    sve vesve vee potrebe korisnikae potrebe korisnika AngaAngaovanje korisnika na disciplinovan naovanje korisnika na disciplinovan nain in

    radi izlaganja stvarnih zahteva sistemaradi izlaganja stvarnih zahteva sistema Da bismo razlikovali Da bismo razlikovali manje vamanje vanono od od

    nevanevanognog 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

  • Funkcije metoda OO modelovanjaFunkcije metoda OO modelovanja

    Razvoj modela softvera na viRazvoj modela softvera na viem nivou em nivou apstrakcijeapstrakcije

    Specifikacija modela pomoSpecifikacija modela pomou vizuelnih, u vizuelnih, grafigrafikih notacijakih notacija

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

  • 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 moe e

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

    algoritamskom modelovanjualgoritamskom modelovanju

  • Ciljevi modelovanjaCiljevi modelovanja

    Model sluModel slui da prikai da prikaemo kakav sistem jeste emo kakav sistem jeste ili kakav ili kakav elimo da bude (vizuelizacija)elimo da bude (vizuelizacija)

    Modelom se definiModelom se definie struktura i ponae struktura i ponaanje 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 sadri dokumentaciju projektnih i dokumentaciju projektnih odluka (dokumentacija)odluka (dokumentacija)

  • Modelovanje kompleksnih sistemaModelovanje kompleksnih sistema

    Ljudi imaju ograniLjudi imaju ogranienja u sposobnosti enja u sposobnosti razumevanja kompleksnih problemarazumevanja kompleksnih problema

    Modelovanjem problem suModelovanjem problem suavamo na avamo na pojedine aspekte: pristup pojedine aspekte: pristup podeli pa vladajpodeli pa vladaj

    Modelovanjem se pojaModelovanjem se pojaava ljudski intelektava ljudski intelekt Dobar izbor modela omoguDobar izbor modela omoguava rad na ava rad na

    viviem nivou apstrakcijeem nivou apstrakcije Softverske kompanije malo rade na polju Softverske kompanije malo rade na polju

    formalnog modelovanjaformalnog modelovanja

  • Principi modelovanjaPrincipi modelovanja

    Izbor modela ima kljuIzbor modela ima kljuan uticaj na rean uticaj na reavanje avanje i oblikovanje rei oblikovanje reenjaenja

    Svaki model moSvaki model moe imati razlie imati razliite 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 sloeniji sistem najbolje se opisuje eniji sistem najbolje se opisuje skupom nezavisnih modelaskupom nezavisnih modela

  • OO modelovanjeOO modelovanje

    Glavni sastavn