1 Univerzitet Singidunum Materijali za predmet Specifikacija i

  • Slides: 37
Download presentation
1 Univerzitet Singidunum Materijali za predmet Specifikacija i modelovanje softvera Dijagrami Slučajeva korišćenja, dijagrami

1 Univerzitet Singidunum Materijali za predmet Specifikacija i modelovanje softvera Dijagrami Slučajeva korišćenja, dijagrami Klasa i dijagrami Paketa

Cilj Ø Ø Da se vidi veza između dijagrama korišćenja i dijagrama klasa Ø

Cilj Ø Ø Da se vidi veza između dijagrama korišćenja i dijagrama klasa Ø Identifikovati klase koje izvršavaju tok događaja opisan jednim slučajem korišćenja Ø Kompletno ponašanje slučaja korišćenja mora da se raspodeli na klase Ø Definisati interakcije između klasa Kada se to uradi elementi modela mogu se organizovati u manje logičke celine koje su lakše za programiranje i kasnije održavanje Ø Takve celine zovu se Paketi

Rezultat v Primena Entity-Control-Boundary Patern (ECB) § § v patern koji je sličan MVC

Rezultat v Primena Entity-Control-Boundary Patern (ECB) § § v patern koji je sličan MVC paternu, ali mu je primena u početku faze dizajna/kraj faze analize za bolje uočavanje različitih delova sistema MVC patern se koristi za dizajn klasa prezentacionog sloja U ECB paternu uočavaju se tri vrste klasa analize: § Entitetska klasa (Entity class) § Granična klasa (Boundary class) § Klasa kontrole (Control class)

Entitetska klasa v Notacija ili

Entitetska klasa v Notacija ili

Entitetska klasa v v Entitetske klase predstavljaju skladišta informacija u sistemu Obično se koriste

Entitetska klasa v v Entitetske klase predstavljaju skladišta informacija u sistemu Obično se koriste za predstavljanje ključnih koncepata Instance Entitetske klase se koriste za čuvanje i ažuriranje informacija o nekoj pojavi, kao što su događaj, osoba ili objekat iz realnog života Glavne odgovornosti entitetske klase su skladištenje informacija i upravljanje informacijama u sistemu

Granične klase v Notacija ili

Granične klase v Notacija ili

Granične klase v v Bave se komunikacijom između okoline sistema i njegove unutrašnjost Obezbeđuju

Granične klase v v Bave se komunikacijom između okoline sistema i njegove unutrašnjost Obezbeđuju interfejs korisniku ili drugom sistemu Granične klase izoluju sistem od promena u okruženju (npr. , promene u interfejsima kod drugih sistema i promene u korisničkim zahtevima), čuvajući ostatak sistema od posledica ovih promena Za inicijalnu identifikaciju graničnih klasa preporučuje se jedna granična klase po paru učesnik/slučaj korišćenja

Granične klase v Sistem može da ima nekoliko tipova graničnih klasa: § § §

Granične klase v Sistem može da ima nekoliko tipova graničnih klasa: § § § Klase korisničkog interfejsa–klase koje posreduju u komunikaciji sa ljudima, korisnicima sistema Klase interfejsa sistema – klase koje posreduju u komunikaciji sa drugim sistemima. Granična klasa obezbeđuje sistemu koji se razvija interfejs ka nekom drugom spoljnom sistemu Klase interfejsa uređaja – klase koje obezbeđuju interfejs ka uređajima koji detektuju spoljne događaje

Klase kontrole v Notacija ili

Klase kontrole v Notacija ili

Klase kontrole v v v Klasa kontrole je klasa koja se koristi za modelovanje

Klase kontrole v v v Klasa kontrole je klasa koja se koristi za modelovanje ponašanja koje je specifično za jedan ili više slučajeva korišćenja Klasa kontrole opisuje poslovnu logiku određenog slučaja korišćenja Klasa kontrole povezuje Granične klase sa Entitetskim klasama

Klase kontrole v. Preporuka je kod inicijalne identifikacije klasa kontrole da bude jedna klasa

Klase kontrole v. Preporuka je kod inicijalne identifikacije klasa kontrole da bude jedna klasa kontrole po slučaju korišćenja § Ne zahtevaju svi slučajevi korišćenja klase kontrole § Složeniji slučaji korišćenja mogu da zahtevaju i više klasa kontrole

Komunikacija između klasa v Učesnik u sistemu komunicira samo sa graničnim klasama v Granične

Komunikacija između klasa v Učesnik u sistemu komunicira samo sa graničnim klasama v Granične klase komuniciraju samo sa klasama kontrole i učesnicima v Entitske klase komuniciraju samo sa klasama kontrole v Klase kontrole komuniciraju sa graničnim, entitetskim klasama i drugim klasama kontrole, ali ne sa učesnicima

Primer: Analiza slučaja korišćenja

Primer: Analiza slučaja korišćenja

1 4 Primer: Analiza slučaja korišćenja Naziv: Pregled obaveza Učesnik: Profesor, Student Tok događaja:

1 4 Primer: Analiza slučaja korišćenja Naziv: Pregled obaveza Učesnik: Profesor, Student Tok događaja: 1. Učesnik bira dan iz kalendara za koji želi da vidi obaveze 2. Sistem prikazuje sve obaveze u tom danu 3. Za svaku obavezu prikazan je kratak opis, vreme od kada do kada traje 4. Ukoliko obaveza predstavlja konsultaciju, pored ovih informacija postoji i podatak o imenu i prezimenu studenta koji dolazi na konsultacije

Primer: Analiza slučaja korišćenja Naziv: Dodavanje nove obaveze Učesnik: Profesor Tok događaja: 1. Profesor

Primer: Analiza slučaja korišćenja Naziv: Dodavanje nove obaveze Učesnik: Profesor Tok događaja: 1. Profesor za izabrani dan unosi obavezu 2. Za svaku obavezu unosi njen opis, vreme početka i vreme završetka obaveze. 3. Profesor za jedan može uneti i više obaveza 4. Obaveze ne moraju ići jedna za drugom pa može postojati i interval vremena kada nije uneta ni jedna obaveza.

1 6 Primer: Analiza slučaja korišćenja Naziv: Zakazivanje konsultacija Učesnik: Student Tok događaja: 1.

1 6 Primer: Analiza slučaja korišćenja Naziv: Zakazivanje konsultacija Učesnik: Student Tok događaja: 1. Student za izabrani dan kada želi na konsultacije pregleda profesorove obaveze 2. Svaki profesor je na fakultetu od 8 do 16 h i student samo u tom terminu može zakazati konsultacije 3. Student pronalazi termin kada je profesor slobodan i unosi vreme kada će doći na konsultacije 4. Konsultacije mogu trajati najviše pola sata pa sistem sam postavlja vreme kraja konsultacija 5. Student unosi ime, prezime, broj indeksa i smer kako bi zakazao konsultacije u izabranom terminu.

Primer v Ekranska forma za prikaz obaveza kada je ulogovan profesor

Primer v Ekranska forma za prikaz obaveza kada je ulogovan profesor

Primer v Ekranska forma za prikaz obaveza kada je ulogovan student

Primer v Ekranska forma za prikaz obaveza kada je ulogovan student

Primer Ekranska forma za dodavanje nove obaveze

Primer Ekranska forma za dodavanje nove obaveze

Primer v Ekranska forma za zakazivanje konsultacija

Primer v Ekranska forma za zakazivanje konsultacija

Primer: Analiza slučaja korišćenja v Entitetske klase:

Primer: Analiza slučaja korišćenja v Entitetske klase:

Primer: Analiza slučaja korišćenja v Granične klase

Primer: Analiza slučaja korišćenja v Granične klase

Primer: Analiza slučaja korišćenja v Klase kontrole:

Primer: Analiza slučaja korišćenja v Klase kontrole:

Primer: Analiza slučaja korišćenja v Dijagram klasa:

Primer: Analiza slučaja korišćenja v Dijagram klasa:

Dijagram paketa

Dijagram paketa

Čemu služe dijagrami paketa v v Da bi se savladala složenost sistema elementi modela

Čemu služe dijagrami paketa v v Da bi se savladala složenost sistema elementi modela mogu biti organizovani u pakete Dijagram paketa omogućava bolje razumevanje celokupnog sistema Svaki element može pripadati samo jednom paketu Za razliku od dijagrama komponenti predstavlja samo logičko grupisanje klasa, nema izložene funkcionalnosti

UML notacija v v Paket je predstavljen kao Ime paketa se po pravilu navodi

UML notacija v v Paket je predstavljen kao Ime paketa se po pravilu navodi malim slovima Elementi u okviru paketa se međusobno referenciraju preko svojih imena Ako želimo da navedemo puno ime elementa onda navodimo i celu hijerarhiju paketa § Npr: org: : utils: : Timer v v Elementi u paketu moraju imati jedinstveno ime Element paketa može biti i drugi paket

Veze između paketa v v v Paketi su međusobno povezani vezom zavisnosti Veza zavisnosti

Veze između paketa v v v Paketi su međusobno povezani vezom zavisnosti Veza zavisnosti ukazuje na to da element jednog paketa koristi element drugog paketa Promene u jednom paketu uticaće i na paket koji je povezan sa tim paketom Veza zavisnosti nije tranzitivna Veza zavisnosti se predstavlja iscrtkanom strelicom koja je usmerena ka zvisnom paketu Veza zavisnosti može imati stereotipe: § import § Merge

Veza zavisnosti sa stereotipom import v Ovom vezom omogućavamo da elementi jednog paketa pozivaju

Veza zavisnosti sa stereotipom import v Ovom vezom omogućavamo da elementi jednog paketa pozivaju elemente drugog paketa bez navođenja njihovog punog imena

Veza zavisnosti sa stereotipom merge v v Ova veza ukazuje na to da je

Veza zavisnosti sa stereotipom merge v v Ova veza ukazuje na to da je sadržaj jednog paketa nastao od elemenata iz drugog paketa Ova veza se uglavnom koristi kad u dva paketa imamo elemente koji se isto zovu ali želimo da im redefinišemo funkcionalnosti

Primer

Primer

Kako grupisati klase u pakete v Paket bi trebalo da sadrži između 5 do

Kako grupisati klase u pakete v Paket bi trebalo da sadrži između 5 do 9 klasa v Klase na istom nivou hijerarhije obično pripadaju istom paketu v Interfejsi i apstraktne klase pripadaju jednom paketu a njihove implementacije drugom v Klase koje su povezane vezom kompozicije/agregacije pripadaju istom paketu v Klase koje međusobno razmenjuju mnogo poruka pripadaju istom paketu

Kako grupisati klase u pakete v Klase koje se mogu koristiti i u nekim

Kako grupisati klase u pakete v Klase koje se mogu koristiti i u nekim drugim projektima i ne zavise od domena treba staviti u jedan paket. § npr. pretpostavimo da imamo klase JDBCUtils i SQLCommands koje su pomoćne klase i izvršavaju neke uopštene operacije nad bazom i nisu direktno vezane za problem koji se rešava i zbog toga treba da su u posebnom paketu

Kako smanjiti zavisnost između paketa

Kako smanjiti zavisnost između paketa

Kako smanjiti zavisnost između paketa v Promene u jednom paketu utiču na drugi paket

Kako smanjiti zavisnost između paketa v Promene u jednom paketu utiču na drugi paket v Sistem koji je modularan i skalabilan treba da ima što manje veza zavisnosti između paketa. v Promene u jednom delu aplikacije ne bi trebale da utiču na ceo sistem

Kako smanjiti zavisnost između paketa v Jedan od načina je da se kreira nova

Kako smanjiti zavisnost između paketa v Jedan od načina je da se kreira nova klasa koja će sadržati sve javne operacije i biti neka vrsta interfejsa ka sadržaju paketa v Ostale klase u paketu će biti privatne v Pošto je samo ta nova klasa javne, ostali paketi će zavisiti samo od nje v Na ovaj način lokalizovali smo izmene u jednom paketu

Kako smanjiti zavisnost između paketa

Kako smanjiti zavisnost između paketa