1 / 17

Prof. dr Angelina Njeguš Vanredni profesor Univerziteta Singidunum anjegus@singidunum.ac.rs

Prof. dr Angelina Njeguš Vanredni profesor Univerziteta Singidunum anjegus@singidunum.ac.rs Beograd, 2008/2009. Objektno-orijentisana analiza i projektovanje sa UML-om DEV475 Mastering Object-Oriented Analysis and Design with UML - Volume 2, Modul 8.

Télécharger la présentation

Prof. dr Angelina Njeguš Vanredni profesor Univerziteta Singidunum anjegus@singidunum.ac.rs

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Prof. dr Angelina Njeguš Vanredni profesor Univerziteta Singidunum anjegus@singidunum.ac.rs Beograd, 2008/2009. Objektno-orijentisana analiza i projektovanje sa UML-omDEV475 Mastering Object-Oriented Analysis and Design with UML - Volume 2, Modul 8

  2. Modul 8:Identifikovanje mehanizama dizajna • Ciljevi: • Definisati svrhu identifikovanja mehanizama dizajna i objasniti u kom životnom ciklusu se izvršavaju • Objasniti šta su mehanizmi dizajna i implementacije i kako se preslikavaju iz mehanizama analize • Objasniti neke ključne mehanizme koji će se koristiti u studiji slučaja

  3. Pregled koraka Identifikovanje mehanizama dizajna • U koraku Identifikovanje mehanizama dizajna, prerađuju se mehanizmi analize u mehanizme dizajna u zavisnosti od ograničenja implementacije • Rezultat: • Elementi modela dizajna • Klase • Paketi • Podsistemi • Dokument o arhitekturi softvera

  4. Mehanizmi dizajna: dizajn paterni • Mehanizmi analize nam omogućavaju da sagledamo zahteve sistema bez ulaženja u detalje • Paterni analize/dizajna – obezbeđuju rešenja za ciljni tehnički problem • Framework – definiše generalni pristup rešavanja problema; obezbeđuje skeleton rešenja čiji detalji mogu biti paterni analize/dizajna; nudi nepotpun šablon za razvoj aplikacija u određenom domenu • Dizajn paterni (Design Pattern) su obično nezavisni od programskih jezika i opisuju opštu strukturu komponenata koji rešavaju generalne probleme dizajna u određenom kontekstu.

  5. Primeri paterna • Mehanizmi dizajna su često sačinjeni od jednog ili više dizajn paterna.

  6. Od mehanizama analize do mehanizama dizajna • Mehanizmi analize se tokom faze analize koriste kako bi se umanjila složenost analize i poboljšala konzistentnost modela • Koraci su: • Prikupiti sve mehanizme analize u listu • Nacrtati mapu klijent klasa ka mehanizmima analize • Identifikovati karakteristike mehanizama analize • Modelovanje mehanizama pomoću dijagrama klasa i dijagrama sekvenci – kada su jednom identifikovani i imenovani mehanizmi, sledeći korak je njihovo modelovanje kroz aspekt strukture (dijagram klasa) i ponašanja (kolaboracija klasa – dijagram sekvenci). Neke od ovih klasa ne pružaju direktno funkcionalnost aplikacije, već samo služe da ih podrže.

  7. Dokumentovanje mehanizama - Primer • Mehanizmi se posmatraju i dokumentuju kroz aspekte strukture (dijagrami klasa) i ponašanja (dijagram sekvenci) • Na primeru Sistema registrovanja na kurs, izabrani su sledeći mahanizmi analize: • Perzistentnost – podrazumeva da element bude postojan, tj. da postoji i posle završetka rada aplikacije koja ga je kreirala • Distribucija – podrazumeva distribuciju elemenata kroz postojeće čvorove sistema • Bezbednost – podrazumeva kontrolu pristupa elementima • Interfejs ka legacy sistemima – podrazumeva pristup nasleđenim sistemima kroz postojeći interfejs.

  8. Mehanizmi dizajna: Perzistentnost: RDBMS: JDBC • Za sve klase čije instance moraju da budu perzistentne, neophodno je identifikovati sledeće karakteristike perzistentnosti: • Granularnost – koji je opseg perzistentnog objekta • Obim – koliko objekata mora da bude perzistentno • Trajanje – koliko dugo se mora čuvati perzitentni objekat • Mehanizmi pristupa – kako se objekat identifikuje i preuzima • Učestalost pristupa (kreiranje/brisanje, ažuriranje, čitanje) • Pouzdanost – mogu li objekti preživeti pad procesa, procesora ili celog sistema?

  9. Primer: Perzistentnost: RDBMS: JDBC • Na slici se prikazuje patern koga koristi perzitentni mehanizam, odabran za RDBMS klase, u ovom primeru: JDBC • Za JDBC, klijent radi sa DBClass za čitanje i pisanje perzistentnih podataka • DBClass je odgovorna za pristupanje JDBC bazi podataka koja koristi klasu DriverManager. Jednom kada se otvori Connection baze podatka, DBClass može da kreira SQL iskaze koji će se slati RDBMS i izvršavati preko klase Statement. Rezultat SQL upita se vraća u objekat ResultSet • DBClass je odgovorna za pravljenje druge perzistentne instance klase • PersistentClassList se koristi za vraćanje skupa perzistentnih objekata kao rezultat upita (npr., DBClass.read()) Napomena: JDBC je standardni Java API za rad sa SQL bazama podataka

  10. Objašnjenje:Izvršavanje SQL upita upotrebom JDBCa • Koraci izvršavanja upita nad bazom podataka: • JDBC Driver puni DriverManager – ovo je neophodno zbog prevođenja naredbi koje izdaje program u naredbe specifirane od strane vendora baze podataka. • Java aplikacija dobija konekciju sa bazom podataka preko Connection objekta, preciznije korišćenjem metode DriverManager.getConnection(). • SQL upit se kreira korišćenjem Statement objekta, odnosno Connection.createStatement() metode. Vraća se objekat Statement i tada je sve spremno za postavljanje upita nad bazom. • SQL upit se izvršava u određenoj bazi podataka pozivajući, pri tome jedan od metoda objekta Statement, bilo Statement.executeQuery() ili Statement.executeUpdate(), specificirajući SQL iskaz kao String parametar. • U ovom slučaju, s obzirom da se korišćen metod executeQuery() objekta Statement, biće vraćen ResultSet koji će obezbediti i rezultate SQL upita.

  11. Objašnjenje: Primer upita • Ova klasa puni drajver baze podataka, kreira konekciju ka bazi podataka, kreira iskaz i na kraju izvršava upit nad bazom podataka. • JDBC Driver, COM.ibm.db2.jdbc.app.DB2Driver koji se koristi u ovom primeru, je klasa koja implementira interfejs JDBC Drivera. • JDBC Driver uzima poruke prosleđenih u JDBC API i konvertuje ih u protokol određene baze podataka.

  12. Primer: Perzistentnost: RDBMS: JDBC • Pre nego što se pristupi perzistentnoj klasi mora da se izvrši inicijalizacija • Da bi inicijalizovali konkeciju za bazom podataka, DBClass mora da puni odgovarajući drajver pozivanjem operacije DriverManager getConnection() sa URL, user i password-om • getConnection() pokušava da uspostavi konekciju za zadatom URL bazom podataka • DriverManager pokušava da selektuje odgovarajući drajver iz skupa registrovanih JDBC drajvera • Parametri: • url – koristi se za lociranje servera baze podataka. Oblik: jdbc:subprotocol:subname • User – korisnik baze podataka u čiju korist se kreira konekcija • Password – korisnikova šifra

  13. Primer: Perzistentnost: RDBMS: JDBC: Create • Da bi kreirali novu klasu, perzistentni klijent pita DBClass da kreira novu klasu • DBClass kreira novu instancu PersistentClass sa difoltnim vrednostima • DBClass zatim kreira novi Statement koristeći operaciju Connection klase createStatement() • Statement se izvršava i podaci se ubacuju u bazu podataka

  14. Primer: Perzistentnost: RDBMS: JDBC: Read • Za čitanje, DBClass kreira novi iskaz (statement) koristeći operaciju klase Connection: createStatement() • Statement se izvršava i podaci se smeštaju u objekat ResultSet. • DBClass kreira novu instancu PersistentClass i snabdeva je sa prikupljenim podacima • Podaci se vraćaju kao kolekcija objekata, instanca klase PersistentClassList

  15. Primer: Perzistentnost: RDBMS: JDBC: Update • Za ažuriranje klase, perzistentni klijent poziva DBClass za ažuriranje (update) • DBClass prihvata podatke iz datog objekta PersistentClass i kreira novi statement koristeći operaciju createStatement(). Jednom kada je kreiran iskaz, izvršava se update i ažurira se baza podatka sa novim podacima iz klase

  16. Primer: Perzistentnost: RDBMS: JDBC: Delete

  17. Mehanizmi dizajna i implementacije • Mehanizmi dizajna nisu usko vezani za konkretnu implementaciju, za razliku od mehanizama implementacije koji ukazuju na konkrente mehanizme implementacije, odnosno ukazuju na konkretnu tehnologiju, jezik implementacije, vendore itd.

More Related