stefan petrovic prosoftbuckup
TRANSCRIPT
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
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
36