stefan petrovic prosoftbuckup

44
Univerzitet u Beogradu Fakultet organizacionih nauka Laboratorija za softversko inženjerstvo Seminarski rad iz predmeta Projektovanje softvera Tema: Softverski sistem apotekarske ustanove Profesor: Student: prof. dr Siniša Vlajić Petrović Stefan 701/08

Upload: -

Post on 14-Dec-2015

243 views

Category:

Documents


5 download

TRANSCRIPT

Page 1: Stefan Petrovic Prosoftbuckup

Univerzitet u BeograduFakultet organizacionih nauka

Laboratorija za softversko inženjerstvo

Seminarski rad iz predmeta

Projektovanje softveraTema: Softverski sistem apotekarske ustanove

Profesor: Student:prof. dr Siniša Vlajić Petrović Stefan 701/08

Beograd 2015.

Page 2: Stefan Petrovic Prosoftbuckup

Sadržaj:

1. Korisnički zahtevi...........................................................................................................................3

1.1 Verbalni opis..........................................................................................................................3

1.2 Slučajevi korišćenja......................................................................................................................4

1.2.1 Slučaj korišćenja 1: Unos leka...............................................................................................5

1.2.2. Slučaj korišćenja 2: Izmena leka...........................................................................................5

1.2.3. Slučaj korišćenja 3: Brisanje leka..........................................................................................6

1.2.4. Slučaj korišćenja 4: Pretraga leka.........................................................................................7

1.2.5. Slučaj korišćenja 5: Unos računa..........................................................................................8

1.2.6 Slučaj korišćenja 6: Pretraga računa.....................................................................................8

1.2.7. Slučaj korišćenja 7: Storniranje računa..............................................................................9

1.2.8 Slučaj korišćenja 8: Unos proizvođača leka.........................................................................10

1.2.9. Slučaj korišćenja 9: Izmena proizvođača leka....................................................................10

1.2.10. Slučaj korišćenja 10: Prijavljivanje korisnika....................................................................11

2. ANALIZA.......................................................................................................................................12

2.1 Ponašanje softverskog sistema – Sistemski dijagrami sekvenci.................................................12

2.1.1 DS1: Dijagram sekvenci slučaja korišćenja – Unos leka......................................................12

2.1.2 DS2: Dijagram sekvenci slučaja korišćenja – Izmena leka..................................................13

2.1.3 DS3: Dijagram sekvenci slučaja korišćenja – Brisanje leka.................................................15

2.1.4 DS4: Dijagram sekvenci slučaja korišćenja – Pretraga leka................................................17

2.1.5 DS5: Dijagram sekvenci slučaja korišćenja – Unos računa.................................................19

2.1.6 DS6: Dijagram sekvenci slučaja korišćenja – Pretraga računa.....................................21

2.1.7. DS7: Dijagram sekvenci slučaja korišćenja – Storniranje računa.......................................22

2.1.8 DS8: Dijagram sekvenci slučaja korišćenja – Unos proizvđača leka....................................24

2.1.9 DS9: Dijagram sekvenci slučaja korišćenja – Izmena podataka o proizvođaču...................25

2.1.10 DS10: Dijagram sekvenci slučaja korišćenja – Prijavljivanje korisnika..............................27

2.2 Ponašanje softverskog sistema - Definisanje ugovora o sistemskim operacijama...............29

2.3 Struktura softvarskog sistema – Konceptualni (domenski) model.......................................32

2.4 Struktura softverskog sistema – Relacioni model................................................................32

2

Page 3: Stefan Petrovic Prosoftbuckup

1. Korisnički zahtevi1.1 Verbalni opis

Potrebno je napraviti program koji omogućava automatizaciju rada jedne apoteke, prikupljanje i čuvanje podataka bitnih za njen rada sve u cilju lakšeg poslovanja apoteke.

Korisnik sistema je apotekar, koji treba biti ulogovan u sistem kako bi ga koristio.

Apoteka je namenjena za skladištenje i čuvanje lekova, a centralna aktivnost u radu apoteke jeste izdavanje leka. Apotekaru je potrebno da u svakom trenutku raspolaže sa ažuriranim podacima vezanim za trenutno stanje apoteke. Svaki lek se čuva sa svojim relevantnim podacima, od njegovog komercijalnog naziva, preko šifre leka, trenutne količine u skladištu apoteke i dr.

Aplikacija treba da omogući da se pamte podaci o svim lekovima koji postoje na stanju. Da bi se bicikl lek uneo u sistem potrebno je da se unesu određeni podaci o leku i da se zapamti ostvarena evidencija. Aplikacija omogućava i izmenu i brisanje podataka o leku kao i pretragu leka po zadatom kriterijumu. Takođe aplikacija omogućava izdavanje računa za prodate izdate lekove, kao i pretraga i storniranje istih. Za lekove treba pamtiti i njihove proizvođače.

3

Page 4: Stefan Petrovic Prosoftbuckup

1.2 Slučajevi korišćenja

Slučaj korišćenja opisuje skup scenarija, odnosno skup željenih korišćenja sistema od strane aktora. Iz toga proizilazi da scenario opisuje jedno željeno korišćenje sistema od strane aktora. Scenario je opisan preko sekvence akcija i interakcija između aktora I sistema. Slučaj korišćenja se sastoji iz glavnog i alternativnih scenarija.Scenarija definišu željene fukcije sistema koje, kada se izvršavaju, pozivaju po određenom redosledu osnovne funkcije sistema.

U konkretnom slučaju identifikovani su sledeći slučajevi korišćenja:

1) Unos leka2) Izmena leka3) Brisanje leka4) Pretraga leka5) Unos računa6) Pretraga računa7) Storniranje računa8) Unos proizođača leka9) Izmena podataka o proizvođaču10) Prijava apotekara na sistem

4

Page 5: Stefan Petrovic Prosoftbuckup

Slika 1. – Dijagram slučajeva korišćenja

1.2.1 Slučaj korišćenja 1: Unos leka

Naziv SKUnos leka

Aktori SKKorisnik(Apotekar)

Učesnici SKKorisnik i sistem

Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za unos leka. Učitana je lista proizvođača lekova koja je dostupna korisniku.

Osnovni scenario SK

1. Korisnik unosi podatke o leku. (APUSO)2. Korisnik kontroliše da li je ispravno uneo podatke o leku. (ANSO)3. Korisnik poziva sistem da zapamti podatke o leku. (APSO)4. Sistem pamti podatke o leku. (SO)5. Sistem prikazuje korisniku lek i poruku: ”Lek je uspesno unet”. (IA)

Alternativna scenarija

5.1 Ukoliko sistem ne moze da zapamti podatke o leku prikazuje korisniku poruku ”Sistem nije zapamtio lek” (IA)

1.2.2. Slučaj korišćenja 2: Izmena leka

Naziv SKIzmena leka

Aktori SKKorisnik

Učesnici SKKorisnik i sistem

Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za rad sa lekom. Učitana je lista postojećih lekova i učitana je lista proizvođača lekova koje su dostupne korisniku.

5

Page 6: Stefan Petrovic Prosoftbuckup

Osnovni scenario SK

1. Korisnik unosi vrednost po kojoj pretražuje lekove. (APUSO)2. Korisnik poziva sistem da pronađe lekove po zadatoj vrednosti. (APSO)3. Sistem traži lekove po zadatoj vrednosti. (SO)4. Sistem prikazuje korisniku pronađene lekove i poruku: ”Sistem je izvršio pretragu.” (IA)5. Korisnik bira lek koji želi da izmeni. (APUSO)6. Korisnik poziva sistem da prikaže podatke odabranom leku. (APSO)7. Sistem vraća podatke o izabranom leku. (SO)8. Sistem prikazuje korisniku podatke o leku i poruku .” Sistem je pronašao lek!“ (IA)9. Korisnik unosi (menja) podatke o leku. (APUSO)10. Korisnik kontroliše da li je ispravno izmenio podatke o leku. (ANSO)11. Korisnik poziva sistem da zapamti izmenjene podatke o leku. (APSO)12. Sistem pamti izmenjene podatke o leku. (SO)13. Sistem prikazuje korisniku izmenjeni lek i poruku: “Podaci su uspešno izmenjeni.” (IA)

Alternativna scenarija4.1 Ukoliko sistem ne uspe da pronađe lek, obaveštava korisnika porukom: “Sistem ne može da pronađe lek”. Prekida se izvršenje scenarija. (IA)

8.1 Ukoliko sistem ne može da prikaže odabrani lek, obaveštava korisnika porukom: ”Sistem ne može da prikaže lek”. Prekida se izvršenje scenarija. (IA)

13.1 Ukoliko sistem ne može da zapamti izmenjene podatke o leku, obaveštava korisnika porukom: “Sistem ne može da zapamti izmene”. (IA)

1.2.3. Slučaj korišćenja 3: Brisanje lekaNaziv SKBrisanje leka

Aktori SKKorisnik

Učesnici SKKorisnik i sistemPreduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za rad sa lekovima. Učitana je lista postojećih lekova koja je dostupna aktoru.

Osnovni scenario SK

1. Korisnik unosi vrednost po kojoj pretražuje lekove. (APUSO)2. Korisnik poziva sistem da pronađe lekove po zadatoj vrednosti. (APSO)3. Sistem pretražuje lekove po zadatoj vrednosti. (SO)4. Sistem prikazuje korisniku pronađene lekove i poruku: ”Sistem je izvršio pretragu”. (IA)5. Korisnik bira lek koje želi da izbriše. (APUSO)

6

Page 7: Stefan Petrovic Prosoftbuckup

6. Korisnik poziva sistem da obriše lek. (APSO)7. Sistem briše lek. (SO)8. Sistem prikazuje korisniku izbrisani lek i poruku: “Sistem je obrisao lek”. (IA)

Alternativna scenarija

4.1 Ukoliko sistem ne uspe da pronađe lek, obaveštava korisnika porukom: “Sistem ne može da pronađe lek.” Prekida se izvršenje scenarija. (IA)

8.1 Ukoliko sistem ne može dа obriše lek, obaveštava korisnika porukom: “Sistem ne može da obriše lek”.

1.2.4. Slučaj korišćenja 4: Pretraga lekaNaziv SKPretraga leka

Aktori SKKorisnik

Učesnici SKKorisnik i sistem

Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za rad sa lekovima. Učitana je lista postojećih lekova koja je dostupna aktoru.

Osnovni scenario SK

1. Korisnik unosi vrednost po kojoj pretražuje lekove. (APUSO)2. Korisnik poziva sistem da pronađe lekove po zadatoj vrednosti. (APSO)3. Sistem traži lek po zadatoj vrednosti. (SO)4. Sistem prikazuje korisniku podatke o pronađenim lekovima i poruku: ” Sistem je izvršio

pretragu”. (IA)5. Korisnik bira lek koji želi da izmeni/obriše. (APUSO)6. Korisnik poziva sistem da učita podatke o odabranom leku. (APSO)7. Sistem učitava podatke o odabranom leku. (SO)8. Sistem prikazuje korisniku poruku „Odabrani lek je prikazan!“ i prikazuje podatke o

odabranom objektu. (IA)

Alternativna scenarija

4.1 Ukoliko sistem ne može da pronađe lek, obaveštava korisnika porukom: “Sistem ne može da pronađe lek po zadatoj vrednosti.” Prekida se izvršenje scenarija. (IA)

8.1 Ukoliko sistem ne može dа učita lek, obaveštava korisnika porukom: “Sistem ne može da učita lek”.

7

Page 8: Stefan Petrovic Prosoftbuckup

1.2.5. Slučaj korišćenja 5: Unos računaNaziv SKUnos računa

Aktori SKKorsinik

Učesnici SK

Korisnik i sistem

Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za unos računa. Učitana je lista postojećih lekova koja je dostupna aktoru.

Osnovni scenario SK

1. Korisnik unosi podatke o računu. (APUSO)

2. Korisnik kontroliše dа li je korektno uneo podаtke o novom računu. (ANSO)

3. Korisnik poziva sistem da zapamti podatke o računu. (APSO)

4. Sistem čuva račun. (SO)

5. Sistem obaveštava korisnika o uspešnom čuvanju računa i prikazuje poruku: "Sistem je zapamtio račun". (IA)

Alternativna scenarija

5.1 Ukoliko sistem ne može da sačuva račun, prikazuje korisniku poruku: “Sistem ne može da zapamti novi račun”. (IA)

1.2.6 Slučaj korišćenja 6: Pretraga računaNaziv SKPretraga računa

Aktori SKKorisnik

Učesnici SKKorisnik i sistem

Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za rad sa računima. Učitana je lista postojećih računa.

8

Page 9: Stefan Petrovic Prosoftbuckup

Osnovni scenario SK

1. Korisnik unosi vrednost po kojoj pretražuje račun. (APUSO)2. Korisnik poziva sistem da pronađe račun po zadatoj vrednosti. (APSO)3. Sistem traži račune po zadatoj vrednosti. (SO)4. Sistem prikazuje korisniku podatke o pronađenim računima i poruku: ” Sistem je izvršio

pretragu”. (IA)5. Korisnik bira račun koji želi da pronađe/stornira. (APUSO)6. Korisnik poziva sistem da učita podatke o odabranom računu. (APSO)7. Sistem učitava podatke o odabranom računu. (SO)8. Sistem prikazuje korisniku poruku „Odabrani račun je prikazan!“ i prikazuje podatke o

odabranom objektu. (IA)

Alternativna scenarija

4.1 Ukoliko sistem ne može da pronađe račun, obaveštava korisnika porukom: “Sistem ne može da pronađe račun po zadatoj vrednosti.” Prekida se izvršenje scenarija. (IA)

8.1 Ukoliko sistem ne može dа učita račun, obaveštava korisnika porukom: “Sistem ne može da učita račun”.

1.2.7. Slučaj korišćenja 7: Storniranje računaNaziv SKStorniranje računa

Aktori SKKorisnik

Učesnici SKKorisnik i sistem

Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Korisnik je u meniju odabrao opciju Račun i podopciju Storniranje računa. Sistem prikazuje formu za storniranje računa.

Osnovni scenario SK

1. Korisnik unosi broj računa koji želi da stornira. (APUSO)2. Korisnik poziva sistem da prikaže podatke o računu.(APSO)3. Sistem proverava postojanje računa.(SO)4. Sistem prikazuje podatke o računu i prikazuje poruku „Sistem je našao račun po

zadatoj vrednosti“(IA)5. Korisnik poziva sistem da stornira račun. (APSO)6. Sistem stornira račun. (SO)7. Sistem prikazuje poruku „Račun storniran!“ (IA)

Alternativna scenarija

4.1 Ukoliko ne postoji račun sa zadatim brojem sistem prikazuje poruku „ Sistem ne može da nađe račun po zadatoj vrednosti!“ (IA) Prekida se izvršenje scenarija.

9

Page 10: Stefan Petrovic Prosoftbuckup

7.1 Ukoliko račun ne može da se stornira sistem prikazuje poruku „ Račun se ne može stornirati“ (IA)

1.2.8 Slučaj korišćenja 8: Unos proizvođača lekaNaziv SKUnos proizvođača leka

Aktori SKKorisnik

Učesnici SKKorisnik i sistem

Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za unos proizvođača leka.

Osnovni scenario SK

1. Korisnik unosi podatke o proizvođaču leka. (APUSO)2. Korisnik kontroliše da li je ispravno uneo podatke o proizvođaču leka. (ANSO)3. Korisnik poziva sistem da zapamti podatke o proizvođača leka. (APSO)4. Sistem pamti podatke o proizvođaču leka. (SO)5. Sistem prikazuje korisniku lek i poruku: ”Uspešno ste uneli proizvođača leka”. (IA)

Alternativna scenarija

5.1 Ukoliko sistem ne moze da zapamti podatke o leku prikazuje korisniku poruku ”Sistem nije zapamtio proizvođača leka ” (IA)

1.2.9. Slučaj korišćenja 9: Izmena proizvođača lekaNaziv SKIzmena proizvođača leka

Aktori SKKorisnik

Učesnici SKKorisnik i sistem

Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za rad sa proizvođačima lekova. Učitana je lista postojećih proizvođača lekova.

Osnovni scenario SK

1. Korisnik unosi vrednost po kojoj pretražuje proizvođače. (APUSO)2. Korisnik poziva sistem da pronađe proizvođače po zadatoj vrednosti. (APSO)3. Sistem traži proizvođače po zadatoj vrednosti. (SO)4. Sistem prikazuje korisniku pronađene proizvođače i poruku: ”Sistem je izvršio pretragu.” (IA)5. Korisnik bira proizvođača koji želi da izmeni. (APUSO)6. Korisnik poziva sistem da prikaže podatke odabranom proizvođaču. (APSO)

10

Page 11: Stefan Petrovic Prosoftbuckup

7. Sistem vraća podatke o izabranom proizvođaču. (SO)8. Sistem prikazuje korisniku podatke o proizvođaču i poruku .” Sistem je pronašao

proizvođača!“ (IA)9. Korisnik unosi (menja) podatke o proizvođaču. (APUSO)10. Korisnik kontroliše da li je ispravno izmenio podatke o proizvođaču. (ANSO)11. Korisnik poziva sistem da zapamti izmenjene podatke o proizvođaču. (APSO)12. Sistem pamti izmenjene podatke o proizvođaču. (SO)13. Sistem prikazuje korisniku izmenjeni lek i poruku: “Podaci su uspešno izmenjeni.” (IA)

Alternativna scenarija4.1 Ukoliko sistem ne uspe da pronađe proizvođača, obaveštava korisnika porukom: “Sistem ne može da pronađe proizvođača”. Prekida se izvršenje scenarija. (IA)

8.1 Ukoliko sistem ne može da prikaže odabranog proizvođača, obaveštava korisnika porukom: ”Sistem ne može da prikaže proizvođača”. Prekida se izvršenje scenarija. (IA)

13.1 Ukoliko sistem ne može da zapamti izmenjene podatke o proizvođača, obaveštava korisnika porukom: “Sistem ne može da zapamti izmene”. (IA)

1.2.10. Slučaj korišćenja 10: Prijavljivanje korisnikaNaziv SKPrijavljivanje korisnika

Aktori SKKorisnikUčesnici SKKorisnik i sistemPreduslov: Sistem je uključen i prikazuje formu za logovanje.Osnovni scenario SK

1. Korisnik unosi korisničko ime i šifru za autentifikaciju korisnika. (APUSO) 2. Korisnik poziva sistem da pronađe korisnika sa zadatim podacima. (APSO) 3. Sistem pretražuje korisnike. (SO) 4. Sistem prikazuje korisniku poruku: “Korisnik je uspešno ulogovan” i korisniku se omogućava

pristup sistemu .(IA)

Alternativna scenarija

4.1. Ukoliko sistem ne može da nađe korisnika prikazuje poruku korisniku: " Sistem ne može da nađe korisnika na osnovu datih vrednosti".(IA)

11

Page 12: Stefan Petrovic Prosoftbuckup

2. ANALIZAFaza analize opisuje logičku strukturu i ponašanje softverskog sistema (poslovnu logiku softverskog sistema).

Ponašanje softverskog sistema je opisano pomoću sistemskih dijagrama sekvenci, koji se prave za svaki slučaj korišćenja, i pomoću ugovora o sistemskim operacijama, koje se dobijaju na osnovu sistemskih dijagrama sekvenci.

Struktura softverskog sistema se opisuje pomoću konceptualnog i relacionog modela.

2.1 Ponašanje softverskog sistema – Sistemski dijagrami sekvenciSistemski dijagram sekvenci prikazuje, za izdvojeni scenario SK, događaje u određenom redosledu, koji uspostavljaju interakciju između aktora i softverskog sistema.

2.1.1 DS1: Dijagram sekvenci slučaja korišćenja – Unos lekaOsnovni scenario SK

1. Korisnik poziva sistem da zapamti podatke o leku. (APSO)2. Sistem prikazuje korisniku lek i poruku: ”Lek je uspešno unet”. (IA)

Alternativna scenarija

2.1 Ukoliko sistem ne moze da zapamti podatke o leku prikazuje korisniku poruku ”Sistem nije zapamtio lek” (IA)

12

Page 13: Stefan Petrovic Prosoftbuckup

Sa navedenih dijagrama sekvenci uočava se jedna sistemska operacija koju treba projektovati:

1. Signal ZapamtiLek (Lek)

2.1.2 DS2: Dijagram sekvenci slučaja korišćenja – Izmena lekaOsnovni scenario SK:

1. Korisnik poziva sistem da pronađe lekove po zadatoj vrednosti. (APSO)2. Sistem prikazuje korisniku pronađene lekove i poruku: ”Sistem je izvršio pretragu.” (IA)3. Korisnik poziva sistem da prikaže podatke odabranom leku. (APSO)4. Sistem prikazuje korisniku podatke o leku i poruku .” Sistem je pronašao lek!“ (IA)5. Korisnik poziva sistem da zapamti izmenjene podatke o leku. (APSO)6. Sistem prikazuje korisniku izmenjeni lek i poruku: “Podaci su uspešno izmenjeni.” (IA)

Alternativna scenarija2.1 Ukoliko sistem ne uspe da pronađe lek, obaveštava korisnika porukom: “Sistem ne može da pronađe lek”. Prekida se izvršenje scenarija. (IA)

13

Page 14: Stefan Petrovic Prosoftbuckup

4.1 Ukoliko sistem ne može da prikaže odabrani lek, obaveštava korisnika porukom: ”Sistem ne može da prikaže lek”. Prekida se izvršenje scenarija. (IA)

6.1 Ukoliko sistem ne može da zapamti izmenjene podatke o leku, obaveštava korisnika porukom: “Sistem ne može da zapamti izmene”. (IA)

Sa navedenih dijagrama sekvenci uočavaju se dve nove sistemske operacije koje treba projektovati:

1. signal PretražiLekove(KriterijumPretrage, List<Lek>);2. Signal IzmeniLek (Lek)

14

Page 15: Stefan Petrovic Prosoftbuckup

2.1.3 DS3: Dijagram sekvenci slučaja korišćenja – Brisanje lekaOsnovni scenario SK:

1. Korsinik poziva sistem da učita lekove (APSO)

2. Sistem vraća korisniku nađene lekove (IA)

3. Korisnik poziva sistem da obriše lek. (APSO)

4. Sistem prikazuje prodavacu poruku: “Sistem je obrisao lek.” (IA)

15

Page 16: Stefan Petrovic Prosoftbuckup

Alternativna scenarija:

2.1. Ukoliko sistem ne može da nađe proizvode on prikazuje korisniku poruku: “Sistem ne može da nađe lekove po zadatim vrednostima”. Prekida se izvršenje scenaria. (IA)

4.1.Ukoliko sistem ne može da obriše proizvode on prikazuje korisniku poruku: “Sistem ne može da obriše proizvode”. (IA)

16

Page 17: Stefan Petrovic Prosoftbuckup

Sa navedenih sekvencnih dijagrama uočavaju se dve sistemske operacije koje treba projektovati:

1. signal PretražiLekove(KriterijumPretrage, List<Lek>);2. signal ObrišiLek(Lek);

2.1.4 DS4: Dijagram sekvenci slučaja korišćenja – Pretraga lekaOsnovni scenario SK:

1. Korisnik poziva sistem da pronađe lekove po zadatoj vrednosti. (APSO)2. Sistem prikazuje korisniku podatke o pronađenim lekovima i poruku: ” Sistem je

izvršio pretragu”. (IA)3. Korisnik poziva sistem da učita podatke o odabranom leku. (APSO)4. Sistem prikazuje korisniku poruku „Odabrani lek je prikazan!“ i prikazuje podatke o

odabranom objektu. (IA)

Alternativna scenarija

2.1 Ukoliko sistem ne može da pronađe lek, obaveštava korisnika porukom: “Sistem ne može da pronađe lek po zadatoj vrednosti.” Prekida se izvršenje scenarija. (IA)

17

Page 18: Stefan Petrovic Prosoftbuckup

4.1 Ukoliko sistem ne može dа učita lek, obaveštava korisnika porukom: “Sistem ne može da učita lek”.

Sa navedenih dijagrama sekvenci uočavaju se dve nove sistemske operacije koje treba projektovati:

(1)signal PretražiLekove(KriterijumPretrage, List<Lek>);

2.1.5 DS5: Dijagram sekvenci slučaja korišćenja – Unos računaOsnovni scenario SK:

1. Korisnik poziva sistem da zapamti podatke o računu. (APSO)

2. Sistem obaveštava korisnika o uspešnom čuvanju računa i prikazuje poruku: "Sistem je zapamtio račun". (IA)

18

Page 19: Stefan Petrovic Prosoftbuckup

Alternativna scenarija:

2.1 Ukoliko sistem ne može da zapamti podatke o novom računu on prikazuje poruku: "Sistem ne može da zapamti račun". (IA)

19

Page 20: Stefan Petrovic Prosoftbuckup

Sa navedenih sekvencnih dijagrama uočavaju se dve sistemske operacije koje treba projektovati:

1. signal PretražiLekove (KriterijumPretrage, List<Lek>);2. signal ZapamtiRačun(Račun);

2.1.6 DS6: Dijagram sekvenci slučaja korišćenja – Pretraga računa

1. Korisnik poziva sistem da pronađe račun po zadatoj vrednosti. (APSO)2. Sistem prikazuje korisniku podatke o pronađenim računima i poruku: ” Sistem je

izvršio pretragu”. (IA)3. Korisnik poziva sistem da učita podatke o odabranom računu. (APSO)4. Sistem prikazuje korisniku poruku „Odabrani račun je prikazan!“ i prikazuje podatke

o odabranom objektu. (IA)

Alternativna scenarija

2.1 Ukoliko sistem ne može da pronađe račun, obaveštava korisnika porukom: “Sistem ne može da pronađe račun po zadatoj vrednosti.” Prekida se izvršenje scenarija. (IA)

20

Page 21: Stefan Petrovic Prosoftbuckup

4.1 Ukoliko sistem ne može dа učita račun, obaveštava korisnika porukom: “Sistem ne može da učita račun”.

Sa navedenih dijagrama sekvenci uočavaju se dve nove sistemske operacije koje treba projektovati:

1. Signal PronadjiRacun (Racun)

2.1.7. DS7: Dijagram sekvenci slučaja korišćenja – Storniranje računaOsnovni scenario SK:

1. Korisnik poziva sistem da prikaže podatke o računu.(APSO)2. Sistem prikazuje podatke o računu i prikazuje poruku „Sistem je našap račun

po zadatoj vrednosti“(IA)3. Korisnik poziva sistem da stornira račun. (APSO)4. Sistem prikazuje poruku „Račun storniran!“ (IA)

21

Page 22: Stefan Petrovic Prosoftbuckup

Alternativna scenarija

2.1 Ukoliko ne postoji račun sa zadatim brojem sistem prikazuje poruku „ Sistem ne može da nađe račun po zadatoj vrednosti!“ (IA) Prekida se izvršenje scenarija.

4.1 Ukoliko račun ne može da se stornira sistem prikazuje poruku „ Račun se ne može stornirati“ (IA)

22

Page 23: Stefan Petrovic Prosoftbuckup

Sa navedenih sekvencnih dijagrama uočavaju se dve sistemske operacije koje treba projektovati:

1. signal Storniraj (Racun);

2.1.8 DS8: Dijagram sekvenci slučaja korišćenja – Unos proizvđača lekaOsnovni scenario SK:

1. Korisnik poziva sistem da zapamti proizvođača. (APSO)

2. Sistem prikazuje poruku da je proizvođač uspešno unet. (IA)

Alternativna scenarija:

2.1. Ukoliko sistem ne može da zapamti podatke o novom proizvođaču on prikazuje korisniku poruku “Sistem ne može da zapamti novog proizvođača”. (IA)

23

Page 24: Stefan Petrovic Prosoftbuckup

Sa navedenih sekvencnih dijagrama uočavaju se sistemske operacije koje treba projektovati:

signal ZapamtiProizvođača(Proizvođač);

2.1.9 DS9: Dijagram sekvenci slučaja korišćenja – Izmena podataka o proizvođačuOsnovni scenario SK:

1. Korisnik poziva sistem da pronađe proizvođača po zadatoj vrednosti. (APSO)

2. Sistem prikazuje prodavcu poruku: "Sistem je našao proizvođača." (IA)

3. Korisnik poziva sistem da učita izabranog proizvođača. (APSO)

4. Sistem prikazuje korisniku podatke o izabranom proizvođaču. (IA)

5. Korisnik poziva sistem da izmeni podatke o proizvođaču. (APSO)

6. Sistem prikazuje korisniku poruku: “Sistem je izmenio podatke o proizvođaču.” (IA)

24

Page 25: Stefan Petrovic Prosoftbuckup

Alternativna scenarija:

2.1. Ukoliko sistem ne može da nađe proizvođača on prikazuje korsinku poruku: “Sistem ne može da nađe željenog proizvođača”. Prekida se izvršenje scenaria. (IA)

4.1 Ukoliko sistem ne može da prikaže podatke o proizvođaču, obaveštava korisnika o tome: “Sistem ne može da prikaže podatke o izabranom proizvođaču”. Prekida se izvršenje scenarija. (IA)

25

Page 26: Stefan Petrovic Prosoftbuckup

6.1. Ukoliko sistem ne može da izmeni podatke o proizvođaču on prikazuje prodavcu poruku: “Sistem ne može da izmeni proizvođača”. (IA)

26

Page 27: Stefan Petrovic Prosoftbuckup

Sa navedenih sekvencnih dijagrama uočavaju se sistemske operacije koje treba projektovati:

1. signal PretražiProizvođače(KriterijumPretrage, List<Proizvođač>);2. signal IzaberiProizvođača(Proizvođač);3. signal IzmeniProizvođača(Proizvođač);

2.1.10 DS10: Dijagram sekvenci slučaja korišćenja – Prijavljivanje korisnikaOsnovni scenario SK

1. Korisnik poziva sistem da pronađe korisnika sa zadatim podacima. (APSO) 2. Sistem prikazuje korisniku poruku: “Korisnik je uspešno ulogovan” i korisniku se

omogućava pristup sistemu .(IA)

27

Page 28: Stefan Petrovic Prosoftbuckup

Alternativna scenarija

2.1. Ukoliko sistem ne može da nađe korisnika prikazuje poruku korisniku: " Sistem ne može da nađe korisnika na osnovu datih vrednosti".(IA)

Sa navedenih dijagrama sekvenci uočava se jedna sistemska operacija koju treba projektovati:

1. Signal PronadjiKorisnika (Korisnik)

28

Page 29: Stefan Petrovic Prosoftbuckup

Kao rezultat analize scenarija dobijeno je ukupno 12 sistemskih operacija koje treba projektovati:

1. Signal PronadjiKorisnika(Korisnik)2. Signal ZapamtiLek(Lek)3. Signal IzmeniLek(Lek)4. signal PretraziLekove(KriterijumPretrage, List<Lek>)5. signal ObrišiLek(Lek)6. signal ZapamtiRacun(Racun)7. Signal PronadjiRacun(Racun)8. signal Storniraj(Racun)9. signal ZapamtiProizvodjaca(Proizvođač)10. signal PretražiProizvodjace(KriterijumPretrage, List<Proizvođač>)11. signal IzaberiProizvodjaca(Proizvođač)12. signal IzmeniProizvodjaca(Proizvođač)

2.2 Ponašanje softverskog sistema - Definisanje ugovora o sistemskim operacijama

Ugovor UG1: PronadjiKorisnika

Operacija: PronadjiKorisnika(Korisnik):signal

Veza sa SK: SK10

Preduslovi:

Postuslovi: Korisnik je prijavljen na sistem.

Ugovor UG2: ZapamtiLek

Operacija: ZapamtiLek(Lek):signal

Veza sa SK: SK1

Preduslovi: Mora biti zadovoljeno prosto vrednosno ograničenje nad objektom Lek.

Postuslovi: Novi Lek je sačuvan u sustemu. Strukturno ograničenje nad objektom Lek je zadovoljeno.

Ugovor UG3: IzmeniLek

Operacija: IzmeniLek(Lek) :signal

Veza sa SK: SK2

Preduslovi: Mora biti zadovoljeno prosto vrednosno ograničenje nad objektom Bicikl. U sistemu postoji Lek koji se menja.

Postuslovi: Lek je izmenjen. Strukturno ograničenje nad objektom Bicikl je zadovoljeno.

29

Page 30: Stefan Petrovic Prosoftbuckup

Ugovor UG4: PretraziLekove

Operacija: PretraziLekove(KriterijumPretrage, List<Lek>)

Veza sa SK: SK2, SK3, SK4,SK5

Preduslovi: -

Postuslovi: Lista Lekova je vraćena.

Ugovor UG5: ObrišiLek

Operacija: ObrišiLek(Lek):signal:signal

Veza sa SK: SK3

Preduslovi:

Postuslovi: Proizvod je obrisan. Strukturno ograničenje nad objektom Proizvod mora biti zadovoljeno

Ugovor UG6: ZapamtiRacun

Operacija: ZapamtiRacun(Racun):signal

Veza sa SK: SK5

Preduslovi:Ako je račun storniran ne može se izvršiti sistemska operacija. Moraju biti zadovoljena prosta vrednosna i strukturna ograničenja nad objektom Račun.

Postuslovi: Izračunata je vrednost svake od stavki računa. Izračunata je ukupna vrednost računa.

Ugovor UG7: PronadjiRacun

Operacija: PronadjiRacun(Racun):signal

Veza sa SK:

Preduslovi:

Postuslovi: Lista računa je vraćena.

Ugovor UG8: Storniraj

Operacija: Storniraj(Racun):signal

Veza sa SK: SK7

Preduslovi: Ako je račun storniran ne može se izvršiti sistemska operacija

Postuslovi: Račun je storniran

Ugovor UG9: ZapamtiProizvodjaca

Operacija: ZapamtiProizvodjaca(Proizvođač):signal

30

Page 31: Stefan Petrovic Prosoftbuckup

Veza sa SK: SK8

Preduslovi: Prosto vrednosno ograničenje nad objektom Proizvođač mora biti zadovoljeno. Strukturno ograničenje nad objektom Proizvođač mora biti zadovoljeno

Postuslovi: Podaci o proizvođaču su zapamćeni.

Ugovor UG10: PretraziProizvodjace

Operacija: PretražiProizvodjace(KriterijumPretrage, List<Proizvođač>):signal

Veza sa SK: SK8, SK9

Preduslovi:

Postuslovi: Lista proizvođača je vraćena.

Ugovor UG11: IzaberiProizvodjaca

Operacija: IzaberiProizvodjaca(Proizvođač):signal

Veza sa SK: SK9

Preduslovi:

Postuslovi: Proizvođač je izabran.

Ugovor UG12: IzmeniProizvodjaca

Operacija: IzmeniProizvodjaca(Proizvođač):signal

Veza sa SK: SK9

Preduslovi: Prosto vrednosno ograničenje nad objektom Proizvođač mora biti zadovoljeno. Strukturno ograničenje nad objektom Proizvođač mora biti zadovoljeno.

Postuslovi: Podaci o proizvođaču su zapamćeni.

31

Page 32: Stefan Petrovic Prosoftbuckup

2.3 Struktura softvarskog sistema – Konceptualni (domenski) model

2.4 Struktura softverskog sistema – Relacioni modelNa osnovu konceptualnog modela koji je predstavljen dijagramom klasa dobijen je sledeći relacioni model:

Proizvodjac (PID, PIB, NazivP, Sediste, tel,e-mail)

Lek (LekID, NazivLeka, Jacina, Cena, OblikID, INNID, PID)

Oblik (OblikID, NazivOblika)

INN (INNID, INN, ATCCode)

Racun (BrRacuna, Datum, Suma)

Stavka (BrRacuna, RbStavke, Kolicina, Vrednost, LekID)

32

Page 33: Stefan Petrovic Prosoftbuckup

Tabela Proizvodjac Prosto vrednosno ograničenje

Složeno vrednosno ograničenje Strukturno ograničenje

tributi Ime Tip atributa

Vrednost atributa

Međuzavisnost atributa jedne tabele

Međuzavisnost atributa vise tabela

INSERT /

UPDATE CASCADESLek

DELETE RESTRICTED Lek

PID Integer Not null and >0

PIB String Not null

NazivP String Not null

Sediste String Not null

Telefon String Not null

e-mail String Not null

Tabela Lek Prosto vrednosno ograničenje

Složeno vrednosno ograničenje Strukturno ograničenje

Atributi Ime Tip atributa

Vrednost atributa

Međuzavisnost atributa jedne tabele

Međuzavisnost atributa vise tabela

INSERT RESTRICTED

Oblik, INN, Proizvodjac

UPDATE CASCADES

StavkaRacuna, Oblik, INNRESTRICTEDProizvodjac

DELETE RESTRICTED StavkaRacuna,P

LekID Integer Not nulland >0

NazivLeka String Not null

Jacina String Not null

Cena Double >0(default:0)

OblikID Integer Not nulland >0

INNID Integer Not nulland >0

PID Integer Not null and >0

Tabela Oblik Prosto vrednosno Složeno vrednosno ograničenje Strukturno

33

Page 34: Stefan Petrovic Prosoftbuckup

ograničenje ograničenje

Atributi Ime Tip atributa

Vrednost atributa

Međuzavisnost atributa jedne tabele

Međuzavisnost atributa vise tabela

INSERT /

UPDATE CASCADES Lek

DELETE RESTRICTED

Lek

OblikID Integer Not null and >0

NazivOblika String Not null

Tabela INN Prosto vrednosno ograničenje

Složeno vrednosno ograničenje Strukturno ograničenje

Atributi Ime Tip atributa

Vrednost atributa

Međuzavisnost atributa jedne tabele

Međuzavisnost atributa vise tabela

INSERT /

UPDATE CASCADES Lek

DELETE RESTRICTED

Lek

INNID Integer Not null and >0

INN String Not null

ATCCode String Not null

Tabela RacunProstoVrednosnoOgra

ničenjeSloženoVrednosnoOgran

ičenjeStrukturnoOgran

ičenje

Atributi

ImeTipAtrib

utaVrednosAtri

buta

MeđuzavAatributaJed

neTabele

MeđuzavAtributa

VišeTabela

INSERT /

UPDATECASCADES

StavkaRačuna

DELETE CASCADES

StavkaRačuna

BrRacuna Integernot null and

>0

Datum Date not null

Suma Double (default:0)Suma=SUM(StavkaRačuna.Vr

ednost)

34

Page 35: Stefan Petrovic Prosoftbuckup

Tabela StavkaRacunaProstoVrednosnoOgra

ničenjeSloženoVrednosnoOgran

ičenjeStrukturnoOgran

ičenje

Atributi

ImeTipAtrib

utaVrednosAtri

buta

MeđuzavAatributaJed

neTabele

MeđuzavAtributaViše

TabelaINSERT

RESTRICTED Račun, Lek

UPDATE

RESTRICTED Račun,

Lek

DELETE /

IDRačuna Integernot null and

>0

RbStavke Integernot null and

>0

Kolicina Integer>0

(default:0)

Vrednost Double (default:0)

Vrednost = Količina*Proizvod.Cen

a

PID Integernot null and

>0

35

Page 36: Stefan Petrovic Prosoftbuckup

36