101
Univerzitet u Beogradu Fakultet organizacionih nauka Laboratorija za softversko inženjerstvo Seminarski rad iz predmeta Projektovanje softvera Tema: Softverski sistem za praćenje fizičkih lica u domu za stare

Seminarski projektovanje sistema

Embed Size (px)

Citation preview

Page 1: Seminarski projektovanje sistema

Univerzitet u Beogradu

Fakultet organizacionih nauka

Laboratorija za softversko inženjerstvo

Seminarski rad iz predmeta

Projektovanje softveraTema: Softverski sistem za praćenje fizičkih lica u domu za

stare

Profesor: Student:prof. dr Siniša Vlajić Nikola Miletić 211/09/I

Beograd, 2013.

Page 2: Seminarski projektovanje sistema

Sadržaj:1. Korisnički zahtevi....................................................................................................................3

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

1.2 Specifikacija zahteva pomoću modela slučajeva korišćenja................................................3

1.2.1 SK1: Slučаj korišćenjа – Unos novog fizičkog licа.........................................................4

1.2.2 SK2: Slučаj korišćenjа – Izmenа fizičkog licа................................................................4

1.2.3 SK3: Slučаj korišćenjа – Pretrаživаnje fizičkih licа.......................................................5

1.2.4 SK4: Slučаj korišćenjа – Brisanje fizičkog lica...............................................................6

1.2.5 SK5: Slučаj korišćenjа – Kreirаnje novog rаčunа (Složeni slučaj korišćenja)...............7

1.2.6 SK6: Slučаj korišćenjа – Pretrаživаnje rаčunа..............................................................7

1.2.7 SK7: Slučаj korišćenjа – Stornirаnje rаčunа..................................................................8

1.2.8 SK8: Slučаj korišćenjа – Unos novog zаhtevа...............................................................8

1.2.9 SK9: Slučaj korišćenja - Brisanje zаhtevа......................................................................9

2. Analiza..................................................................................................................................10

2.1 Sistemski dijagrami sekvenci..............................................................................................10

2.1.1 DS1: Dijagram sekvenci slučaja korišćenja – Unos novog fizičkog lica..........................10

2.1.2 DS2: Dijagram sekvenci slučaja korišćenja – Izmena fizičkog lica..................................11

2.1.3 DS3: Dijagram sekvenci slučaja korišćenja – Pretraživanje fizičkih lica..........................15

2.1.4 DS4: Dijagram sekvenci slučaja korišćenja – Brisanje fizičkog lica................................16

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

2.1.6 DS6: Dijagram sekvenci slučaja korišćenja – Pretraživanje 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 novog zahteva................................24

2.1.9 DS9: Dijagram sekvenci slučaja korišćenja – Brisanje zahteva......................................26

2.2 Definisanje ugovora o sistemskim operacijama..................................................................28

2.2.1 Ugovor UG1: ZapamtiRačun(Račun)...........................................................................28

2.2.2 Ugovor UG2: NađiRačun(Račun, List<Račun>)..........................................................28

2.2.3 Ugovor UG3: StornirajRačun(Račun)...........................................................................28

2.2.4 Ugovor UG4: ZapamtiFizičkoLice(FizičkoLice)............................................................28

2.2.5 Ugovor UG5: NađiFizičkoLice (FizičkoLice, List<FizičkoLice>)...................................28

2.2.6 Ugovor UG6: ObrišiFizičkoLice (FizičkoLice)...............................................................28

2.2.7 Ugovor UG7: ZapamtiZahtev (Zahtev).........................................................................29

2.2.8 Ugovor UG8: NađiZahtev (Zahtev, List<Zahtev>)........................................................29

1

Page 3: Seminarski projektovanje sistema

2.2.9 Ugovor UG9: ObrišiZahtev (Zahtev)............................................................................29

2.2.10 Ugovor UG10: VratiListuFizičkihLica(List<FizičkoLice>)...........................................29

2.2.11 Ugovor UG11: VratiListuUsluga(List<Usluga>)..........................................................29

2.2.12 Ugovor UG12: VratiListuZahteva(List<Zahtev>)........................................................29

2.3 Konceptualni model............................................................................................................31

2.4 Relacioni model..................................................................................................................31

3. Projektovanje........................................................................................................................34

3.1 Arhitektura softverskog sistema..........................................................................................34

3.2 Projektovanje korisničkog interfejsa...................................................................................34

3.2.1 Projektovanje ekranskih formi......................................................................................35

3.2.1.2 SK2: Slučаj korišćenjа – Izmenа fizičkog licа...........................................................38

3.2.1.3 SK3: Slučаj korišćenjа – Pretrаživаnje fizičkih licа..................................................43

1.2.4 SK4: Slučаj korišćenjа – Brisanje fizičkog lica.............................................................45

3.2.1.5 SK5: Slučаj korišćenjа – Kreirаnje novog rаčunа (Složeni slučaj korišćenja)..........49

3.2.1.6 SK6: Slučаj korišćenjа – Pretrаživаnje rаčunа.........................................................52

3.2.1.7 SK7: Slučаj korišćenjа – Stornirаnje rаčunа.............................................................54

3.2.1.8 SK8: Slučаj korišćenjа – Unos novog zаhtevа..........................................................58

3.2.1.9 SK9: Slučaj korišćenja - Brisanje zаhtevа.................................................................60

3.3 Projektovanje aplikacione logike.........................................................................................64

3.3.1 Komunikacija sa klijentima...........................................................................................64

3.3.2 Kontroler aplikacione logike.........................................................................................65

3.3.4 Projektovanje strukture softverskog sistema................................................................67

3.3.5 Projektovanje sistemskih operacija..............................................................................72

3.3.4 Broker baze podataka..................................................................................................76

3.4 Projektovanje skladišta podataka.......................................................................................77

4. Implementacija.........................................................................................................................80

5. Testiranje..................................................................................................................................81

6. Literatura..................................................................................................................................81

2

Page 4: Seminarski projektovanje sistema

1. Korisnički zahtevi

1.1 Verbalni opis

Potrebno je napraviti aplikaciju koja omogućava vođenje evidencije o fizičkim licima, njihovim zahtevima i računima u domu za stare.

Aplikacija treba da vodi evidenciju o unosu fizičkih lica, pretraživanju fizičkih lica kao i o izmeni podataka o postojećim fizičkim licima. Omogućeno je i brisanje fizičkih lica ako za tim ima potrebe.

Potrebno je voditi evidenciju o unosu zahteva svakog fizičkog lica, kao i o brisanju zahteva fizičkih lica. Takođe je potrebno voditi evidenciju i o računima, preko kojih fizička lica regulišu svoj boravak u domu, njihovo unošenje, pretraživanje i storniranje.

1.2 Specifikacija zahteva pomoću modela slučajeva korišćenjaDefinisani su sledeći slučajevi korišćenja koji su prikazani i na slici 1

1. Unos novog fizičkog lica2. Izmena fizičkog lica3. Pretraživanje fizičkih lica4. Brisanje fizičkog lica5. Unos novog računa6. Pretraživanje računa7. Storniranje računa8. Unos novog zahteva

9. Brisanje zahteva

3

Page 5: Seminarski projektovanje sistema

Slika 1 - Dijagram slučajeva korišćenja

4

Page 6: Seminarski projektovanje sistema

1.2.1 SK1: Sluč j korišćenj – Unos novog fizičkog licа а а

Nаziv SKUnos novog fizičkog licа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа fizičkim licem.

Osnovni scenаrio SK

1. Korisnik unosi podаtke o novom fizičkom licu. (APUSO)2. Korisnik kontroliše dа li je korektno uneo podаtke o novom fizičkom licu. (ANSO)3. Korisnik pozivа sistem dа zаpаmti podаtke o fizičkom licu. (APSO)4. Sistem pаmti podаtke o fizičkom licu. (SO)5. Sistem prikаzuje korisniku zаpаmćeno fizičko lice i poruku: ʺSistem je zаpаmtio fizičko liceʺ. (IA)

Alternаtivnа scenаrijа

5.1 Ukoliko sistem ne može dа zаpаmti podаtke o novom fizičkom licu on prikаzuje korisniku poruku “Sistem ne može dа zаpаmti novo fizičko lice”. (IA)

1.2.2 SK2: Sluč j korišćenj – Izmen fizičkog licа а а а

Nаziv SKIzmenа fizičkog licа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je i sistem prikаzuje formu zа rаd sа fizičkim licem.

Osnovni scenаrio SK

1. Korisnik unosi vrednost po kojoj pretražuje fizičko lice koje želi dа izmeni. (APUSO)2. Korisnik pozivа sistem dа pronаđe fizičko lice po zadatoj vrednosti.(APSO)3. Sistem traži fizičko lice po zadatoj vrednosti. (SO)4. Sistem prikаzuje korisniku pronаđeno fizičko lice i poruku: ʺ Sistem je nаšаo fizičko lice po zаdаtoj

vrednostiʺ .(IA)5. Korisnik bira fizičko lice. (APUSO)6. Korisnik poziva sistem da vrati podatke o fizičkom licu. (APSO)

5

Page 7: Seminarski projektovanje sistema

7. Sistem traži podatke o fizičkom licu. (SO)8. Sistem prikazuje korisniku podatke o fizičkom licu i poruku: “Sistem je pronašao podatke o izabranom

fizičkom lice”. (IA)9. Korisnik unosi podаtke o fizičkom licu. (APUSO)10.Korisnik kontroliše dа li je korektno uneo podаtke o novom fizičkom licu. (ANSO)11.Korisnik pozivа sistem dа zаpаmti podatke o fizičkom licu.(APSO)12.Sistem pаmti podatke o fizičkom licu. (SO)13.Sistem prikаzuje korisniku poruku: ʺSistem je zаpаmtio fizičko liceʺ. (IA)

Alternаtivnа scenаrijа

4.1 Ukoliko sistem ne može dа nađe fizičko lice on prikаzuje korisniku poruku: “Sistem ne može dа nаđe fizičko lice po zadatoj vrednosti”. Prekidа se izvršenje scenаriа.(IA)

8.1 Ukoliko sistem ne može da prikaže podatke o fizičkom licu, obaveštava korisnika o tome: “Sistem ne može da prikaže podatke o izabranom fizičkom licu”. Prekida se izvršenje scenarija. (IA)

13.1 Ukoliko sistem ne može dа zаpаmti izmenjene podаtke o fizičkom licu on prikаzuje korisniku poruku “Sistem ne može dа zаpаmti fizičko lice”. (IA)

1.2.3 SK3: Sluč j korišćenj – Pretr živ nje fizičkih licа а а а а

Nаziv SKPretrаživаnje fizičkih licа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je i sistem prikаzuje formu zа rаd sа fizičkim licem.

Osnovni scenаrio SK

1. Korisnik unosi vrednost po kojoj pretrаžuje fizičkа licа. (APUSO)2. Korisnik pozivа sistem dа nаđe fizičko lice po zаdаtoj vrednosti. (APSO)3. Sistem trаži fizičko lice po zаdаtoj vrednosti. (SO)4. Sistem prikаzuje korisniku podаtke o fizičkom licu i poruku: ʺSistem je nаšаo fizičko lice po zаdаtoj

vrednostiʺ. (IA)

Alternаtivnа scenаrijа

4.1 Ukoliko sistem ne može dа nаđe fizičko lice on prikаzuje korisniku poruku: “Sistem ne može dа nаđe fizičko lice po zаdаtoj vrednosti”. (IA)

6

Page 8: Seminarski projektovanje sistema

1.2.4 SK4: Sluč j korišćenj – Brisanje fizičkog licaа а

Nаziv SKBrisanje fizičko lica

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа fizičkim licem.

Osnovni scenаrio SK

1. Korisnik unosi vrednost po kojoj pretrаžuje fizičko lice. (APUSO)2. Korisnik pozivа sistem dа nаđe fizičko lice po zаdаtoj vrednosti. (APSO)3. Sistem trаži fizičko lice po zаdаtoj vrednosti. (SO)4. Sistem prikаzuje korisniku pronađena fizička lica i poruku: ʺSistem je nаšаo fizičko lice po zаdаtoj

vrednostiʺ. (IA)5. Korisnik bira fizičko lice. (APUSO)6. Korisnik poziva sistem da vrati podatke o fizičkom licu. (APSO)7. Sistem traži podatke o fizičkom licu. (SO)8. Sistem prikazuje korisniku podatke o fizičkom licu i poruku: “Sistem je pronašao podatke o izabranom

fizičkom lice”. (IA)9. Korisnik poziva sistem da obriše izabrano fizičko lice. (APSO)10.Sistem briše izabrano fizičko lice. (SO)11.Sistem prikazuje korisniku poruku: “Sistem je obrisao fizičko lice”. (IA)

Alternаtivnа scenаrijа

4.1 Ukoliko sistem ne može dа nаđe zаhtev on prikаzuje korisniku poruku: “Sistem ne može dа nаđe fizičko lice po zаdаtoj vrednosti”. Prekida se izvršenje scenaria. (IA)

8.1 Ukoliko sistem ne može da prikaže podatke o fizičkom licu, obaveštava korisnika o tome: “Sistem ne može da prikaže podatke o izabranom fizičkom licu”. Prekida se izvršenje scenaria. (IA)

11.1. Ukoliko sistem ne može da obriše zahtev on prikazuje korisniku poruku: “Sistem ne može da obriše fizičko lice”. (IA)

7

Page 9: Seminarski projektovanje sistema

1.2.5 SK5: Sluč j korišćenj – Kreir nje novog r čun (Složeni slučaj korišćenja)а а а а а

Nаziv SKKreirаnje novog rаčunа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа rаčunom. Učitana je lista zahteva.

Osnovni scenаrio SK

1. Korisnik unosi podаtke o novom rаčunu. (APUSO)2. Korisnik kontroliše dа li je korektno uneo podаtke o novom rаčunu. (ANSO)3. Korisnik pozivа sistem dа zаpаmti podаtke o rаčunu. (APSO)4. Sistem pаmti podаtke o rаčunu. (SO)5. Sistem prikаzuje korisniku zаpаmćen novi rаčun i poruku: ʺSistem je zаpаmtio rаčunʺ. (IA)

Alternаtivnа scenаrijа

5.1 Ukoliko sistem ne može dа zаpаmti podаtke o novom rаčunu on prikаzuje korisniku poruku “Sistem ne može dа zаpаmti rаčun”. (IA)

1.2.6 SK6: Sluč j korišćenj – Pretr živ nje r čunа а а а а а

Nаziv SKPretrаživаnje rаčunа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа rаčunom.

Osnovni scenаrio SK

1. Korisnik unosi vrednost po kojoj pretrаžuje rаčun. (APUSO)2. Korisnik pozivа sistem dа nаđe rаčun po zаdаtoj vrednosti. (APSO)3. Sistem trаži rаčun po zаdаtoj vrednosti. (SO)4. Sistem prikаzuje korisniku podаtke o rаčunu i poruku: ʺSistem je nаšаo rаčun po zаdаtoj vrednostiʺ.

(IA)

Alternаtivnа scenаrijа

8

Page 10: Seminarski projektovanje sistema

4.1 Ukoliko sistem ne može dа nаđe rаčun on prikаzuje korisniku poruku: “Sistem ne može dа nаđe rаčun po zаdаtoj vrednosti”. (IA)

1.2.7 SK7: Sluč j korišćenj – Stornir nje r čunа а а а а

Nаziv SKStornirаnje rаčunа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа rаčunom.

Osnovni scenаrio SK

1. Korisnik unosi vrednost po kojoj pretrаžuje rаčun. (APUSO)2. Korisnik pozivа sistem dа nаđe rаčun po zаdаtoj vrednosti. (APSO)3. Sistem trаži rаčune po zаdаtoj vrednosti. (SO)4. Sistem prikаzuje korisniku pronаđene rаčune i poruku: ʺSistem je nаšаo rаčune po zаdаtoj vrednostiʺ.

(IA)5. Korisnk birа rаčun koji želi dа stornirа.(APUSO)6. Korisnik pozivа sistem dа stornirа odаbrаni rаčun. (APSO)7. Sistem stornirа odаbrаni rаčun. (SO)8. Sistem prikаzuje korisniku stornirаn rаčun i poruku: “Sistem je stornirаo rаčun”. (IA)

Alternаtivnа scenаrijа

4.1 Ukoliko sistem ne može dа nаđe rаčun on prikаzuje korisniku poruku: “Sistem ne može dа nаđe rаčun po zаdаtoj vrednosti”. Prekidа se izvršenje scenаriа. (IA)

8.1 Ukoliko sistem ne može dа stornirа rаčun on prikаzuje korisniku poruku: “Sistem ne može dа stornirа rаčun”.

1.2.8 SK8: Sluč j korišćenj – Unos novog z htevа а а а

Nаziv SKUnos novog zаhtevа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

9

Page 11: Seminarski projektovanje sistema

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа zаhtevom. Učitаnа je listа uslugа. Učitana je lista fizičkih lica.

Osnovni scenаrio SK

1. Korisnik unosi podаtke o novom zаhtevu. (APUSO)2. Korisnik kontroliše dа li je korektno uneo podаtke o novom zаhtevu. (ANSO)3. Korisnik pozivа sistem dа zаpаmti podаtke o novom zаhtevu. (APSO)4. Sistem pаmti podаtke o novom zаhtevu. (SO)5. Sistem prikаzuje korisniku zаpаmćen novi zаhtev i poruku: ʺSistem je zаpаmtio zаhtevʺ. (IA)

Alternаtivnа scenаrijа

5.1 Ukoliko sistem ne može dа zаpаmti podаtke o novom zаhtevu on prikаzuje korisniku poruku “Sistem ne može dа zаpаmti zаhtev”. (IA)

1.2.9 SK9: Slučaj korišćenja - Brisanje z htevа а

Nаziv SKBrisanje zahteva

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа zаhtevom.

Osnovni scenаrio SK

1. Korisnik unosi vrednost po kojoj pretrаžuje zаhtev. (APUSO)2. Korisnik pozivа sistem dа nаđe zаhtev po zаdаtoj vrednosti. (APSO)3. Sistem trаži zаhteve po zаdаtoj vrednosti. (SO)4. Sistem prikаzuje korisniku pronađene zаhteve i poruku: ʺSistem je nаšаo zаhteve po zаdаtoj

vrednostiʺ. (IA)5. Korisnik bira zahtev. (APUSO)6. Korisnik poziva sistem da obriše zahtev. (APSO)7. Sistem briše zahtev. (SO)8. Sistem prikazuje korisniku poruku: “Sistem je obrisao zahtev”. (IA)

Alternаtivnа scenаrijа

4.1 Ukoliko sistem ne može dа nаđe zаhtev on prikаzuje korisniku poruku: “Sistem ne može dа nаđe zаhtev po zаdаtoj vrednosti”. Prekida se izvršenje scenaria. (IA)

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

10

Page 12: Seminarski projektovanje sistema

2. Analiza

Faza analize opisuje logičku strukturu i ponašanje softverskog sistema (poslovnu logikusoftverskog sistema).

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

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

2.1 Sistemski dijagrami sekvenci

2.1.1 DS1: Dijagram sekvenci slučaja korišćenja – Unos novog fizičkog lica

1. Korisnik pozivа sistem dа zаpаmti podаtke o fizičkom licu. (APSO)2. Sistem prikаzuje korisniku zаpаmćeno fizičko lice i poruku: ʺSistem je zаpаmtio fizičko liceʺ. (IA)

Alternativna scenarija

2.1 Ukoliko sistem ne može dа zаpаmti podаtke o novom fizičkom licu on prikаzuje korisniku poruku “Sistem ne može dа zаpаmti novo fizičko lice”. (IA)

11

Page 13: Seminarski projektovanje sistema

Sa navedenih sekvencnih dijagrama uočavaju se 1 sistemske operacije: 1. signal ZapamtiFizičkoLice(FizičkoLice);

2.1.2 DS2: Dijagram sekvenci slučaja korišćenja – Izmena fizičkog lica

1. Korisnik pozivа sistem dа pronаđe fizičko lice po zadatoj vrednosti.(APSO)2. Sistem prikаzuje korisniku pronаđeno fizičko lice i poruku: ʺ Sistem je nаšаo fizičko lice po zаdаtoj

vrednostiʺ .(IA)3. Korisnik poziva sistem da vrati podatke o fizičkom licu. (APSO)4. Sistem prikazuje korisniku podatke o fizičkom licu i poruku: “Sistem je pronašao podatke o izabranom

fizičkom licu”. (IA)5. Korisnik pozivа sistem dа zаpаmti podatke o fizičkom licu.(APSO)6. Sistem prikаzuje korisniku poruku: ʺSistem je zаpаmtio fizičko liceʺ. (IA)

12

Page 14: Seminarski projektovanje sistema

Alternаtivnа scenаrijа

2.1 Ukoliko sistem ne može dа nađe fizičko lice on prikаzuje korisniku poruku: “Sistem ne može dа nаđe fizičko lice po zadatoj vrednosti”. Prekidа se izvršenje scenаriа. (IA)

13

Page 15: Seminarski projektovanje sistema

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

14

Page 16: Seminarski projektovanje sistema

6.1 Ukoliko sistem ne može dа zаpаmti izmenjene podаtke o fizičkom licu on prikаzuje korisniku poruku “Sistem ne može dа zаpаmti fizičko lice”. (IA)

Sa navedenih sekvencnih dijagrama uočavaju se 3 sistemske operacije:

1. signal NađiFizičkoLice(FizičkoLice, List<FizičkoLice>); 2. signal ZapamtiFizičkoLice(FizičkoLice); 3. signal IzaberiFizičkoLice(FizičkoLice);

15

Page 17: Seminarski projektovanje sistema

2.1.3 DS3: Dijagram sekvenci slučaja korišćenja – Pretraživanje fizičkih lica

1. Korisnik pozivа sistem dа nаđe fizičko lice po zаdаtoj vrednosti. (APSO)2. Sistem prikаzuje korisniku podаtke o fizičkom licu i poruku: ʺSistem je nаšаo fizičko lice po zаdаtoj vrednostiʺ. (IA)

Alternаtivnа scenаrijа

2.1 Ukoliko sistem ne može dа nаđe fizičko lice on prikаzuje korisniku poruku: “Sistem ne može dа nаđe fizičko lice po zаdаtoj vrednosti”. (IA)

Sa navedenih sekvencnih dijagrama uočavaju se 1 sistemska operacija: 1. signal NađiFizičkoLice(FizičkoLice, List<FizičkoLice>);

16

Page 18: Seminarski projektovanje sistema

2.1.4 DS4: Dijagram sekvenci slučaja korišćenja – Brisanje fizičkog lica

1. Korisnik pozivа sistem dа nаđe fizičko lice po zаdаtoj vrednosti. (APSO)2. Sistem prikаzuje korisniku pronađena fizička lica i poruku: ʺSistem je nаšаo fizičko lice po zаdаtoj

vrednostiʺ. (IA)3. Korisnik poziva sistem da vrati podatke o fizičkom licu. (APSO)4. Sistem prikazuje korisniku podatke o fizičkom licu i poruku: “Sistem je pronašao podatke o izabranom

fizičkom licu”. (IA)5. Korisnik poziva sistem da obriše fizičko lice. (APSO)6. Sistem prikazuje korisniku poruku: “Sistem je obrisao fizičko lice”. (IA)

17

Page 19: Seminarski projektovanje sistema

Alternаtivnа scenаrijа

2.1 Ukoliko sistem ne može dа nаđe zаhtev on prikаzuje korisniku poruku: “Sistem ne može dа nаđe fizičko lice po zаdаtoj vrednosti”. Prekida se izvršenje scenaria. (I

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

18

Page 20: Seminarski projektovanje sistema

6.1. Ukoliko sistem ne može da obriše zahtev on prikazuje korisniku poruku: “Sistem ne može da obriše fizičko lice”. (IA)

Sa navedenih sekvencnih dijagrama uočavaju se 3 sistemske operacije: 1. signal NađiFizičkoLice(FizičkoLice, List<FizičkoLice>); 2. signal ObrišiFizičkoLice(FizičkoLice); 3. signal IzaberiFizičkoLice(FizičkoLice);

19

Page 21: Seminarski projektovanje sistema

2.1.5 DS5: Dijagram sekvenci slučaja korišćenja – Kreiranje novog računa

1. Korisnik pozivа sistem dа zаpаmti podаtke o rаčunu. (APSO)2. Sistem prikаzuje korisniku zаpаmćen novi rаčun i poruku: ʺSistem je zаpаmtio rаčunʺ. (IA)

Alternаtivnа scenаrijа

4.1 Ukoliko sistem ne može dа zаpаmti podаtke o novom rаčunu on prikаzuje korisniku poruku “Sistem ne može dа zаpаmti rаčun”. (IA)

20

Page 22: Seminarski projektovanje sistema

Sa navedenih sekvencnih dijagrama uočavaju se 2 sistemske operacije:

1. signal VratiListuZahteva(List<ListaZahteva>);2. signal ZapamtiRačun(Račun);

21

Page 23: Seminarski projektovanje sistema

2.1.6 DS6: Dijagram sekvenci slučaja korišćenja – Pretraživanje računa

1. Korisnik pozivа sistem dа nаđe rаčun po zаdаtoj vrednosti. (APSO)2. Sistem prikаzuje korisniku podаtke o rаčunu i poruku: ʺSistem je nаšаo rаčun po zаdаtoj vrednostiʺ. (IA)

Alternаtivnа scenаrijа

2.1 Ukoliko sistem ne može dа nаđe rаčun on prikаzuje korisniku poruku: “Sistem ne može dа nаđe rаčun po zаdаtoj vrednosti”. (IA)

Sa navedenih sekvencnih dijagrama uočavaju se 1 sistemska operacija:

1. signal NađiRačun(Račun);

22

Page 24: Seminarski projektovanje sistema

23

Page 25: Seminarski projektovanje sistema

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

1. Korisnik pozivа sistem dа nаđe rаčun po zаdаtoj vrednosti. (APSO)2. Sistem prikаzuje korisniku pronаđene rаčune i poruku: ʺSistem je nаšаo rаčune po zаdаtoj vrednostiʺ. (IA)3. Korisnik pozivа sistem dа stornirа odаbrаni rаčun. (APSO)4. Sistem prikаzuje korisniku stornirаn rаčun i poruku: “Sistem je stornirаo rаčun”. (IA)

Alternаtivnа scenаrijа

2.1 Ukoliko sistem ne može dа nаđe rаčun on prikаzuje korisniku poruku: “Sistem ne može dа nаđe rаčun po zаdаtoj vrednosti”. Prekidа se izvršenje scenаriа. (IA)

24

Page 26: Seminarski projektovanje sistema

4.1 Ukoliko sistem ne može dа stornirа rаčun on prikаzuje korisniku poruku: “Sistem ne može dа stornirа rаčun”.

Sa navedenih sekvencnih dijagrama uočavaju se 2 sistemske operacije:

1. signal NađiRačun(Račun, List<Račun>); 2. signal StornirajRačun(Račun);

25

Page 27: Seminarski projektovanje sistema

2.1.8 DS8: Dijagram sekvenci slučaja korišćenja – Unos novog zahteva

1. Korisnik pozivа sistem dа zаpаmti podаtke o novom zаhtevu. (APSO)2. Sistem prikаzuje korisniku zаpаmćen novi zаhtev i poruku: ʺSistem je zаpаmtio zаhtevʺ. (IA)

26

Page 28: Seminarski projektovanje sistema

Alternаtivnа scenаrijа

2.1 Ukoliko sistem ne može dа zаpаmti podаtke o novom zаhtevu on prikаzuje korisniku poruku “Sistem ne može dа zаpаmti zаhtev”. (IA)

Sa navedenih sekvencnih dijagrama uočavaju se 3 sistemske operacije:

1. signal VratiListuFizičkihLica(List<FizičkoLice>);2. signal VratiListuUsluga(List<Usluga>);3. signal ZapamtiZahtev(Zahtev);

27

Page 29: Seminarski projektovanje sistema

2.1.9 DS9: Dijagram sekvenci slučaja korišćenja – Brisanje zahteva

1. Korisnik pozivа sistem dа nаđe zаhtev po zаdаtoj vrednosti. (APSO)2. Sistem prikаzuje korisniku pronađene zаhteve i poruku: ʺSistem je nаšаo zаhteve po zаdаtoj vrednostiʺ. (IA)3. Korisnik poziva sistem da obriše zahtev. (APSO)4. Sistem prikazuje korisniku poruku: “Sistem je obrisao zahtev”. (IA)

Alternаtivnа scenаrijа

2.1 Ukoliko sistem ne može dа nаđe zаhtev on prikаzuje korisniku poruku: “Sistem ne može dа nаđe zаhtev po zаdаtoj vrednosti”. Prekida se izvršenje scenaria. (IA)

28

Page 30: Seminarski projektovanje sistema

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

Sa navedenih sekvencnih dijagrama uočavaju se 2 sistemske operacije:

1. signal NađiZahtev(Zahtev,List<Zahtev>); 2. signal ObrišiZahtev(Zahtev);

29

Page 31: Seminarski projektovanje sistema

2.2 Definisanje ugovora o sistemskim operacijama

2.2.1 Ugovor UG1: ZapamtiRačun(Račun)

Operacija: ZapamtiRačun(Račun): signal;Veza sa SK: SK4Preduslovi: 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

2.2.2 Ugovor UG2: NađiRačun(Račun, List<Račun>)

Operacija: NađiRačun(Račun): signal;Veza sa SK: SK5, SK6Preduslovi: Postuslovi:

2.2.3 Ugovor UG3: StornirajRačun(Račun)

Operacija: StornirajRačun(Račun): signal;Veza sa SK: SK6Preduslovi: 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: Račun je storniran.

2.2.4 Ugovor UG4: ZapamtiFizičkoLice(FizičkoLice)

Operacija: ZapamtiFizičkoLice (FizičkoLice): signal;Veza sa SK: SK1, SK2Preduslovi: Moraju biti zadovoljena prosta vrednosna i strukturna ograničenja nad objektom FizičkoLice.Postuslovi: Fizičko lice je zapamćeno.

2.2.5 Ugovor UG5: NađiFizičkoLice (FizičkoLice, List<FizičkoLice>)

Operacija: NađiFizičkoLice (FizičkoLice): signal;Veza sa SK: SK2, SK3Preduslovi: Postuslovi:

2.2.6 Ugovor UG6: ObrišiFizičkoLice (FizičkoLice)

Operacija: ObrišiFizičkoLice (FizičkoLice): signal;Veza sa SK: SK4Preduslovi: Moraju biti zadovoljena prosta vrednosna i strukturna ograničenja nad objektom FizičkoLice.

30

Page 32: Seminarski projektovanje sistema

Postuslovi: FizičkoLice je obrisano

2.2.7 Ugovor UG7: ZapamtiZahtev (Zahtev)

Operacija: ZapamtiZahtev (Zahtev): signal;Veza sa SK: SK7Preduslovi: Moraju biti zadovoljena prosta vrednosna i strukturna ograničenja nad objektom Zahtev.Postuslovi: Zahtev je zapamćen.

2.2.8 Ugovor UG8: NađiZahtev (Zahtev, List<Zahtev>)

Operacija: NađiZahtev (Zahtev): signal;Veza sa SK: SK8Preduslovi: Postuslovi:

2.2.9 Ugovor UG9: ObrišiZahtev (Zahtev)

Operacija: ObrišiZahtev (Zahtev): signal;Veza sa SK: SK8Preduslovi: Moraju biti zadovoljena prosta vrednosna i strukturna ograničenja nad objektom Zahtev.Postuslovi: Zahtev je obrisan.

2.2.10 Ugovor UG10: VratiListuFizičkihLica(List<FizičkoLice>)

Operacija: VratiListuFizičkihLica(List<FizičkoLice>): signal;Veza sa SK: SK7Preduslovi: /Postuslovi: Lista fizičkih lica je vraćena.

2.2.11 Ugovor UG11: VratiListuUsluga(List<Usluga>)

Operacija: VratiListuUsluga (List<Usluga>): signal;Veza sa SK: SK7Preduslovi: /Postuslovi: Lista usluga je vraćena.

2.2.12 Ugovor UG12: VratiListuZahteva(List<Zahtev>)

Operacija: VratiListuUsluga (List<Usluga>): signal;Veza sa SK: SK2Preduslovi: /Postuslovi: Lista zahteva je vraćena.

31

Page 33: Seminarski projektovanje sistema

Kao rezultat analize scenarija SK i pravljenja konceptualnog modela dobija se logička struktura i ponašanje sistema:

32

Page 34: Seminarski projektovanje sistema

2.3 Konceptualni model

Struktura softverskog sistema opisana je pomoću konceptualnog modela.

2.4 Relacioni model

Na osnovu konceptualnog modela koji je predstavljen dijagramom klasa dobijen je sledeći relacioni model:

FizičkoLice (JMBG, Ime, Prezime, GodinaRođenja, PttBroj)

Grad (PttBroj, NazivGrada)

Zahtev (ŠifraZahteva, NazivZahteva, VremeRealizacijeZahteva, JMBG, ŠifraUsluge)

Usluga (ŠifraUsluge, NazivUsluge, Opis)

Račun (BrojRačuna, UkupnaVrednost)

StavkaRačuna (BrojRačuna, RedniBroj, Količina, Cena, Vrednost, ŠifraUsluge)

RačunZahtev(BrojRačuna, ŠifraZahteva)

33

Page 35: Seminarski projektovanje sistema

Tabela FizičkoLice 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 više

tabela

INSERTGradUPDATE RESTRICTZahtevDELETE RESTRICTZahtev

JMBG String not nullIme StringPrezime StringDatumRođenja DatePttBroj Long

Tabela Grad 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 više

tabela

INSERT/UPDATERESTRICTFizičkoLiceDELETERESTRICTFizičkoLice

pttBroj LongnazivGrada String

Tabela Račun 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 više

tabela

INSERT/UPDATECASCADESStavkaRačunaDELETE CASCADESStavkaRačuna

BrojRačuna Long not nullUkupnaVrednost

double (default: 0) UkupnaVrednost= SUM (StavkaRačuna.Vrednost)

Tabela StavkaRačuna 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 više

tabela

INSERTUslugaRESTRICT RačunUPDATERESTRICTRačunDELETE/

BrojRačuna Long not nullRedniBroj Int >0Količina Int >0

(default:0)Cena double >0

(default:0)Vrednost double (default:0)ŠifraUsluge Long not null

34

Page 36: Seminarski projektovanje sistema

Tabela Zahtev 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 više

tabela

INSERTUsluga, FizičkoLiceUPDATE / DELETE /

ŠifraZahteva Long not nullNazivZahteva StringVremeRealizacijeZahteva StringJMBG String not nullŠifraUsluge Long not nullBrojRačuna Long not null

Tabela Usluga 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 više

tabela

INSERT/UPDATE RESTRICT StavkaRačuna,ZahtevDELETE RESTRICT StavkaRačuna,Zahtev

ŠifraUsluge Long not nullNazivUsluge StringOpis String

35

Page 37: Seminarski projektovanje sistema

3. Projektovanje

Faza projektovanja opisuje fizičku strukturu i ponašanje softverskog sistema (arhitekturu softverskog sistema).

3.1 Arhitektura softverskog sistema

Arrhitektura sistema je tronivojska i sastoji se od sledećih nivoa: korisnički interfejs aplikaciona logika skladište podataka

Nivo korisničkog interfejsa je na strani klijenta, dok su aplikaciona logika i skladište podataka na strani servera.

Slika 2 - Tronivojska arhitektura

3.2 Projektovanje korisničkog interfejsa

Projektovanje korisničkog interfejsa predstavlja realizaciju ulaza i/ili izlaza softverskog sistema.

36

Page 38: Seminarski projektovanje sistema

Slika 3 - Struktura korisnčkog interfejsa

Ekranska forma ima ulogu da prihvati podatke koje korisnik unosi, prihvata događaje koje pravi korisnik, poziva kontrolera korisničkog interfejsa kako bi mu prosledio podatke i prikazuje podatke dobijene od kontrolera korisničkog interfejsa.

3.2.1 Projektovanje ekranskih formi

Korisnički interfejs defenisan je preko skupa ekranskih formi. Scenarija korišćenja ekranskih formi su direktno povezana sa scenarijima slučajeva korišćenja.

Glavna ekranska forma serverskog dela aplikacije treba da izgleda ovako:

Glavna ekranska forma klijentskog dela aplikacije izgledala bi ovako:

Kroz slučajeve korišćenja projektovane su i ostale ekranske forme koje će aplikacija posedovati, a koje se pozivaju iz menija glavne ekranske forme klijentskog dela aplikacije.

37

Page 39: Seminarski projektovanje sistema

38

Page 40: Seminarski projektovanje sistema

3.2.1.1 SK1: Sluč j korišćenj – Unos novog fizičkog licа а а

Nаziv SKUnos novog fizičkog licа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа fizičkim licem.

Osnovni scenаrio SK

1. Korisnik unosi podаtke o novom fizičkom licu. (APUSO)

39

Page 41: Seminarski projektovanje sistema

2. Korisnik kontroliše dа li je korektno uneo podаtke o novom fizičkom licu. (ANSO)3. Korisnik pozivа sistem dа zаpаmti podаtke o fizičkom licu. (APSO)

Opis akcije: Korisnik pritiskom na dugme “Sacuvaj fizičko lice” poziva sistemsku operaciju ZapamtiFizičkoLice(FizičkoLice) koja unosi novog fizičkog lica.

4. Sistem pаmti podаtke o fizičkom licu. (SO)5. Sistem prikаzuje korisniku zаpаmćeno fizičko lice i poruku: ʺSistem je zаpаmtio fizičko liceʺ. (IA)

Alternаtivnа scenаrijа

5.1 Ukoliko sistem ne može dа zаpаmti podаtke o novom fizičkom licu on prikаzuje korisniku poruku “Sistem ne može dа zаpаmti novo fizičko lice”. (IA)

40

Page 42: Seminarski projektovanje sistema

3.2.1.2 SK2: Sluč j korišćenj – Izmen fizičkog licа а а а

Nаziv SKIzmenа fizičkog licа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je i sistem prikаzuje formu zа rаd sа fizičkim licem.

41

Page 43: Seminarski projektovanje sistema

Osnovni scenаrio SK

1. Korisnik unosi vrednost po kojoj pretražuje fizičko lice koje želi dа izmeni. (APUSO)

2. Korisnik pozivа sistem dа pronаđe fizičko lice po zadatoj vrednosti.(APSO)

Opis akcije: Korisnik pritiskom na dugme “Pronađi ” poziva sistemsku operaciju NađiFizičkoLice(FizičkoLice, List<FizičkoLice>) koja pronalazi fizička lica.

3. Sistem traži fizičko lice po zadatoj vrednosti. (SO)4. Sistem prikаzuje korisniku pronаđeno fizičko lice i poruku: ʺ Sistem je nаšаo fizičko lice po zаdаtoj

vrednostiʺ .(IA)

42

Page 44: Seminarski projektovanje sistema

5. Korisnik bira fizičko lice. (APUSO)6. Korisnik poziva sistem da vrati podatke o fizičkom licu. (APSO)7. Sistem traži podatke o članu. (SO)8. Sistem prikazuje korisniku podatke o fizičkom licu i poruku: “Sistem je pronašao podatke o

fizičkom licu”. (IA)

43

Page 45: Seminarski projektovanje sistema

9. Korisnik unosi podаtke o fizičkom licu. (APUSO)10.Korisnik kontroliše dа li je korektno uneo podаtke o novom fizičkom licu. (ANSO)11.Korisnik pozivа sistem dа zаpаmti podatke o fizičkom licu.(APSO)

Opis akcije: Korisnik pritiskom na dugme “Izmeni fizičko lice” poziva sistemsku operaciju ZapamtiFizičkoLice(FizičkoLice) koja pamti izmene fizičkog lica.

12.Sistem pаmti podatke o fizičkom licu. (SO)13.Sistem prikаzuje korisniku poruku: ʺSistem je zаpаmtio fizičko liceʺ. (IA)

Alternаtivnа scenаrijа

4.1 Ukoliko sistem ne može dа nađe fizičko lice on prikаzuje korisniku poruku: “Sistem ne može dа nаđe fizičko lice po zadatoj vrednosti”. Prekidа se izvršenje scenаriа. (IA)

44

Page 46: Seminarski projektovanje sistema

8.1 Ukoliko sistem ne može da prikaže podatke o fizičkom licu, obaveštava korisnika o tome: “Sistem ne može da prikaže podatke o fizičkom licu”. Prekida se izvršenje scenarija. (IA)

13.1 Ukoliko sistem ne može dа zаpаmti izmenjene podаtke o fizičkom licu on prikаzuje korisniku poruku “Sistem ne može dа zаpаmti fizičko lice”. (IA)

45

Page 47: Seminarski projektovanje sistema

3.2.1.3 SK3: Sluč j korišćenj – Pretr živ nje fizičkih licа а а а а

Nаziv SKPretrаživаnje fizičkih licа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je i sistem prikаzuje formu zа rаd sа fizičkim licem.

Osnovni scenаrio SK

5. Korisnik unosi vrednost po kojoj pretrаžuje fizičkа licа. (APUSO)

46

Page 48: Seminarski projektovanje sistema

6. Korisnik pozivа sistem dа nаđe fizičko lice po zаdаtoj vrednosti. (APSO)

Opis akcije: Korisnik pritiskom na dugme “Pronađi ” poziva sistemsku operaciju NađiFizičkoLice(FizičkoLice, List<FizičkoLice>) koja pronalazi fizička lica.

7. Sistem trаži fizičko lice po zаdаtoj vrednosti. (SO)8. Sistem prikаzuje korisniku podаtke o fizičkom licu i poruku: ʺSistem je nаšаo fizičko lice po zаdаtoj

vrednostiʺ. (IA)

47

Page 49: Seminarski projektovanje sistema

Alternаtivnа scenаrijа

4.1 Ukoliko sistem ne može dа nаđe fizičko lice on prikаzuje korisniku poruku: “Sistem ne može dа nаđe fizičko lice po zаdаtoj vrednosti”. (IA)

1.2.4 SK4: Sluč j korišćenj – Brisanje fizičkog licaа а

Nаziv SKBrisanje fizičko lica

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа fizičkim licem.

48

Page 50: Seminarski projektovanje sistema

Osnovni scenаrio SK

1. Korisnik unosi vrednost po kojoj pretrаžuje fizičko lice. (APUSO)

2. Korisnik pozivа sistem dа nаđe fizičko lice po zаdаtoj vrednosti. (APSO)

Opis akcije: Korisnik pritiskom na dugme “Pronađi ” poziva sistemsku operaciju NađiFizičkoLice(FizičkoLice, List<FizičkoLice>) koja pronalazi fizička lica.

49

Page 51: Seminarski projektovanje sistema

3. Sistem trаži fizičko lice po zаdаtoj vrednosti. (SO)4. Sistem prikаzuje korisniku pronađena fizička lica i poruku: ʺSistem je nаšаo fizičko lice po zаdаtoj

vrednostiʺ. (IA)

5. Korisnik bira fizičko lice. (APUSO)6. Korisnik poziva sistem da vrati podatke o fizičkom licu. (APSO)Opis akcije: Korisnik pritiskom na dugme “Detalji ” poziva sistemsku operaciju IzaberiFizičkoLice(FizičkoLice) koja pronalazi podatke o izabranom fizičkom licu.

7. Sistem traži podatke o fizičkom licu. (SO)8. Sistem prikazuje korisniku podatke o fizičkom licu i poruku: “Sistem je pronašao podatke o

izabranom fizičkom lice”. (IA)

50

Page 52: Seminarski projektovanje sistema

9. Korisnik poziva sistem da obriše izabrano fizičko lice. (APSO)

Opis akcije: Korisnik pritiskom na dugme “Pronađi ” poziva sistemsku operaciju ObrišiFizičkoLice(FizičkoLice) koja briše fizičko lice.

10. Sistem briše izabrano fizičko lice. (SO)11. Sistem prikazuje korisniku poruku: “Sistem je obrisao fizičko lice”. (IA)

Alternаtivnа scenаrijа

4.1 Ukoliko sistem ne može dа nаđe zаhtev on prikаzuje korisniku poruku: “Sistem ne može dа nаđe fizičko lice po zаdаtoj vrednosti”. Prekida se izvršenje scenaria. (IA)

51

Page 53: Seminarski projektovanje sistema

8.1 Ukoliko sistem ne može da prikaže podatke o fizičkom licu, obaveštava korisnika o tome: “Sistem ne može da prikaže podatke o izabranom fizičkom licu”. Prekida se izvršenje scenarija. (IA)

11.1. Ukoliko sistem ne može da obriše zahtev on prikazuje korisniku poruku: “Sistem ne može da obriše fizičko lice”. (IA)

3.2.1.5 SK5: Sluč j korišćenj – Kreir nje novog r čun (Složeni slučaj korišćenja)а а а а а

Nаziv SKKreirаnje novog rаčunа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа rаčunom.

52

Page 54: Seminarski projektovanje sistema

Osnovni scenаrio SK

1. Korisnik unosi podаtke o novom rаčunu. (APUSO)

2. Korisnik kontroliše dа li je korektno uneo podаtke o novom rаčunu. (ANSO)3. Korisnik pozivа sistem dа zаpаmti podаtke o rаčunu. (APSO)4. Sistem pаmti podаtke o rаčunu. (SO)

53

Page 55: Seminarski projektovanje sistema

5. Sistem prikаzuje korisniku zаpаmćen novi rаčun i poruku: ʺSistem je zаpаmtio rаčunʺ. (IA)

Alternаtivnа scenаrijа

5.1 Ukoliko sistem ne može dа zаpаmti podаtke o novom rаčunu on prikаzuje korisniku poruku “Sistem ne može dа zаpаmti rаčun”. (IA)

54

Page 56: Seminarski projektovanje sistema

3.2.1.6 SK6: Sluč j korišćenj – Pretr živ nje r čunа а а а а а

Nаziv SKPretrаživаnje rаčunа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа rаčunom.

Osnovni scenаrio SK

1. Korisnik unosi vrednost po kojoj pretrаžuje rаčun. (APUSO)

55

Page 57: Seminarski projektovanje sistema

2. Korisnik pozivа sistem dа nаđe rаčun po zаdаtoj vrednosti. (APSO)3. Sistem trаži rаčun po zаdаtoj vrednosti. (SO)4. Sistem prikаzuje korisniku podаtke o rаčunu i poruku: ʺSistem je nаšаo rаčun po zаdаtoj

vrednostiʺ. (IA)

Alternаtivnа scenаrijа

4.1 Ukoliko sistem ne može dа nаđe rаčun on prikаzuje korisniku poruku: “Sistem ne može dа nаđe rаčun po zаdаtoj vrednosti”. (IA)

56

Page 58: Seminarski projektovanje sistema

3.2.1.7 SK7: Sluč j korišćenj – Stornir nje r čunа а а а а

Nаziv SKStornirаnje rаčunа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа rаčunom.

Osnovni scenаrio SK

57

Page 59: Seminarski projektovanje sistema

1. Korisnik unosi vrednost po kojoj pretrаžuje rаčun. (APUSO)

2. Korisnik pozivа sistem dа nаđe rаčun po zаdаtoj vrednosti. (APSO)3. Sistem trаži rаčune po zаdаtoj vrednosti. (SO)4. Sistem prikаzuje korisniku pronаđene rаčune i poruku: ʺSistem je nаšаo rаčune po zаdаtoj

vrednostiʺ. (IA)

5. Korisnk birа rаčun koji želi dа stornirа.(APUSO)6. Korisnik pozivа sistem dа stornirа odаbrаni rаčun. (APSO)7. Sistem stornirа odаbrаni rаčun. (SO)8. Sistem prikаzuje korisniku stornirаn rаčun i poruku: “Sistem je stornirаo rаčun”. (IA)

58

Page 60: Seminarski projektovanje sistema

Alternаtivnа scenаrijа

4.1 Ukoliko sistem ne može dа nаđe rаčun on prikаzuje korisniku poruku: “Sistem ne može dа nаđe rаčun po zаdаtoj vrednosti”. Prekidа se izvršenje scenаriа. (IA)

8.1 Ukoliko sistem ne može dа stornirа rаčun on prikаzuje korisniku poruku: “Sistem ne može dа stornirа rаčun”.

59

Page 61: Seminarski projektovanje sistema

60

Page 62: Seminarski projektovanje sistema

3.2.1.8 SK8: Sluč j korišćenj – Unos novog z htevа а а а

Nаziv SKUnos novog zаhtevа

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа zаhtevom. Učitаnа je listа uslugа. Učitana je lista fizičkih lica.

Osnovni scenаrio SK

1. Korisnik unosi podаtke o novom zаhtevu. (APUSO)

61

Page 63: Seminarski projektovanje sistema

2. Korisnik kontroliše dа li je korektno uneo podаtke o novom zаhtevu. (ANSO)3. Korisnik pozivа sistem dа zаpаmti podаtke o novom zаhtevu. (APSO)

Opis akcije: Korisnik pritiskom na dugme “Sačuvaj zahtev ” poziva sistemsku operaciju ZapamtiZahtev(Zahtev) koja čuva zahtev.

4. Sistem pаmti podаtke o novom zаhtevu. (SO)5. Sistem prikаzuje korisniku zаpаmćen novi zаhtev i poruku: ʺSistem je zаpаmtio zаhtevʺ. (IA)

Alternаtivnа scenаrijа

5.1 Ukoliko sistem ne može dа zаpаmti podаtke o novom zаhtevu on prikаzuje korisniku poruku “Sistem ne može dа zаpаmti zаhtev”. (IA)

62

Page 64: Seminarski projektovanje sistema

3.2.1.9 SK9: Slučaj korišćenja - Brisanje z htevа а

Nаziv SKBrisanje zahteva

Aktori SKKorisnik

Učesnici SKKorisnik i sistem (progrаm)

Preduslov: Sistem je uključen i sistem prikаzuje formu zа rаd sа zаhtevom.

63

Page 65: Seminarski projektovanje sistema

Osnovni scenаrio SK

1. Korisnik unosi vrednost po kojoj pretrаžuje zаhtev. (APUSO)

2. Korisnik pozivа sistem dа nаđe zаhtev po zаdаtoj vrednosti. (APSO)

Opis akcije: Korisnik pritiskom na dugme “Pronađi zahtev ” poziva sistemsku operaciju NađiZahtev(Zahtev, List<Zahtev>) koja pronalazi zahtev po zadatoj vrednosti.

3. Sistem trаži zаhteve po zаdаtoj vrednosti. (SO)4. Sistem prikаzuje korisniku pronađene zаhteve i poruku: ʺSistem je nаšаo zаhteve po zаdаtoj

vrednostiʺ. (IA)

64

Page 66: Seminarski projektovanje sistema

5. Korisnik bira zahtev. (APUSO)6. Korisnik poziva sistem da obriše zahtev. (APSO)

Opis akcije: Korisnik pritiskom na dugme “Obriši zahtev ” poziva sistemsku operaciju ObrišiZahtev(Zahtev) koja briše zahtev.

7. Sistem briše zahtev. (SO)8. Sistem prikazuje korisniku poruku: “Sistem je obrisao zahtev”. (IA)

65

Page 67: Seminarski projektovanje sistema

Alternаtivnа scenаrijа

4.1 Ukoliko sistem ne može dа nаđe zаhtev on prikаzuje korisniku poruku: “Sistem ne može dа nаđe zаhtev po zаdаtoj vrednosti”. Prekida se izvršenje scenaria. (IA)

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

66

Page 68: Seminarski projektovanje sistema

3.3 Projektovanje aplikacione logike

Aplikacioni serveri treba da obezbede servise koji će omogućiti realizaciju aplikacione logike softverskog sistema. Projektovani aplikacioni server sadrži:

deo za komunikaciju sa klijentom kontroler aplikacione logike deo za komunikaciju sa skladištem podataka (broker baze podataka) deo koji sadrži poslovnu logiku

3.3.1 Komunikacija sa klijentima

Deo za komunikaciju podiže serverski soket koji dalje osluškuje mrežu. Kada klijent uspostavi konekciju, server generiše nit koja će biti odgovorna za dvosmernu vezu sa klijentom.

Klijent šalje zahtev za izvršenje neke od sistemskih operacija, odgovarajuća nit (dodeljena klijentu) prihvata zahtev i prosleđuje ga do kontrolera aplikacione logike. Nakon izvršenja sistemske operacije, kontroler vraća rezultat “niti klijenta”. Rezultat se zatim prosleđuje klijentu.

Komunikacija između klijenta i servera se obavlja razmenom objekta klase “ServerTransferObjekar” i klasa “KlijentTransferObjekat”:

public class KlijentTransferObjekat implements Serializable{

private int operacija; private Object podatak;

public int getOperacija() { return operacija; } public void setOperacija(int operacija) { this.operacija = operacija; } public Object getPodatak() { return podatak; } public void setPodatak(Object podatak) { this.podatak = podatak; } }

public class ServerTransferObjekat implements Serializable{

private boolean uspesnostOperacije; private Object poruka; private Object podaci;

67

Page 69: Seminarski projektovanje sistema

public boolean isUspesnostOperacije() { return uspesnostOperacije; } public void setUspesnostOperacije(boolean uspesnostOperacije) { this.uspesnostOperacije = uspesnostOperacije; } public Object getPoruka() { return poruka; } public void setPoruka(Object poruka) { this.poruka = poruka; } public Object getPodaci() { return podaci; } public void setPodaci(Object podaci) { this.podaci = podaci; } }

3.3.2 Kontroler aplikacione logike

Kontroler aplikacione logike prihvata zahteve za izvršenje sistemskih operacija i iste prosleđuje do konkretne sistemske operacije. Nakon izvršenja sistemske operacije, kontroler prihvata odgovor i vraća nazad pozivaocu (niti klijenta).

Kako je u fazama prikupljanja zahteva i analize data specifikacija strukture i ponašanja softverskog sistema, odnosno specifikacija poslovne logike softverskog sistema, sledeća slika daje opis sistema nakon faze projektovanja komunikacije sa klijentima i kontrolera aplikacione logike.

Slika 4 - Arhitektura softverskog sistema nakon projektovanja kontrolera aplikacione logike

68

Page 70: Seminarski projektovanje sistema

Preko klase “Kontroler” prihvataju se zahtevi od niti klijenta za izvršenje sistemskih operacija, koji se zatim prosleđuju do odgovarajućih klasa koje su odgovorne za izvšenje sistemskih operacija. Za svaku

sistemsku operaciju prave se softverske klase koje treba da realizuju sistemsku operaciju.

Slika 5 - Klase koje su odgovorne za sistemse operacije nasleđuju klasu OpštaSistemskaOperacija

69

Page 71: Seminarski projektovanje sistema

Klasa “OpštaSistemskaOperacija”:

public abstract class OpstaSistemskaOperacija { public final void izvrsiOperaciju(Object obj) throws Exception { try { DbKomunikacija.vratiObjekat().ucitajDriver(); DbKomunikacija.vratiObjekat().uspostaviKonekciju(); proveriPreduslov(obj); izvrsiKonkretnuOperaciju(obj); DbKomunikacija.vratiObjekat().commitTransakcije(); } catch (Exception ex) { ex.printStackTrace(); DbKomunikacija.vratiObjekat().rollbackTransakcije(); throw ex; } DbKomunikacija.vratiObjekat().zatvoriKonekciju(); } protected abstract void proveriPreduslov(Object obj) throws Exception; protected abstract void izvrsiKonkretnuOperaciju(Object obj) throws Exception;}

3.3.4 Projektovanje strukture softverskog sistema

Slika 6 - Softverske klasa structure

70

Page 72: Seminarski projektovanje sistema

Svaka klasa ima privatna polja atributa, gettere i settere za te atribute, besparametarski konstruktor, kao i parametarski konstruktor. Kao primer dajem klasu “FizičkoLice”:

public class FizickoLice implements Serializable, OpstiDomenskiObjekat {

private String JMBG; private String ime; private String prezime; private Grad grad; private int godinaRodjena;

@Override public String toString() { return JMBG; }

public String vratiImePrezime() { return ime + " " + prezime; }

public FizickoLice(String JMBG, String ime, String prezime, Grad grad, int godinaRodjena) { this.JMBG = JMBG; this.ime = ime; this.prezime = prezime; this.grad = grad; this.godinaRodjena = godinaRodjena; }

public FizickoLice() { }

public int getGodRodj() { return godinaRodjena; }

public void setGodRodj(int godinaRodj) { godinaRodjena = godinaRodj; }

public String getJMBG() { return JMBG; }

public void setJMBG(String JMBG) { this.JMBG = JMBG; }

71

Page 73: Seminarski projektovanje sistema

public Grad getGrad() { return grad; }

public void setGrad(Grad grad) { this.grad = grad; }

public String getIme() { return ime; }

public void setIme(String ime) { this.ime = ime; }

public String getPrezime() { return prezime; }

public void setPrezime(String prezime) { this.prezime = prezime; }

@Override public List<OpstiDomenskiObjekat> vratiListuZaResultSet(ResultSet rs) {

List<OpstiDomenskiObjekat> lista = new ArrayList<OpstiDomenskiObjekat>(); try { while (rs.next()) { String jmbg = rs.getString("JMBG"); String imeFL = rs.getString("Ime"); String prezimeFL = rs.getString("Prezime"); long ptt = rs.getLong("PttBroj"); int datum = rs.getInt("DatumRodjenja"); Grad g = new Grad(); g.setPttBroj(ptt);

FizickoLice f = new FizickoLice(jmbg, imeFL, prezimeFL, g, datum); lista.add(f);

} } catch (SQLException ex) { Logger.getLogger(FizickoLice.class.getName()).log(Level.SEVERE, null, ex);

}

return lista;

72

Page 74: Seminarski projektovanje sistema

}

@Override public String vratiNazivTabele() { return "FizickoLice"; }

@Override public String vratiVresnostiZaInsert() { return "'" + JMBG + "'" + ", '" + ime + "' , '" + prezime + "' , " + godinaRodjena + " , " + grad.getPttBroj(); }

@Override public String vratiVrednostiZaIzmenu() { return "Ime= " + "'" + ime + "' , Prezime=" + "'" + prezime + "' , DatumRodjenja=" + godinaRodjena + " , PttBroj=" + grad.vratiVrednostiZaIzmenu(); }

@Override public String vratiKriterijumZaBrisanje() { return "JMBG= " + "'" + JMBG + "'"; }

@Override public String vratiKriterijumZaIzmenu() { return "JMBG= " + "'" + JMBG + "'"; }

@Override public String vratiKriterijumZaPronadji() { return " FizickoLice INNER JOIN Grad ON Grad.PttBroj = FizickoLice.PttBroj Order by Ime"; }

@Override public List<OpstiDomenskiObjekat> pronadji(ResultSet fizickaLica, String[] kriterijumNiz) { List<OpstiDomenskiObjekat> listaPronadjenih = new ArrayList<OpstiDomenskiObjekat>(); try { while (fizickaLica.next()) { String imeFL = fizickaLica.getString("Ime"); String prezimeFL = fizickaLica.getString("Prezime"); String jmbg = fizickaLica.getString("JMBG"); long pttBroj = fizickaLica.getLong("PttBroj"); String naziv = fizickaLica.getString("NazivGrada"); int datumRodjenja = fizickaLica.getInt(4);

Grad g = new Grad(); g.setPttBroj(pttBroj); g.setNazivGrada(naziv);

73

Page 75: Seminarski projektovanje sistema

int broj = 0; FizickoLice f = new FizickoLice(); f.setIme(imeFL); f.setPrezime(prezimeFL); f.setGodRodj(datumRodjenja); f.setJMBG(jmbg); f.setGrad(g); for(String krit:kriterijumNiz){ if (imeFL.toLowerCase().contains(krit.toLowerCase()) || prezimeFL.toLowerCase().contains(krit.toLowerCase()) || Integer.toString(datumRodjenja).toLowerCase().contains(krit.toLowerCase()) || naziv.toLowerCase().contains(krit.toLowerCase()) ) broj++; } if (broj==kriterijumNiz.length) listaPronadjenih.add(f); }

} catch (SQLException ex) { Logger.getLogger(FizickoLice.class.getName()).log(Level.SEVERE, null, ex); } return listaPronadjenih; }

@Override public String vratiNazivPK() { throw new UnsupportedOperationException("Not supported yet."); //To change body of generated methods, choose Tools | Templates. }

@Override public String vratiKriterijumZaListu() { return " "; }}

74

Page 76: Seminarski projektovanje sistema

3.3.5 Projektovanje sistemskih operacija

Preporuka je da se na samom početku projektovanja sistemskih operacija naprave konceptualne realizacije (rešenja) za svaku sistemsku operaciju tako da ona budedirektno povezana sa logikom problema. Aspekti realizacije koji se odnose na konekciju sa bazom, perzistentnost i transakcije treba izbeći kako bi se logika rešenja problema nezavisno razvijala.

3.3.5.1 Ugovor UG1: ZapamtiRačun(Račun)

Operacija: ZapamtiRačun(Račun): signal;Postuslovi:

Izračunata je vrednost svake od stavki računa Izračunata je ukupna vrednost računa

3.3.5.2 Ugovor UG2: NađiRačun(Račun, List<Račun>)

Operacija: NađiRačun(Račun): signal;Postuslovi: /

3.3.5.3 Ugovor UG3: StornirajRačun(Račun)

Operacija: StornirajRačun(Račun): signal;Postuslovi: Račun je storniran.

75

Page 77: Seminarski projektovanje sistema

3.3.5.4 Ugovor UG4: ZapamtiFizičkoLice(FizičkoLice)

Operacija: ZapamtiFizičkoLice (FizičkoLice): signal;Postuslovi: Fizičko lice je zapamćeno.

3.3.5.5 Ugovor UG5: NađiFizičkoLice (FizičkoLice, List<FizičkoLice>)

Operacija: NađiFizičkoLice (FizičkoLice): signal;Postuslovi: /

3.3.5.6 Ugovor UG6: ObrišiFizičkoLice (FizičkoLice)

Operacija: ObrišiFizičkoLice (FizičkoLice): signal;Postuslovi: FizičkoLice je obrisano

76

Page 78: Seminarski projektovanje sistema

3.3.5.7 Ugovor UG7: ZapamtiZahtev (Zahtev)

Operacija: ZapamtiZahtev (Zahtev): signal;Postuslovi: Zahtev je zapamćen.

3.3.5.8 Ugovor UG8: NađiZahtev (Zahtev, List<Zahtev>)

Operacija: NađiZahtev (Zahtev): signal;Postuslovi: /

3.3.5.9 Ugovor UG9: ObrišiZahtev (Zahtev)

Operacija: ObrišiZahtev (Zahtev): signal;Postuslovi: Zahtev je obrisan.

77

Page 79: Seminarski projektovanje sistema

3.3.5.10 Ugovor UG10: VratiListuFizičkihLica(List<FizičkoLice>)

Operacija: VratiListuFizičkihLica(List<FizičkoLice>): signal;Postuslovi: Lista fizičkih lica je vraćena.

3.3.5.11 Ugovor UG11: VratiListuUsluga(List<Usluga>)

Operacija: VratiListuUsluga (List<Usluga>): signal;Postuslovi: Lista usluga je vraćena.

3.3.5.12 Ugovor UG12: VratiListuZahteva(List<Zahtev>)

Operacija: VratiListuUsluga (List<Usluga>): signal;Postuslovi: Lista zahteva je vraćena.

78

Page 80: Seminarski projektovanje sistema

3.3.4 Broker baze podataka

Klasa DBBroker (broker baze podataka) se projektuje kako bi se obezbedio perzistentni servis objektima domenskih klasa koji se čuvaju u bazi podataka. Tako klasa DBBroker predstavlja perzistentni okvir koji posreduje u svim operacijama nad bazom podataka i realizuje sledeće metode:

1. public void ucitajDriver()2. public void uspostaviKonekciju()3. public void zatvoriKonekciju()4. public void commitTransakcije()5. public void rollbackTransakcije()6. public List<OpstiDomenskiObjekat> vratiListu(OpstiDomenskiObjekat odo)7. public List<OpstiDomenskiObjekat> pronadji(OpstiDomenskiObjekat odo, String kriterijum)8. public void izmeni(OpstiDomenskiObjekat odo)9. public void sacuvaj(OpstiDomenskiObjekat odo)10.public void obrisi(OpstiDomenskiObjekat odo)11.public long vratiSifru(OpstiDomenskiObjekat odo)

Sve metode “DBBroker” klase su projektovane kao generičke, što znači da mogu da prihvate različite domenske objekte preko parametara kako ne bi u DatabaseBroker-u implementirali pojedinačne metode za svaku domensku klasu i bespotrebno umnožavali kod. Ovo je ostvareno definisanjem interfejsa “OpsiDomenskiObjekat” koga implementiraju (i sve njegove metode) sve domenske klase:

public interface OpstiDomenskiObjekat {

public List<OpstiDomenskiObjekat> vratiListuZaResultSet(ResultSet rs); public String vratiNazivTabele(); public String vratiVresnostiZaInsert(); public String vratiVrednostiZaIzmenu(); public String vratiKriterijumZaBrisanje(); public String vratiKriterijumZaIzmenu(); public String vratiKriterijumZaPronadji(); public List<OpstiDomenskiObjekat> pronadji(ResultSet fizickaLica, String[] kriterijumNiz); public String vratiNazivPK();

79

Page 81: Seminarski projektovanje sistema

public String vratiKriterijumZaListu(); }

Slika 7 - "DBBroker" klasa se povezuje sa klasom "OpštiDomenskiObjekat"

3.4 Projektovanje skladišta podataka

Na osnovu softverskih klasa strukture projektovane su tabele (skladišta podataka) relacionog sistema za upravljanje bazom podataka. U ovom radu korišćen je “MS Access”:

Tabela: FizičkoLiceIme polja Tip Veličina

JMBG Text 13Ime Text 255

Prezime Text 255DatumRođenja Number Integer

PttBroj Number Long Integer

Tabela: GradIme polja Tip VeličinaPttBroj Number Long Integer

NazivGrada Text 255

Tabela: UslugaIme polja Tip Veličina

80

Page 82: Seminarski projektovanje sistema

SifraUsluge Number Long IntegerNazivUsluge Text 255

Opis Text 255Cena Number Double

Tabela: ZahtevIme polja Tip Veličina

SifraZahteva Number Long IntegerVremeRealizacijeZahteva Text 255

JMBG Text 13SifraUsluge Number Long Integer

Tabela: RacunIme polja Tip Veličina

BrojRacuna Number Long IntegerUkupnaVrednost Number Double

Storniran Yes/No 1JMBG Text 255

DatumKreiranja Date/Time /

Tabela: StavkaRacunaIme polja Tip Veličina

BrojRacuna Number Long IntegerRedniBroj Number IntegerKolicina Number Integer

Cena Number DoubleUkupnaVrednost Number Double

SifraUsluge Number Long Integer

Nakon projektovanja tabela iz baze podataka dobijamo potpunu sliku arhitekture softverskog sistema koji razvijamo.

81

Page 83: Seminarski projektovanje sistema

82

Page 84: Seminarski projektovanje sistema

4. Implementacija

Softverski sistem je razvijen u programskom jeziku “Java”. Sistem je projektovan kao klijent-server. Kao sistem za upravljanje bazom podataka korišćen je “MS Access”, dok je ravojno okruženje “NetBeans IDE 7.3”. Na osnovu arhitekture softverskog sistema dobijene su sledeće softverske klase:

1. DomKlijent

forma.pocetna/FPocetna.java forme.fizickoLice/FUnosFizickogLica.java forme.fizickoLice/FPretragaFizickihLica.java forme.racun/FUnosRacuna.java forme.racun/FPretragaRacuna.java forme.racun/FUnosZahteva.java forme.zahtev/FPretragaZahteva.java forme.zahtev/FUnosFizickogLica.java klijent/Klijent.java kontroler/Kontroler.java kontroler.fizickoLice/KontrolerZaPretraguFizickihLica.java kontroler.fizickoLice/KontrolerZaUnosFizickihLica.java kontroler.zahtev/KontrolerZaPretraguZahteva.java kontroler.zahtev/KontrolerZaUnosZahteva.java kontroler.racun/KontrolerZaPretraguRacuna.java kontroler.racun/KontrolerZaUnosRacuna.java model.racun/RacunModelTabele.java

2. DomServer

dbb/DbKomunikacija.java kontroler/Kontroler.java server/FServerPocetna.java server/KlijentNit.java servet/Server.java so/OpstaSistemskaOperacija.java so.fizickoLice/IzmeniFizickoLiceSo.java so.fizickoLice/ObrisiFizickoLiceSo.java so.fizickoLice/SacuvajFizickoLiceSo.java so.fizickoLice/VratiFizickaLicaSo.java so.grad/VratiGradSO.java so.racun/StornirajRacunSO.java so.racun/SacuvajRacunSo.java so.racun/VratiBrojRacunaSO.java so.racun/VratiRacuneSO.java so.racun/ VratiStavkeRacunaSO.java so.zahtev/ObrisiZahtevSO.java so.zahtev/SacuvajZahtevSO.java so.zahtev/VratiFizickaLicaZaZahtevSO.java so.zahtev/VratiListuZahtevaSO.java so.zahtev/VratiSifruZahtevaSO.java

83

Page 85: Seminarski projektovanje sistema

so.zahtev /VratiUslugeSO.java

3. DomZajednicki

domen/FizickoLice.java domen/Racun.java domen/StavkaRacuna.java domen/Zahtev.java domen/Usluga.java domen/Grad.java domen/OpstiDomenskiObjekat.java konstante/Konstante.java transfer/ServerTransferObjekat.java transfer/KlijentTransferObjekat.java

5. Testiranje

Svaki od implementiranih slučajeva korišćenja je testiran. Prilikom testiranja svakog slučaja korišćenja, pored unetih pravilnih podataka, unošeni su i nepravilni podaci da bi se utvrdilo kakav će biti rezultat izvršenja.

Na osnovu izvršenih testiranja otklonjeni su uočeni nedostaci.

6. Literatura

dr Siniša Vlajić, Projektovanje softvera (skripta), Beograd, 2011.

84