Top Banner
Doc. dr Angelina Njeguš Objektno-orijentisana analiza i Objektno-orijentisana analiza i projektovanje sa UML-om projektovanje sa UML-om Sa elementima Sa elementima IBM-ovog kursa IBM-ovog kursa DEV475 DEV475 Mastering Object-Oriented Analysis and Design with UML Mastering Object-Oriented Analysis and Design with UML Dodatak Dodatak
65

Doc. dr Angelina Njeguš

Jan 14, 2016

Download

Documents

Fauve

Doc. dr Angelina Njeguš. Objektno-orijentisana analiza i projektovanje sa UML-om Sa elementima IBM-ovog kursa DEV475 Mastering Object-Oriented Analysis and Design with UML Dodatak. Dodatak: ObjectStore mehanizam. - PowerPoint PPT Presentation
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Doc. dr Angelina Njeguš

Doc. dr Angelina Njeguš

Objektno-orijentisana analiza i projektovanje Objektno-orijentisana analiza i projektovanje sa UML-omsa UML-om

Sa elementima Sa elementima IBM-ovog kursaIBM-ovog kursaDEV475DEV475 Mastering Object-Oriented Analysis and Design with UML Mastering Object-Oriented Analysis and Design with UML

DodatakDodatak

Page 2: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

• Stereotip <<role>> se koristi da prikaže koje klase treba da budu popunjene od strane dizajnera

• Operacije koje su definisane u SampleDBManager su specifične za klase koje su perzistentne

• Svaka operacija perzistentne klase koja ažurira podatke klase treba da bude iskopirana u klasi SampleDBManager

Npr. ukoliko postoji klasa MojaKlasa koja sadrži dve operacija op1() i op2(), onda će SampleDBManager klasa uključiti i operacije: NewMojaKlasa(), UpdateMojaKlasa, DeleteMojaKlasa(), doMojaKlasaOp1() itd.

• “Objekti postaju perzistentni kada su referencirani od strane drugih perzistentnih objekata”

• Klijenti su u interakciji (interfejsu) sa SampleDBManager klasom da bi dobili pristup objektima perzistentne klase (PersistentClass) u bazi podataka;

• klijent može da kreira novu instancu perzistentne klase sa operacijom newClass() ili da poziva naredbu perzistentne klase sa operacijom command();

• Klijent inicijalizuje i gasi bazu podataka ObjectStore kroz klasu SampleDBManager

• U kontekstu ObjectStore baze podataka, perzistentna klasa PersistentClass se smatra “root class”-om

Dodatak:Dodatak:ObjectStore mehanizamObjectStore mehanizam

Page 3: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: Primer: ObjectStore: SampleDBManagerObjectStore: SampleDBManager

• SampleDBManager obezbeđuje jednu ulaznu tačku u ObjectStore bazu podataka

• Postoji jedna SampleDBManager klasa po instanci ObjectStore baze podataka

SampleDBManager sadrži kod npr. za početak i kraj transakcija

• Klasa Database je ObjectStore klasa koja predstavlja aktuelnu ObjectStore bazu podataka;

pre nego što počnete sa kreiranjem perzisentnih objekata, morate kreirati bazu podataka koja će čuvati objekte; aplikacija može istovremeno da pristupa ka više instanci baze podataka

• Map je perzistentni map container klasa koja skladišti parove ključ/vrednost sa jedinstvenim ključem; ne morate koristiti samo klasu Map kao kolekciju, već možete i bilo koju drugu

• Klasa ObjectStore definiše operacije na sistemskom nivou koje nisu specifične za bilo koju bazu podataka

• Baza podataka Session mora biti kreirana da bi se pristupalo bazi i bilo kojim perzistentnim podacima. Sesija je kontekst u kojem je ObjectStore baza kreirana i otvorena i u kojoj se izvršavaju transakcije

• Svim perzistentnim objektima se mora pristupati unutar transakcije ObjectStore. U sesiji može da se izvršava samo po jedna transakcija

Page 4: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: ObjectStore: inicijalizacijaPrimer: ObjectStore: inicijalizacija

• Kada se jednom kreira i pridruži sesija, SampleDBManager mora da otvori i kreira novu bazu;

• Da bi kreirali bazu, SampleDBManager kreira novu transakciju i kreira koren “root” baze sa operacijom createRoot();

• Root je tačka ulaska u bazu podataka

• Kada se kreira koren, transakcija se potvrđuje “commit”

Page 5: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: ObjectStore: CreatePrimer: ObjectStore: Create

• Da bi kreirao novu instancu PersistantClass u bazi podataka, prvo SampleDBManager mora da kreira transakciju i da pozove konstruktor za PersistentClass

• Jednom kada se kreira klasa dodaje se bazi putem root operacije “put()”

• Transakcija se potvrđuje

Page 6: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: ObjectStore: ReadPrimer: ObjectStore: Read

• Da bi čitali objekat, SampleDBManager prvo kreira novu read-only transakciju koja pretražuje objekat korišćenjem root operacije get()

• Kada se objekat pronađe, čita se sa metodom getData() i transakcija se potvrđuje

• Čim je transakcija potvrđena, objekat se može ažurirati

Page 7: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: ObjectStore: UpdatePrimer: ObjectStore: Update

Page 8: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: ObjectStore: DeletePrimer: ObjectStore: Delete

Page 9: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: ObjectStore: ShutdownPrimer: ObjectStore: Shutdown

• Da bi se baza ugasila, SampleDBManager mora prvo da zatvori bazu, a zatim da prekine sesiju

Page 10: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: Registracija na kursPrimer: Registracija na kurs• Spisak studenata registrovanih na kurs sadrži više studenata gde je za svakog studenta

pridružen najmanje jedan raspored, a svaki raspored ima grupu ponuda kursevaUkoliko treba da se implementira prethodni scenario, tada je potrebno nekoliko klasa kolekcija za sve 1-prema-više veze

• Root nije ništa drugo do tačka pristupa bazi podataka, jedan od načina postavljanja upita nad bazom

U ovom primeru možemo izabrati više korenskih klasa: Spisak, Student i RasporedRoot je kolekcija klasa koja podržava ObjectStore upite

• Pregled koraka implementacije ObjectStore mehanizma:Obezbediti pristup bibliotekama klasa neophodnih za impelementiranje ObjectStore pristupaIzabrati root klasu baze podataka

• Jedna od važnijih odluka kod uključivanja ObjectStore mehanizma u vaš dizajn je koju korensku klasu (root) izabrati – u ovom primeru je izabrana klasa Student

Izabrati kontejner klasu koja će služiti kao root baze podataka (koja će sadržati, skladištiti izabrane root klase) – izabrana klasa kontejner je specijalna struktura podataka

• U ovom primeru odabrana je mapa kao kolekcija klase, a jedinstveni ključ pristupa studentima je StudentIDKreirati DBManager (jednog po instanci ObjectStore baze podataka)

• U ovom primeru biće jedan ObjectStore baza, Course Registration Database koja sadrži informacije o studentima i rasporedima za univerzitetu. Stoga, postojaće jedan CourseRegDBManager koji će biti u novom paketu ObjectStore

Dodati operacije DBManager-u kako bi se pristupalo objektima u OODBMS• Kreirati operacije za studente i rasporede (radi pristupa informacijama o studentima i rasporedima)

Kreirati Create/Update dijagrame interakcija koji opisuju:• Inicijalizaciju i prekidanje baze podataka• Pristup perzistentnim klasama: Create, Read, Udate, Delete

Implementirati perzistentne klase• Dodati iskaz “import com.odi.*”

Page 11: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: ObjectStorePrimer: ObjectStore

• CourseRegDBManager kontroliše pristup perzistentnoj klasi Student i njegovim rasporedima (Schedules)

• Operacije za pristup Rasporedu su dodate u CourseRegDBManager koji upravlja detaljima oko punjenja studenta pre pristupa rasporedu

Page 12: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: ObjectStore (nastavak)Primer: ObjectStore (nastavak)

• Kreira se paket ObjectStore Support koji sadrži poslovne elemente dizajna

• CourseRegDBManager-u će biti potrebno da elementi dizajna podržavaju ObjectStore mehanizam, te se stoga dodaje relacija zavisnosti između paketa ObjectStore Support i com.odi (odi je skraćenica od naziva kompanije koja je napravila Object Design: Object Design, Inc.)

• S obzirom da će CourseRegDBManager klasi biti potrebno da ima pristup perzistentnim klasama, dodaje se relacija zavisnosti između paketa ObjectStore Support i University Artifacts

Page 13: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: inicijalizacija baze podataka Primer: inicijalizacija baze podataka ObjectStore pri start-up-u sistemaObjectStore pri start-up-u sistema

Page 14: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: prikaz zatvaranja bazePrimer: prikaz zatvaranja baze

Page 15: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: prikaz čuvanja iili ažuriranja Primer: prikaz čuvanja iili ažuriranja Schedule klaseSchedule klase

Page 16: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: prikaz čitanja info o StudentuPrimer: prikaz čitanja info o Studentu

Page 17: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: prikaz brisanja StudentaPrimer: prikaz brisanja Studenta

Page 18: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: uključivanje ObjectStore Primer: uključivanje ObjectStore

Page 19: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: uključivanje ObjectStore Primer: uključivanje ObjectStore (nastavak)(nastavak)

Page 20: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: online phonebookPrimer: online phonebook

• Kreiranje Java aplikacije online adresara (phonebook) koja omogućava unos telefona, postavljanje upita, ubacivanje, izmenu i brisanje funkcionalnosti

• Aplikacija se pokreće Admin klasom, a sloj podataka se sastoji od četiri klase: Phonebook, PhonebookEntry, PhoneRegion i PhoneRegionList

• Klasa XMLPhoneEntries parsira i prihvata telefone koji su uskladišteni u XML fajl radi batch upload-ovanja

Page 21: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Razvoj aplikacijeRazvoj aplikacije

• I korak: Obezbediti pristup bibliotekama klasa neophodnih za impelementiranje ObjectStore pristupa

Code: Phonebook Import Statements

import com.odi.*;

import com.odi.util.*;import com.odi.util.query.*;import java.util.Map;import java.util.Set;import java.util.Iterator;import java.util.Collection;

Page 22: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Razvoj aplikacije - nastavakRazvoj aplikacije - nastavak

• II korak: kreirati bazu podataka i sesiju ka njoj

Code: Phonebook Database and Session Setup

public Phonebook() { session = Session.create(null, null); session.join(); try {

db = Database.open(database, ObjectStore.UPDATE); } catch (DatabaseNotFoundException e) { db=Database.create(database, ObjectStore.ALL_READ | ObjectStore.ALL_WRITE); }

Page 23: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Razvoj aplikacije - nastavakRazvoj aplikacije - nastavak

• III korak: kreirati ulaznu tačku u OODB (slično definisanju naziva relacione tabele).

U ovom slučaju proveramo da li postoji ulazna tačka “entries”, ukoliko ne postoji kreiramo novu OSHashMap sa nazivom “entries”, u okviru koje ćemo skladištiti objekte PhonebookEntry klase. OSHashMap je u osnovi podklasa java.util.Map sa dodatim funkcionalnostima i perzistentnim mogućnostima

Code: Phonebook Entry Point Transaction t = Transaction.begin(ObjectStore.UPDATE);

try { entries = (OSHashMap) db.getRoot("entries");

} catch (DatabaseRootNotFoundException e) { db.createRoot("entries", entries = new OSHashMap()); } t.commit(ObjectStore.RETAIN_READONLY);

}

Page 24: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Razvoj aplikacije - nastavakRazvoj aplikacije - nastavak

• Važno je da se adekvatno završi sesija i prekine sa korišćenjem resursa baze podataka pre nego što se aplikacija završi

Ovu metodu bi trebalo eksplicitno pozvati, jer se metoda finalize() ne izvršava na predvidljiv način

Code: Phonebook Cleanup

public void close() { db.close(); session.terminate();

}

Page 25: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Razvoj aplikacije - nastavakRazvoj aplikacije - nastavak

• IV korak: Kreiranje perzistentne klasePhonebook klasa predstavlja interfejs ka OODBKlase PhoneRegion i PhoneEntry bi trebalo obraditi kako bi bile spremne za skladištenje u bazi podatakaNaredba osjcfp (ObjectStore Java Class Post-processor) uzima Java class fajlove i dodaje dodatne informacije o ovim klasama kako bi podržale OODB –

• ova naredba generiše brojne fajlove koji se smeštaju u odvojene direktorijume (određene sa –dest).

• Naredba takođe treba da zna koji class fajl treba prethodno obraditi (post-process).

• U ovom slučaju obrađuje se fajl PhonebookEntry.class

Code: Makefile Post-Processing of Stored Objects

osjcfp -dest ./pData -pc PhoneApp/Data/PhonebookEntry.class

Page 26: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Razvoj aplikacije - nastavakRazvoj aplikacije - nastavak

• Database Inserts – jedan ili više objekata se skladišti u OODB; Ubacivanje objekata mora da se izvrši nakon uspostavljanja sesije i kreiranja baze podataka;Novi objekat PhonebookEntry se kreira pre insert-ovanja, nakon čćega se proverava validnost formata, polja i dr.Pre ubacivanja treba započeti transakciju; ukoliko objekat već postoji u bazi sa istim primarnim ključem (phone number), ubacivanje (insert) se prekida (abort); inače ubacuje se u OSHashMap “entries” imenovani ključem tj. brojem telefona (phoneNumber) kao entry; Kada se unosi objekat, unose se i svi njegovi atributi zajedno sa tipom podatka i vrednošćuNakon uspešnog unosa, transakcija se potvrđuje (commit) i zatvara (close)

Code: Phonebook Management of PhonebookEntry Inserts

public void addEntry(String firstName, String lastName, ...) { PhonebookEntry entry = new PhonebookEntry(firstName, lastName, ... ); if ( entry.isValid() ) {

Transaction t = Transaction.begin(ObjectStore.UPDATE); if (entries.get(phoneNumber) != null) {

t.abort(ObjectStore.RETAIN_READONLY);System.out.println("Entry already exists.");

} else { entries.put(phoneNumber, entry);t.commit(ObjectStore.RETAIN_READONLY);

} } else {

System.out.println("Invalid entry (" + entry.toString + ")"); }

}

Page 27: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Razvoj aplikacije - nastavakRazvoj aplikacije - nastavak

• Izvršavanje upita – u ovom primeru traže se PhonebookEntry objekti čija imena sadrže John (firstName = “John”);Kad se upit izvrši, pomoću Iteratora prolazi se kroz sve rezultate i prihvataju se odgvarajući PhonebookEntry objekti, a zatim poziva metoda toString kako bi se dobio tekstualni prikaz

Code: Simple Queries in the Phonebook Class

Query query = new Query(PhonebookEntry.class,"firstName == \"John\""); Collection queryResults = query.select(entries.values());String[] results = new String[queryResults.size()]; Iterator resultIterator = queryResults.iterator(); int count = 0; while(resultIterator.hasNext()) {

PhonebookEntry tmpEntry = (PhonebookEntry)resultIterator.next();results[count] = tmpEntry.toString();count++;

}

Page 28: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Razvoj aplikacije - nastavakRazvoj aplikacije - nastavak

• Izvršavanje ažuriranja –Objekat se uzima iz hash mape koristeći phone number kao ključnakon izmene objekta, potvrđuje se transakcija

Code: Updating existing PhonebookEntry Objects

Transaction t = Transaction.begin(ObjectStore.UPDATE);PhonebookEntry entry = (PhonebookEntry) entries.get("555-123-4567);

entry.setFirstName("Steve"); }t.commit(ObjectStore.RETAIN_HOLLOW);

Page 29: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

• GUI framework obezbeđuje standardni skup UI klasa

• Radi bezbednosti, UI obezbeđuje login ekran koji radi sa poslovnim objektom na server strani; ovaj server objekat će ostati na raspolaganju svim kontrolama u toku trajanja sesije

• Security Manager podsistem uključuje klase koje implementiraju ponašanje bezbednosti

• Secure Interfaces – entiteti koji su bezbedni će realizovati interfejs i obezbediti manji skup ponašanja

Dodatak:Dodatak:Mehanizam bezbednosti Mehanizam bezbednosti ((security mechanismsecurity mechanism))

Reused components from the Implementation Model

Representation of components in the Design Model

Packages in the system being developed that

might depend upon thesecurity packages.

Here we are reverse engineering existing components into the Implementation and Design Model (Three reusable components – one is a GUI framework; other two support security on the server)

Page 30: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: Primer: Security mechanismSecurity mechanism

• Bezbedni korisnik (ne podaci)!

• Stereotip <<role>> se koristi da identifikuje koje klase i role treba da razvije dizajner da bi primenile mehanizam bezbednosti

• Za svaku sesiju aplikacije, mora

postojati klasa čiji objekat realizuje ISecureUser interfejs (npr. UserSecurityContext klasa)

• Ovaj objekat upravlja informacijama o trenutnom korisnikovom pristupu bezbednosnim podacima bez direktne zavisnosti od klasa (ISecureUser klase zavise od interfejsa ISecureData, a ne od aktuelnih bezbednostnih podataka klasa)

• Sistem bezbednosti, preko operacija prikazanih u ISecureUser, omogućava klijentima da postave pristup objektima kada se kreiraju i proveravaju pristup tim objektima kada se oni kasnije koriste

• Postoji jedna instanca SecurityAccess po user login/sesiji po bezbednosnom objektu

This is a secure entry; “Realizes” the ISecureUser Interface.

MainApplicationForm keeps a reference to a ISecureUser obj until the form closes (this is represented by the composition relationship).

The reference to the ISecureUser object actually comes back from the LoginForm,which creates the ISecureUser object upon successful logon (this is represented by the dependency relationship)

The UniqueID class makes sure that all users and all pieces of data from all different applications get their own unique ids.

Page 31: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: Primer: security mechanismsecurity mechanism::Secure User Set-Up at LoginSecure User Set-Up at Login

• Za svaku sesiju aplikacije, mora da postoji jedan objekat čija klasa realizuje ISecureUser interfejs.

• Ovaj objekat upravlja informacijama o trenutnom korisnikovom pristupu bezbednom podatku.

• LoginForm će (nakon uspešnog logovanja) kreirati instancu ISecureUser

Page 32: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: Security mechanism: Prikaz kako Primer: Security mechanism: Prikaz kako podforme i kontroler obezbeđuju pristup bezbednoj podforme i kontroler obezbeđuju pristup bezbednoj korisničkoj sesijikorisničkoj sesiji

• Svi unosi koji treba da izvršavaju proveru pristupa moraju da imaju pristup trenutnoj korisnikovoj sesiji (tj. da imaju pristup ka ISecureUser)

• Ovak dijagram pokazuje kako podforma i pridruženi controller obezbeđuju pristup bezbenoj korisnikovoj sesiji.

• Bezbedna korisnička sesija se uspostavlja tokom login-a i održava je MainApplication Form.

Page 33: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: bezbedni pristup objektaPrimer: bezbedni pristup objekta

• Sve klase koje su mapirane ka mehanizmu analize Security treba da realizuju interfejs ISecureData

• Sve klase koje moraju da verifikuju pristup nekom bezbednom podatku treba to da urade preko interfejsa ISecureUser

Biće jedan objekat čija klasa realizuje interfejs ISecureUser po sesiji

• Kada se prihvataju bezbedni podaci, klijent mora da verifikuje trenutnog korisnika da li ima dozvolu pristupa podacima (preko infomracija o bezbednom pristupu – security access)

• Na dijagramu je prikazano da nakon prihvatanja objekta koji realizuje ISecureData interfejs, Secure Object Client mora da prihvati security access info za secure object za trenutnog usera i da ga uporedi kako bi se osigurao da trenutni korisnik može da gleda/edituje/briše objekat.

Page 34: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Pregled koraka implementacije Pregled koraka implementacije mehanizma bezbednosti mehanizma bezbednosti

• Obezediti pristup bibliotekama klasa koje su potrebne za implementaciju mehanizma bezbednosti

Kreirati novi Security paket koji će da sadrži klase koje će da implementiraju mehanizam bezbednosti

• Kreirati glavnu formu aplikacije sa pridruženim login formamaPaket koji sadrži forme zavisi od paketa Security GUI FrameworkKreirati glavne forme aplikacije

• Neka sve bezbedne klase realizuju interfejs ISecureData Paket koji sadrži ključne tipove podatka zavisi od paketa Security Secure InterfaceDodati relacije realizacije

• Obezbediti bezbednu korisničku sesiju pristupa gde je potrebnoPaket koji sadrži kontrolne klase zavisi od paketa Security GUI FrameworkKontrolne klase zahtevaju bezbedni pristup sesiji korisnikaDodati setSession(IsecureIUser) operacije

• Kreirati/ažurirati dijagrame interakcija sa bezbednosnom obradomBezbedni login korisnikaBezbedna sesija korisnikaBezbedan pristup podacima (provera dozvola pristupa)

Page 35: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: uključivanje mehanizama Primer: uključivanje mehanizama bezbednosti u model registracije kursevabezbednosti u model registracije kurseva

Page 36: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: uključivanje mehanizma Primer: uključivanje mehanizma bezbednostibezbednosti

• Sample Application package sadrži glavne application forms-e i stoga zavisi od GUI Framework-a.

• Sample Secure Data package sadrži klase koje treba da budu bezbedne te su zavisne od Security Secure Interfaces paketa

• Sample Application package sadrži klase koje treba da pristupaju bezbednim klasama te će stoga zavisiti od Security Secure Interfaces paketa.

Page 37: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: uključivanje Primer: uključivanje Security Security mechanismmechanism-a-a

• Naredni primeri ukazuju na izmene koje je potrebno uraditi na prethodnim slajdovima kako bi se uključio mehanizam sigurnosti

LoginForm iz security GUI framework će biti zamenjen LoginForm-om koja je identifikovana use case analizomKlasa Schedule mora biti bezbedna tako da će realizovati interfejs ISecureDataKlase kontrole RegistrationController će zahtevati pristup bezbednoj sesiji korisnika, tako da će se dodati operacija setSession(ISecureUser)

Page 38: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: uključivanje Primer: uključivanje SecuritySecurity mehanizma (nastavak)mehanizma (nastavak)

Page 39: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: uspostavljanje bezbedne Primer: uspostavljanje bezbedne sesije korisnikasesije korisnika

Page 40: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: kontrole izvršavaju Primer: kontrole izvršavaju bezbednosne provere bezbednosne provere

Page 41: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: bezbedan pristup podacimaPrimer: bezbedan pristup podacima

Page 42: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Primer: Primer: View of Participation ClassesView of Participation Classes (VOPC)(VOPC)

Page 43: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Dodatak:Dodatak:Mapiranje UML-a u JavuMapiranje UML-a u Javu

• Napomena (Note) se može dodati bilo kom UML elementu

Page 44: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Vidljivost atributa i operacijaVidljivost atributa i operacija

Page 45: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Domen atributa i operacijaDomen atributa i operacija

Page 46: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Grupisanje globalnih atributa i Grupisanje globalnih atributa i operacijaoperacija

Page 47: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Sakrivanje klasa koje su relevantne Sakrivanje klasa koje su relevantne samo za implementacijusamo za implementaciju

Page 48: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Asocijacije u oba smera Asocijacije u oba smera

• Klase koje su deklarisane u istom Java paketu mogu da vide jedna druguKlase koje su deklarisane u istom Java paketu mogu da vide jedna drugu

Page 49: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Jednosmerne asocijacijeJednosmerne asocijacije

Page 50: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Pravila asocijacijePravila asocijacije

• Pravila na krajevima asocijacije mogu da pojasne

Page 51: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Multiplikativnost asocijacijeMultiplikativnost asocijacije

• Multiplikativnost je broj instanci jedne klase koje su u relaciji sa drugim

Page 52: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Asocijativna klasaAsocijativna klasa

• Asocijativna klasa je klasa koja je povezana na asocijaciju – postoji instanca asocijativne klase za svaku instancu relacije

Page 53: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Refleksivna asocijacijaRefleksivna asocijacija

• Klasa može da ima asocijaciju sa objektima istog tipa

Page 54: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

AgregacijaAgregacija

• U Javi kod za agregaciju se može predstaviti npr. vektorom (vector)

Page 55: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

KompozicijaKompozicija

Page 56: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Interfejsi i relacije realizacijeInterfejsi i relacije realizacije

• Java ima notaciju “implements” koja se prevodi u relaciju realizacije u UMLu

Page 57: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

GeneralizacijaGeneralizacija

Page 58: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Višestruko nasleđivanjeVišestruko nasleđivanje

Page 59: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Višestruko nasleđivanje (nastavak)Višestruko nasleđivanje (nastavak)

Page 60: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Apstraktne klase Apstraktne klase (klasa za koju se ne kreiraju instance)(klasa za koju se ne kreiraju instance)

Page 61: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Parametarizovana klasaParametarizovana klasa

• Java ne podržava parametarske klase

Page 62: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Podsistemi Podsistemi

• Podsistemi (subsystems) predstavlja dizajn model komponenti

Page 63: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Šta smo do sada uradili?Šta smo do sada uradili?

1. Uvod

2. Analiza zahteva2.1. Model slučajeva korišćenja

2.1.1. Glavni dijagram slučajeva korišćenja2.1.2. Specifikacija ključnih slučajeva korišćenja2.1.3. Dijagram aktivnosti

2.2. Rečnik (opciono)2.3. Dodatna specifikacija (funkcionalni i nefunkcionalni zahtevi koji nisu opisani u

modelu slučajeva korišćenja – opciono)

3. Analiza rešenja3.1. Logički prikaz arhitekture sistema (opisati patern arhitekture koji se koristi i

prema slojevima prikazati pakete klasa i njihove relacije)3.2. Realizacija slučajeva korišćenja

3.2.1. Konceptualni dijagram klasa3.2.2. Mehanizmi analize (tabela mehanizama analize, mapirati klase, navesti

karakteristike mehanizama - opciono)3.2.3. Dijagrami sekvenci3.2.4. Dijagrami saradnje

Page 64: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Sadržaj seminarskog rada - nastavakSadržaj seminarskog rada - nastavak

4. Model projektovanja (Design model)4.1. Projektovanje slučajeva korišćenja (Use case design)

4.1.1. Mehanizmi dizajna (prikazati tabelu mapiranja mehanizama analize u mehanizme dizajna i na kraju izbor mehanizama implementacije, npr. kao na slajdu 53, prezentacije OOAD2)4.1.2. Dizajn podsistema (prikazati sadržaj podsistema, zajedno sa njihovim interfejsima – mapirate klase analize u elemente dizajna)

Slike: Dijagram interakcije podsistema (prikažite najmanje jedan dijagram interakcije podsistema po operaciji interfejsa)

Slike: Dijagram klasa podsistema “Naziv podsistema”Slike: Dijagram zavisnosti podsistema “Naziv podsistema” (opciono –

prikazati zavisnost podsistema u odnosu na druge spoljne elemente dizajna)4.1.3. Dizajn klasa (akcenat je na metodama klasa, ali i na preciznijem definisanju atributa, tipova podataka, difoltnih vrednosti, asocijacija, multiplikativnosti i sl.)

Slike: Dijagram stanjaSlika: Dijagram klasa

4.1.4. Modeliranje procesa Slika: Dijagram komponenti

4.1.5. Opis distributivnosti sistemaSlika: Dijagram uvođenja (deployment diagram)

Page 65: Doc. dr Angelina Njeguš

Projektovanje informacionih sistema Projektovanje informacionih sistema Doc. dr Angelina Njeguš Doc. dr Angelina Njeguš

Sadržaj seminarskog rada - nastavakSadržaj seminarskog rada - nastavak

4.2. Projektovanje baze podataka (Database design) (koji DBMS se koristi, ukoliko je RDBMS navesti koji objektno-relacioni framework se koristi, prikazati neke ključne stored procedure i trigere ...)Slika: Fizički model baze podataka prikazan u izabranom DBMS-uSlike: Stored procedura “ ... “ Slike: Triger “ ... “ (opciono)

4.3. Projektovanje sloja prezentacije (u zavisnosti od aplikacije prikazati Windows, Web ili GUI za bežične uređaje)

4.4. Projektovanje bezbednosti (opciono, jer je problematika koja se razmatra u okviru drugih predmeta)

5. Zaključak

Literatura

PrilogPrilog 1: Programski kôd “...”...