Upload
srdjan
View
333
Download
18
Embed Size (px)
DESCRIPTION
projektovanje softvera dokumentacija
Citation preview
Univerzitet u BeograduFakultet organizacionih nauka
Laboratorija za softversko inženjerstvo
Seminarski rad iz predmeta
Projektovanje softvera
Tema: Softverski sistem za praćenje rada učenika u srednjoj školi
Profesor: dr Siniša Vlajić
Student:Srđan Tajdić 197/10
Beograd, 2014.
SADRŽAJ
1. Korisnički zahtevi...............................................................................................................................4
1.1. Verbalni opis...............................................................................................................................4
1.2. Slučajevi korišćenja.....................................................................................................................4
SK1: Slučaj korišćenja- Unos učenika u sistem...............................................................................5
SK2: Slučaj korišćenja – Brisanje učenika iz sistema......................................................................6
SK 3: Slučaj korišćenja – Pretraga učenika.....................................................................................7
SK 4: Slučaj korišćenja – Izmena podataka o učeniku....................................................................7
SK 5: Slučaj korišćenja – Unos izostanaka učenika.........................................................................8
SK 6: Slučaj korišćenja – Izmena izostanaka učenika.....................................................................9
SK7: Slučaj korišćenja – Unošenje predmeta...............................................................................10
SK8: Slučaj korišćenja – Unošenje ocene.....................................................................................10
SK 9: Slučaj korišćenja – Izmena ocene učenika...........................................................................11
SK10: Slučaj korišćenja – Prijavljivanje korisnika.........................................................................12
2. Analiza.............................................................................................................................................13
2.1. Ponašanje softverskog sistema – Sistemski dijagram sekvenci.................................................13
DS1:Dijagramsekvenci slučajakorišćenja –Unos učenika............................................................13
DS2:Dijagramsekvencislučajakorišćenja –Brisanje učenika.........................................................15
DS3:Dijagramsekvencislučajakorišćenja –Pretraga učenika........................................................17
DS4:Dijagramsekvencislučajakorišćenja –Izmena podataka o učeniku.......................................18
DS5:Dijagramsekvencislučajakorišćenja –Unos izostanaka učenika............................................21
DS6:Dijagramsekvencislučajakorišćenja –Izmena izostanaka učenika........................................23
DS7: Dijagram sekvenci slučaja korišćenja –Unos predmeta.......................................................25
DS8: Dijagram sekvenci slučaja korišćenja – Unošenje ocene.....................................................27
DS9: Dijagram sekvenci slučaja korišćenja – Izmena ocene........................................................29
DS10: Dijagram sekvenci slučaja korišćenja – Prijavljivanje korisnika..........................................32
2.2. Ponašanje softverskog sistema – Definisanje ugovora o sistemskim operacijama...................33
Struktura softverskog sistema – Konceptualni (domenski) model...................................................38
Struktura softverskog sistema – Relacioni model............................................................................39
3. Projektovanje...................................................................................................................................42
Arhitektura softverskog sistema......................................................................................................43
3.1. Projektovanje korisničkog interfejsa.........................................................................................44
3.1.1. Projektovanje ekranskih formi...........................................................................................44
3.1.2. Projektovanje kontrolera korisničkog interfejsa................................................................73
3.2. Projektovanje aplikacione logike..............................................................................................74
3.2.1. Komunikacija sa klijentima.................................................................................................74
3.2.2. Kontroler aplikacione logike..............................................................................................74
3.2.3. Poslovna logika..................................................................................................................75
3.2.4. Broker baze podataka........................................................................................................84
3.3. Projektovanje skladišta podataka.............................................................................................86
4.Implemetacija...................................................................................................................................90
5. Testiranje.........................................................................................................................................91
1. Korisnički zahtevi
1.1. Verbalni opis
Potrebno je napraviti aplikaciju koja omogućava da se efikasno izvršava evidencija podataka o učeniku, o njegovim ocenama i izostancima. Korisnik sistema je službenik u školskoj upravi (korisnik).
Sistem treba da omogući unošenje podataka o učenicima i predmetima, kao i pretraživanje, izmenu i brisanje ocena. Pored ovih zahteva potrebno je omogućiti i da korisnik može da unese rezultate predmeta. Da bi korisnik mogao da vrši promene nad podacima u sistemu mora da bude prijavljen na sistem (ulogovan).
1.2. Slučajevi korišćenja
U konkretnom slučaju evidentirani su sledeći slučajevi korišćenja koji su prikazani na slici 1:
1) Unos učenika u sistem2) Brisanje učenika iz sistema3) Pretraga učenika4) Izmena podataka o učeniku5) Unos izostanaka učenika6) Izmena izostanaka učenika7) Unos predmeta8) Unošenje ocene9) Izmena ocene10)Prijava korisnika na sistem
Slika 1. Dijagram slučajeva korišćenja
SK1: Slučaj korišćenja- Unos učenika u sistem
Naziv SK Kreiranje novog učenika
Aktori SK Korisnik (službenik)
Učesnici SK Korisnik isistem(program)
Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za rad sa učenicima.
Osnovni scenario SK
1. Korisnik poziva sistem da kreira novog učenika. (APSO) 2. Sistem kreira novog učenika. (SO) 3. Sistem prikazuje korisniku novog učenika i poruku: “Sistem je kreirao novog učenika”. (IA) 4. Korisnik unosi podatke o novom učeniku. (APUSO) 5. Korisnik kontroliše da li je korektno uneo podatke o novom učeniku. (ANSO) 6. Korisnik poziva sistem da zapamti podatke o novom učeniku. (APSO)
7. Sistem pamti podatke o novom učeniku. (SO) 8. Sistem prikazuje korisniku poruku: “Sistem je zapamtio učenika”. (IA)
Alternativna scenarija
3.1 Ukoliko sistem ne može da kreira novog učenikaon prikazuje korisniku poruku: “Sistem ne može da kreira novog učenika”. Prekida se izvršenje scenarija. (IA)
8.1 Ukoliko sistem ne može da zapamti podatke o novom učenikuon prikazuje korisniku poruku “Sistem ne može da zapamti novog učenika”.
SK2: Slučaj korišćenja – Brisanje učenika iz sistema
Naziv SK Brisanje učenika
Aktori SK Korisnik
Učesnici SK Korisnik i sistem (program)
Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za rad za brisanje učenika.
Osnovni scenario SK
1. Korisnik unosi vrednost po kojoj pretražuje učenika. (APUSO) 2. Korisnik poziva sistem da nađe učenika po zadatoj vrednosti. (APSO) 3. Sistem traži učenika po zadatoj vrednosti. (SO) 4. Sistem prikazuje korisniku pronađenog učenika. (IA) 5. Korisnik poziva sistem da obriše učenika. (APSO)6. Sistem briše učenika. (SO)7. Sistem prikazuje korisniku poruku: “Sistem je obrisao učenika.” (IA)
Alternativna scenarija
4.1 Ukoliko sistem ne može da nađe učenike on prikazuje korisniku poruku: “Sistem ne može da nađe učenika po zadatoj vrednosti”. Prekida se izvršavanje scenarija (IA)
7.1 Ukoliko sistem ne može da obriše učenika on prikazuje korisniku poruku: “Sistemne može da obriše učenika”. (IA)
SK 3: Slučaj korišćenja – Pretraga učenika
Naziv SKPretraga učenika
Aktori SKKorisnik
Učesnici SKKorisnik i sistem (program)
Preduslov:Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za pretragu učenika.
Osnovni scenario SK
1. Korisnik unosi vrednosti po kojima pretražuje učenika. (APUSO)2. Korisnik poziva sistem da nađe učenika po zadatim vrednostima. (APSO)3. Sistem traži učenika po zadatim vrednostima. (SO)4. Sistem prikazuje korisniku nađenog učenika. (IA)
Alternativna scenarija
4.1. Ukoliko sistem ne može da nađe učenike on prikazuje korisniku poruku: “Sistem ne može da nađe učenika po zadatim vrednostima”. Prekida se izvršenje scenarija. (IA)
SK 4: Slučaj korišćenja – Izmena podataka o učeniku
Naziv SKIzmena podataka o učeniku
Aktori SKKorisnik
Učesnici SKKorisnik i sistem (program)
Preduslov:Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za izmenu podataka.
Osnovni scenario SK
1. Korisnik unosi vrednosti po kojima pretražuje učenika. (APUSO)2. Korisnik poziva sistem da nađe učenika po zadatim vrednostima. (APSO)3. Sistem traži učenika po zadatim vrednostima. (SO)4. Sistem prikazuje korisniku nađenog učenika. (IA)5. Korisnik unosi (menja) podatke o učeniku. (APUSO)6. Korisnik kontroliše da li je korektno uneo podatke o učeniku. (ANSO)7. Korisnik poziva sistem da zapamti podatke o učeniku. (APSO)8. Sistem pamti podatke o učeniku. (SO)9. Sistem prikazuje korisniku poruku: “Sistem je zapamtio učenika.” (IA)
Alternativna scenarija:
4.1. Ukoliko sistem ne može da nađe učenike on prikazuje korisniku poruku: “Sistem ne može da nađe učenika po zadatim vrednostima”. Prekida se izvršenje scenarija. (IA)9.1. Ukoliko sistem ne može da zapamti podatke o učeniku on prikazuje korisniku poruku: “Sistem ne može da zapamti učenika”. (IA)
SK 5: Slučaj korišćenja – Unos izostanaka učenika
Naziv SKUnos izostanaka učenika
Aktori SKKorisnik
Učesnici SKKorisnik i sistem (program)
Preduslov:Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za rad sa izostankom učenika, učitani su svi predmeti.
Osnovni scenario SK
1. Korisnik unosi vrednost po kojoj pretražuje učenika. (APUSO) 2. Korisnik poziva sistem da nađe učenika po zadatoj vrednosti. (APSO) 3. Sistem traži učenika po zadatoj vrednosti. (SO) 4. Sistem prikazuje korisniku pronađenog učenika. (IA) 5. Korisnik bira učenika .(APUSO) 6. Korisnik poziva sistem da kreira nov izostanak učenika. (APSO)7. Sistem kreira nov izostanak učenika. (SO)8. Sistem prikazuje korisnikunov izostanak učenika. (IA)9. Korisnik unosi podatke o novomizostanku učenika. (APUSO)
10. Korisnik kontroliše da li je korektno uneo podatke o novom izostanku učenika. (ANSO)11. Korisnik poziva sistem da zapamti podatke o novom izostanku učenika. (APSO)12. Sistem pamti podatke o novom izostanku učenika. (SO)13. Sistem prikazuje korisniku poruku:”Sistem je zapamtio nov izostanak”. (IA)
Alternativna scenarija
4.1. Ukoliko sistem ne može da pronađe učenikeon prikazuje korisniku poruku: “Sistem ne može da pronađe učenika po zadatoj vrednosti”. Prekida se izvršenje scenarija. (IA)
8.1. Ukoliko sistem ne može da kreira izostanak učenika on prikazuje korisniku poruku: “Sistem ne može da kreira izostanak učenika”. Prekida se izvršenje scenarija. (IA)
13.1. Ukoliko sistem ne može da zapamti podatke o novom izostanku on prikazuje korisniku poruku “Sistem ne može da zapamti nov izostanak”. (IA)
SK 6: Slučaj korišćenja – Izmena izostanaka učenika
Naziv SKEvidencija izostanaka učenika
Aktori SKKorisnik
Učesnici SKKorisnik i sistem (program)
Preduslov:Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za izostankeučenika.
Osnovni scenario SK
scenario SK
1. Korisnik unosi podatke o uceniku cije izostanke zeli da prikaze. (APUSO)2. Korisnik poziva sistem da nađe izostanke izabranog učenika (APSO)3. Sistem traži izostanke učenika po zadatim vrednostima. (SO)4. Sistem prikazuje korisniku nađenu evidenciju izostanaka. (IA)5. Korisnik biraizostanank koje želi da izmeni. (APUSO)
6. Korisnik poziva sistem da opravda izostanku. (APSO)7. Sistem pamti podatke o izostanku. (SO)8. Sistem prikazuje korisniku poruku: “Sistem je opravdao izostanak.” (IA)
Alternativna scenarija
4.1. Ukoliko sistem ne može da nađe evidenciju izostanaka on prikazuje korisniku poruku: “Sistem ne može da nađe evidenciju izostanaka”. Prekida se izvršenje scenarija. (IA)
8.1. Ukoliko sistem ne može da zapamti podatke o izostanku on prikazuje korisniku poruku: “Sistem ne može da opravda izostanak”. (IA)
SK7: Slučaj korišćenja – Unošenje predmeta
Naziv SK Kreiranje novog predmeta
Aktori SK Korisnik (službenik)
Učesnici SK Korisnik isistem(program)
Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za rad sa predmetima.
Osnovni scenario SK
1. Korisnik poziva sistem da kreira nov predmet. (APSO) 2. Sistem kreira nov predmet. (SO) 3. Sistem prikazuje korisniku nov predmet i poruku: “Sistem je kreirao nov predmet”. (IA) 4. Korisnik unosi podatke o novom predmetu. (APUSO) 5. Korisnik kontroliše da li je korektno uneo podatke o novom predmetu. (ANSO) 6. Korisnik poziva sistem da zapamti podatke o novom predmetu. (APSO) 7. Sistem pamti podatke o novom predmetu. (SO) 8. Sistem prikazuje korisniku poruku: “Sistem je zapamtio predmet”. (IA)
Alternativna scenarija
3.1 Ukoliko sistem ne može da kreira nov predmeton prikazuje korisniku poruku: “Sistem ne može da kreira nov predmet”. Prekida se izvršenje scenarija. (IA)
8.1 Ukoliko sistem ne može da zapamti podatke o novom predmetuon prikazuje korisniku poruku “Sistem ne može da zapamti nov predmet”.
SK8: Slučaj korišćenja – Unošenje ocene
Naziv SKUnošenje ocene
Aktori SKKorisnik
Učesnici SKKorisnik i sistem (program)
Preduslov:Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za unošenje ocene, učitani su svi predmeti.
Osnovni scenario SK
scenario SK
1. Korisnik unosi vrednost po kojoj pretražuje učenike. (APUSO) 2. Korisnik poziva sistem da nađe učenike po zadatoj vrednosti. (APSO) 3. Sistem traži učenike po zadatoj vrednosti. (SO) 4. Sistem prikazuje korisniku pronađenog učenika. (IA) 5. Korisnik unosi podatke o novim ocenama učenika. (APUSO)6. Korisnik kontroliše da li je korektno uneo podatke o novim unešenim ocenama.
(ANSO)7. Korisnik poziva sistem da zapamti podatke o unešenim ocenama. (APSO)8. Sistem pamti podatke o novim unešenim ocenama. (SO)9. Sistem prikazuje korisniku poruku:”Sistem je zapamtio unešene ocene”. (IA)
Alternativna scenarija
4.1. Ukoliko sistem ne može da pronađe učenike on prikazuje korisniku poruku: “Sistem ne može da pronađe učenike”. Prekida se izvršenje scenarija. (IA)
9.1. Ukoliko sistem ne može da kreira nov unos ocene on prikazuje korisniku poruku: “Sistem ne može da kreira nov unos ocene”. Prekida se izvršenje scenarija. (IA)
SK 9: Slučaj korišćenja – Izmena ocene učenika
Naziv SKIzmena ocene
Aktori SKKorisnik
Učesnici SKKorisnik i sistem (program)
Preduslov:Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za izmenu ocene.
Osnovni scenario SK scenario SK
1. Korisnik poziva sistem da prikaže ocene izabranog učenika za izabrani predmet (APSO)
2. Sistem traži ocene po zadatoj vrednosti. (SO) 3. Sistem prikazuje korisniku pronađene ocene učenika. (IA) 4. Korisnik bira ocenu (APUSO) 5. Sistem prikazuje korisniku ocenu (ANSO)6. Korisnik unosi izmene ocene (APUSO)7. Korisnik pozivasistemda izmeni ocenu. (APSO) 8. Sistem menja ocenu. (SO) 9. Sistem prikazuje korisniku poruku: “Sistem je izmenio ocenu.” (IA)
Alternativna scenarija
3.1 Ukoliko sistem ne može da nađe podatke o ocenama on prikazuje korisniku poruku: “Sistemne može da nađe ocenepo zadatoj vrednosti”. Prekida se izvršenje scenaria. (IA)
9.1 Ukoliko sistem ne može da izmeni ocenu on prikazuje korisniku poruku “Sistem ne može da izmeni ocenu”. (IA)
SK10: Slučaj korišćenja – Prijavljivanje korisnika
Naziv SK: Prijavljivanje korisnika
Aktori SK: Korisnik
Učesnici SK: Korisnik i sistem (program)
Preduslov: Sistem je uključen i prikazuje formu za logovanje.
Osnovni scenario SK:
1. Korisnik unosi podatke za autentifikaciju korisnika. (APUSO)
2. Korisnik poziv asistem da prijavi korisnika sa zadatim podacima. (APSO)
3. Sistem prijavljuje korisnika. (SO)
4. Sistem prikazuje poruku da je korisnik uspešno prijavljen i omogućava pristup sistemu.(IA)
Alternativna scenarija:
4.1. Ukoliko sistem ne može da nađe korisnika prikazuje poruku da korisnik nije uneo tačne podatke. (IA)
2. Analiza
2.1. Ponašanje softverskog sistema – Sistemski dijagram sekvenci
DS1:Dijagramsekvenci slučajakorišćenja –Unos učenika
1. Korisnik poziva sistem da kreira novog učenika. (APSO) 2. Sistem prikazuje korisnikunovog učenika i poruku: “Sistem je kreirao novog učenika”.
(IA)3. Korisnik poziva sistem da zapamti podatke o novom učeniku. (APSO) 4. Sistem prikazuje korisniku poruku: “Sistem je zapamtio učenika”. (IA)
Alternativna scenarija
2.1 Ukoliko sistem ne može da kreira novog učenikaon prikazuje korisniku poruku: “Sistem ne može da kreira novog učenika”. Prekida se izvršenje scenarija. (IA)
4.1 Ukoliko sistem ne može da zapamti podatke o novom učenikuon prikazuje korisniku poruku “Sistem ne može da zapamti novog učenika”.
Sanavedenihslučajevakorišćenjauočavajusedvesistemskeoperacije operacije koje treba projektovati:
:1. signalKreirajNovogUčenika(Učenik);2. signalZapamtiUčenika(Učenik);
DS2:Dijagramsekvencislučajakorišćenja –Brisanje učenika
1. Korisnik poziva sistem da nađe učenike po zadatoj vrednosti. (APSO)
2. Sistem prikazuje korisniku pronađene učenike. (IA)
3. Korisnik poziva sistem da obriše učenika. (APSO)
4. Sistem prikazuje korisniku poruku: “Sistem je obrisao učenika.” (IA)
Alternativna scenarija
2.1 Ukoliko sistem ne može da nađe učenike on prikazuje korisniku poruku: “Sistem ne može da nađe učenike po zadatoj vrednosti”. Prekida se izvršavanje scenarija (IA)
4.1 Ukoliko sistem ne može da obriše učenika on prikazuje korisniku poruku: “Sistemne može da obriše učenika”. (IA)
Sa navedenih sekvencnih dijagrama uočavaju se dve sistemske operacije koje treba projektovati:
1. signalPretražiUčenika(KriterijumPretrage)2. signalObrišiUčenika(Učenik)
DS3:Dijagram sekvencislučajakorišćenja –Pretraga učenika
1. Korisnik poziva sistem da nađe učenike po zadatim vrednostima. (APSO)2. Sistem prikazuje korisniku nađene učenike. (IA)3. Korisnik poziva sistem da prikaže podatke o izabranom učeniku. (APSO)4. Sistem prikazuje korisniku podatke o izabranom učeniku. (IA)
Alternativna scenarija
2.1 Ukoliko sistem ne može da nađe učenike on prikazuje korisniku poruku: “Sistem ne može da nađe učenike po zadatim vrednostima”. Prekida se izvršenje scenarija.(IA)
Sa navedenih sekvencnih dijagrama uočavaju se dve sistemske operacije koje treba projektovati:
1. signalPretraziUčenika(KriterijumPretrage)
DS4:Dijagram sekvenci slučajakorišćenja –Izmena podataka o učeniku
1. Korisnik poziva sistem da nađe učenika po zadatim vrednostima. (APSO)2. Sistem prikazuje korisniku nađenog učenika. (IA)3. Korisnik poziva sistem da zapamti podatke o učeniku. (APSO)4. Sistem prikazuje korisniku poruku: “Sistem je zapamtio učenika.” (IA)
Alternativna scenarija
2.1 Ukoliko sistem ne može da nađe učenika on prikazuje korisniku poruku: “Sistem ne može da nađe učenike po zadatim vrednostima”. Prekida se izvršenje scenarija. (IA)
6.1 . Ukoliko sistem ne može da zapamti podatke o učeniku on prikazuje korisniku poruku: “Sistem ne može da zapamti učenika”. (IA)
Sa navedenih sekvencnih dijagrama uočavaju se tri sistemske operacije koje treba projektovati:
1. signalPretraziUčenika(KriterijumPretrage)2. signalZapamtiUčenika(Učenik)
DS5:Dijagramsekvenci slučaja korišćenja –Unos izostanaka učenika
1. Korisnik poziva sistem da nađe učenika po zadatoj vrednosti. (APSO)2. Sistem prikazuje korisniku pronađene učenika. (IA) 3. Korisnik poziva sistem da zapamti podatke o novom izostanku učenika. (APSO)4. Sistem prikazuje korisniku poruku:”Sistem je zapamtio novi zostanak”. (IA)
Alternativna scenarija
4.1 Ukoliko sistem ne može da pronađe učenikeon prikazuje korisniku poruku: “Sistem ne može da pronađe učenike po zadatoj vrednosti”. Prekida se izvršenje scenarija. (IA)
8.1 Ukolikosistem ne može da zapamti podatke o novom izostanku on prikazuje korisniku poruku “Sistem ne može da zapamti nov izostanak”. (IA)
Sa navedenih sekvencnih dijagrama uočavaju se tri sistemske operacije koje treba projektovati:
1. signalPretraziUčenika(KriterijumPretrage)2. signalZapamtiNovIzostanak(Izostanak)
DS6:Dijagram sekvenci slučaja korišćenja –Izmena izostanaka učenika
1. Korisnik poziva sistem da nađe izostanke izabranog učenika (APSO)2. Sistem prikazuje korisniku nađenu evidenciju izostanaka. (IA)3. Korisnik poziva sistem da zapamti podatke o izostanku. (APSO)4. Sistem prikazuje korisniku poruku: “Sistem je zapamtio izostanak.” (IA)
Alternativna scenarija
6.1 Ukoliko sistem ne može da nađe evidenciju izostanaka on prikazuje korisniku poruku: “Sistem ne može da nađe evidenciju izostanaka”. Prekida se izvršenje scenarija. (IA)
10.1 . Ukoliko sistem ne može da zapamti podatke o izostanku on prikazuje korisniku poruku: “Sistem ne može da zapamti izostanak”. (IA)
Sa navedenih sekvencnih dijagrama uočavaja se 5 sistemskih operacija koje treba projektovati:
1. signal PretražiEvidencijuIzostanaka(KriterijumPretrage,List<Izostanak>)2. signal IzmeniIzostanak(Izostanak)
DS7: Dijagram sekvenci slučaja korišćenja –Unos predmeta
1. Korisnik poziva sistem da kreira novpredmet. (APSO) 2. Sistem prikazuje korisniku nov predmet i poruku: “Sistem je kreirao nov predmet”. (IA)3. Korisnik poziva sistem da zapamti podatke o novom predmetu. (APSO) 4. Sistem prikazuje korisnikuporuku: “Sistem je zapamtio predmet”. (IA)
Alternativna scenarija
2.1 Ukoliko sistem ne može da kreira nov predmeton prikazuje korisniku poruku: “Sistem ne može da kreira nov predmet”. Prekida se izvršenje scenarija. (IA)
4.1 Ukoliko sistem ne može da zapamti podatke o novom predmetuon prikazuje korisniku poruku “Sistem ne može da zapamti nov predmet”.
Sa navedenih slučajeva korišćenja uočavaju se dve sistemske operacije operacije koje treba projektovati:
:1. signalKreirajNovPredmet(Predmet);2. signalZapamtiPredmet(Predmet);
DS8: Dijagram sekvenci slučaja korišćenja – Unošenje ocene
1. Korisnik poziva sistem da nađe učenika po zadatoj vrednosti. (APSO) 2. Sistem prikazuje korisniku pronađene učenika. (IA) 3. Korisnik poziva sistem da zapamti podatke o unešenim ocenama. (APSO)4. Sistem prikazuje korisniku poruku:”Sistem je zapamtio unešene ocene”. (IA)
Alternativna scenarija
4.1 Ukoliko sistem ne može da pronađe učenikeon prikazuje korisniku poruku: “Sistem ne može da pronađe učenikepo zadatim vrednostima”. Prekida se izvršenje scenarija. (IA)
8.1 Ukoliko sistem ne može da zapamti podatke o novim ocenama, on prikazuje korisniku poruku “Sistem ne može da zapamti nove ocene”. (IA)
Sa navedenih sekvencnih dijagrama uočavaju se tri sistemske operacije koje treba projektovati:
1. signalVratiSvePredmete(KriterijumPretrage,List<Predmet>)
2. signalPretraziUčenika(KriterijumPretrage)3. signal ZapamtiNoveUnešeneOcene(Unos)
DS9: Dijagram sekvenci slučaja korišćenja – Izmena ocene
1. Korisnik poziva sistem da prikaže ocene izabranog učenika za predmet (APSO)2. Sistem prikazuje korisniku pronađene ocene učenika. (IA) 3. Korisnik poziva sistem da izmeni ocenu. (APSO) 4. Sistem prikazuje korisniku poruku: “Sistem je izmenio ocenu.” (IA)
Alternativna scenarija
6.1 Ukoliko sistem ne može da nađe podatke o ocenama on prikazuje korisniku poruku: “Sistemne može da nađe ocenepo zadatoj vrednosti”. Prekida se izvršenje scenaria. (IA)
8.1 Ukoliko sistem ne može da izmeni ocenu on prikazuje korisniku poruku “Sistem ne može da izmeni ocenu”. (IA)
Sa navedenih sekvencnih dijagrama uočavaju se šest sistemskih operacija koje treba projektovati:
1. signalVratiSvePredmete(KriterijumPretrage,List<Predmet>)
2. signalPretražiUčenike(KriterijumPretrage, List<Učenik>)3. signal IzmeniOcenu(Ocena)4. signal PretražiOcene(KriterijumPretrage,List<Ocena>)
DS10: Dijagram sekvenci slučaja korišćenja – Prijavljivanje korisnika
1. Korisnik poziv asistem da prijavi korisnika sa zadatim podacima. (APSO)2. Sistem prikazuje poruku da je korisnik uspešno prijavljen i omogućava pristup sistemu.
(IA)
Alternativna scenarija
2.1. Ukoliko sistem ne može da nađe korisnika prikazuje poruku da korisnik nije uneo tačne podatke. (IA)
Sa navedenih sekvencnih dijagrama uočava se jedna sistemska operacija koju treba projektovati:
1. signalPrijaviKorisnika(Korisnik)
Kao rezultat analize scenarija dobijeno je ukupno 16sistemskih operacija koje treba projektovati:
1. signalKreirajNovogUčenika(Učenik);2. signalZapamtiUčenika(Učenik);3. signalPretražiUčenika(KriterijumPretrage)4. signalObrišiUčenika(Učenik)5. signal ZapamtiUčenika(Učenik) 6. signalZapamtiNovIzostanak(Izostanak)
7. signalKreirajNovIzostanak(Izostanak)8. signal PretražiEvidencijuIzostanaka(KriterijumPretrage,List<Izostanak>)9. signalKreirajNovPredmet(Predmet);10. signalZapamtiPredmet(Predmet);11. signal ZapamtiNoveUnešeneOcene(Unos)12. signal PretražiOcene(KriterijumPretrage,List<Ocena>)13. signal ZapamtiOcenu(Ocena)14. signalPrijaviKorisnika(Korisnik)15. signalVratiSvePredmete(List<Predmet>)16. signalVratiSveUcenike(List<Predmet>)
2.2. Ponašanje softverskog sistema – Definisanje ugovora o sistemskim operacijama
Ugovor UG1: KreirajNovogUčenika
Operacija: KreirajNovogUčenika(Učenik):signal;
Veza sa SK: SK1
Preduslovi: -
Postuslovi: Kreiran je novi učenik.
Ugovor UG2: ZapamtiUčenika
Operacija: ZapamtiUčenika(Učenik):signal;
Veza sa SK: SK1, SK4
Preduslovi: Prosto vrednosno ograničenje nad objektom Učenik mora biti zadovoljeno.
Strukturno ograničenje nad objektom Učenik mora biti zadovoljeno.
Postuslovi: Podaci o učeniku su zapamćeni.
Ugovor UG3: PretraziUčenika
Operacija: PretraziUčenike(KriterijumPretrage):signal;
Veza sa SK: SK2, SK3, SK4,SK5,SK6,SK8,SK9
Preduslovi: -
Postuslovi: -
Ugovor UG4:ObrišiUčenika
Operacija: ObrišiUčenika(Učenik):signal;
Veza sa SK: SK2
Preduslovi: -
Postuslovi: Učenik je obrisan.Strukturno ograničenje nad objektom Učenik mora biti zadovoljeno.
Ugovor UG5:ZapamtiUčenika
Operacija: ZapamtiUčenika(Učenik):signal;
Veza sa SK: SK1, SK4
Preduslovi: Prosto vrednosno ograničenje nad objektom Učenik mora biti zadovoljeno.
Strukturno ograničenje nad objektom Učenik mora biti zadovoljeno.
Postuslovi: Podaci o učeniku su zapamćeni.
Ugovor UG6:KreirajNovIzostanak
Operacija: KreirajNovIzostanak(Izostanak):signal;
Veza sa SK: SK5
Preduslovi:Ako za datog učenika postoje već tri izostanka koja nisu opravdana, ne može se izvršiti sistemska operacija.
Postuslovi: Kreiran je nov izostanak.
Ugovor UG7: ZapamtiNovIzostanak
Operacija: ZapamtiNovIzostanak(Izostanak):signal;
Veza sa SK: SK5, SK6
Preduslovi: Ako za datog učenika postoje već tri izostanka koja nisu opravdana ne može se izvršiti sistemska operacija. Prosto vrednosno ograničenje nad objektom Zaduzenje mora biti zadovoljeno.
Strukturno ograničenje nad objektom Zaduzenje mora biti zadovoljeno.Postuslovi: Podaci o izostanku su zapamćeni.
Ugovor UG8: PretraziEvidencijuIzostanaka
Operacija: PretražiEvidencijuIzostanaka(KriterijumPretrage,List<Izostanak>):signal;
Veza sa SK: SK6
Preduslovi: -
Postuslovi: -
Ugovor UG9: KreirajNovPredmet
Operacija: KreirajNovPredmet(Predmet):signal;
Veza sa SK: SK7
Preduslovi: -
Postuslovi: Kreiran je nov predmet.
Ugovor UG10: ZapamtiPredmet
Operacija: ZapamtiPredmet(Predmet);:signal;
Veza sa SK: SK7
Preduslovi: Prosto vrednosno ograničenje nad objektom Predmet mora biti zadovoljeno.
Strukturno ograničenje nad objektom Predmet mora biti zadovoljeno.
Postuslovi: Podaci o predmetu su zapamćeni.
Ugovor UG11:KreirajNovUnosOcene
Operacija: KreirajNovUnosOcene(Unos):signal;
Veza sa SK: SK8
Preduslovi: -
Postuslovi: Kreirana je nova ocena.
Ugovor UG12: ZapamtiNoveUnošeneOcene
Operacija: ZapamtiNoveUnešeneOcene(Unos):signal;
Veza sa SK: SK8
Preduslovi: Prosto vrednosno ograničenje nad objektom Unos mora biti zadovoljeno.
Strukturno ograničenje nad objektom Unos mora biti zadovoljeno.
Postuslovi: Podaci o unosu su zapamćeni.
Ugovor UG13: PretražiOcene
Operacija: PretražiOcene(KriterijumPretrage,List<Ocena>):signal;
Veza sa SK: SK9
Preduslovi: -
Postuslovi: -
Ugovor UG14: ZapamtiOcenu
Operacija: ZapamtiOcenu(Ocena):signal;
Veza sa SK: SK8, SK9
Preduslovi: Prosto vrednosno ograničenje nad objektom Ocena mora biti zadovoljeno.
Strukturno ograničenje nad objektom Ocena mora biti zadovoljeno.Postuslovi: Podaci o oceni su zapamćeni.
Ugovor UG15: PrijaviKorisnika
Operacija: PrijaviKorisnika(Korisnik):signal;
Veza sa SK: SK10
Preduslovi: -
Postuslovi: -
Ugovor UG16: VratiSvePredmete
Operacija:VratiSvePredmete(KriterijumPretrage,List<Predmet>):signal;
Veza sa SK: SK5,SK6,SK8,SK9
Preduslovi:-
Postuslovi:-Predmeti su nađeni.
Struktura softverskog sistema – Konceptualni (domenski) model
Struktura softverskog sistema – Relacioni model
Smer(SmerID, NazivSmera)
Učenik(JMBG, Ime, Prezime, Mail, Ulica, Broj ,Grad,SmerID)
Predmet(PredmetID, Naziv)
Ocena( UčenikID, PredmetID, OcenaID, Ocena, Datum, KorisnikID )
Korisnik ( KorisnikID, Ime, Prezime, KorisničkoIme, KorisnickaŠifra)
Izostanak(UčenikID, IzostanakID, Datum, Opravdani, BrojIzostanaka,KorisnikID)
Tabela SmerProsto vrednosno
ograničenjeSloženo vrednosno
ograničenjeStrukturno ograničenje
Atributi ImeTip
atributaVrednost atributa
Međuzav. atributa
jedne tabele
Međuzav. atributa
više tabela
Insert /
UpdateCascadeUčenik
DeleteRestrictedUčenik
ŠifraSmera Integernot null and >0
NazivSmera String not null
BrojPredmeta Integernot null and>0
BrojUčenika Integer
not null
and>0
Tabela UčenikProsto vrednosno
ograničenjeSloženo vrednosno
ograničenjeStrukturno ograničenje
ImeTip
atributaVrednost atributa
Međuzav. atributa
jedne tabele
Međuzav. atributa
više tabela
InsertRestrictedSmer
UpdateRestrictedSmer
DeleteCascadeOcena,Izostanak
UčenikID String not null
Ime String not null
Prezime String not null
JMBG String not null
Kontakt String not null
Mail String not null
Ulica String not null
Broj Integer
not null
and >0
ŠifraSmera Integer
not null
and>0
Mesto String not null
Tabela PredmetProsto vrednosno
ograničenjeSloženo vrednosno
ograničenjeStrukturno ograničenje
Atributi ImeTip
atributaVrednost atributa
Međuzav. atributa
jedne tabele
Međuzav. atributa
više tabela
Insert /Update/
Delete
PredmetID String not null
CascadeNaziv String not null
Tabela OcenaProsto vrednosno
ograničenjeSloženo vrednosno
ograničenjeStrukturno ograničenje
Atributi ImeTip
atributaVrednost atributa
Međuzav. atributa
jedne tabele
Međuzav. atributa
više tabela
Insert RestrictedPredmet,Učenik
Update RestrictedPredmet,Učenik
Delete /
UčenikID String not null
PredmetID String not null
OcenaID String not null
VrednostOcene Integer not null
Datum Date not null
KorisnikID String not null
Tabela KorisnikProsto vrednosno
ograničenjeSloženo vrednosno
ograničenjeStrukturno ograničenje
Atributi ImeTip
atributaVrednost atributa
Međuzav. atributa
jedne tabele
Međuzav. atributa
više tabela
KorisnikID String not null
Ime String not null
Prezime String not null
KorisničkoIme String not null
KorisničkaŠifra String not null
Tabela IzostanakProsto vrednosno
ograničenje
Složeno vrednosno
ograničenje
Strukturno ograničenje
Atributi
ImeTip
atributaVrednost atributa
Međuzav.
atributa
jedne tabel
e
Međuzav. atributa
više tabela
InsertRestrictedUčenik,Korisnik
UpdateRestrictedUčenik,Korisnik
Delete /UčenikID String not null
IzostanakID String not null
DatumIzostanka Date not null
DatumOpravdanja Date not null
Opravdano Bool (default:0)
BrojČasova Integer not null
KorisnikID String not null
3. Projektovanje
Faza projektovanja opisuje fizičku strukturu i ponašanje softverskog sistema (arhitekturu softverskog sistema).
Arhitektura softverskog sistema
Arhitekrura 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.
Tronivojska arhitektura
3.1. Projektovanje korisničkog interfejsa
Korisnički interfejs, predstavlja realizaciju ulaza i/ili izlaza softverskog sistema.
Struktura korisničkog interfejsa
Ekranska forma ima ulogu da prihvati podatke koje korisnik unosi, prihvata događaje koje pravi korisnik, poziva kontroler korisničkog interfejsa kako bi mu prosledio podatke i prikazuje podatke dobijene od kontrolera korisničkog interfejsa.
3.1.1. Projektovanje ekranskih formiKorisnič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, posle uspesnog logovanja na sistem 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, kao i forma za logovanje koje mora da se pokrene, da bi se pokrenula glavna ekranska forma.
SK1: Slučaj korišćenja- Unos učenika u sistem
Naziv SK Kreiranje novog učenika
Aktori SK Korisnik (službenik)
Učesnici SK Korisnik isistem(program)
Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za rad sa učenicima.
Osnovni scenario SK
1. Korisnik poziva sistem da kreira novog učenika. (APSO) 2. Sistem kreira novog učenika. (SO) 3. Sistem prikazuje korisnikun ovog učenika i poruku: “Sistem je kreirao novog učenika”. (IA)
4. Korisnik unosi podatke o novom učeniku. (APUSO)
5. Korisnik kontroliše da li je korektno uneo podatke o novom učeniku. (ANSO) 6. Korisnik poziva sistem da zapamti podatke o novom učeniku. (APSO) 7. Sistem pamti podatke o novom učeniku. (SO) 8. Sistem prikazuje korisniku poruku: “Sistem je zapamtio učenika”. (IA)
Alternativna scenarija
2.1 Ukoliko sistem ne može da kreira novog učenika on prikazuje korisniku poruku: “Sistem ne može da kreira novog učenika”. Prekida se izvršenje scenarija. (IA)
8.1 Ukoliko sistem ne može da zapamti podatke o novom učeniku on prikazuje korisniku poruku “Sistem ne može da zapamti novog učenika”.
SK2: Slučaj korišćenja – Brisanje učenika iz sistema
Naziv SK Brisanje učenika
Aktori SK Korisnik
Učesnici SK Korisnik i sistem (program)
Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za rad za brisanje učenika.
Osnovni scenario SK
1. Korisnik unosi vrednost po kojoj pretražuje učenika. (APUSO)
2. Korisnik poziva sistem da nađe učenika po zadatoj vrednosti. (APSO) 3. Sistem traži učenika po zadatoj vrednosti. (SO) 4. Sistem prikazuje korisniku pronađenog učenika. (IA)
5. Korisnik poziva sistem da obriše učenika. (APSO)6. Sistem briše učenika. (SO)7. Sistem prikazuje korisniku poruku: “Sistem je obrisao učenika.” (IA)
Alternativna scenarija
4.1 Ukoliko sistem ne može da nađe učenike on prikazuje korisniku poruku: “Sistem ne može da nađe učenika po zadatoj vrednosti”. Prekida se izvršavanje scenarija (IA)
7.1 Ukoliko sistem ne može da obriše učenika on prikazuje korisniku poruku: “Sistemne može da obriše učenika”. (IA)
SK 3: Slučaj korišćenja – Pretraga učenika
Naziv SKPretraga učenika
Aktori SKKorisnik
Učesnici SKKorisnik i sistem (program)
Preduslov:Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za pretragu učenika.
Osnovni scenario SK
Osnovni scenario SK
1. Korisnik unosi vrednosti po kojima pretražuje učenika. (APUSO)
2. Korisnik poziva sistem da nađe učenika po zadatim vrednostima. (APSO)3. Sistem traži učenika po zadatim vrednostima. (SO)4. Sistem prikazuje korisniku nađenog učenika. (IA)
Alternativna scenarija
4.1. Ukoliko sistem ne može da nađe učenike on prikazuje korisniku poruku: “Sistem ne može da nađe učenika po zadatim vrednostima”. Prekida se izvršenje scenarija. (IA)
SK 4: Slučaj korišćenja – Izmena podataka o učeniku
Naziv SKIzmena podataka o učeniku
Aktori SKKorisnik
Učesnici SK
Korisnik i sistem (program)
Preduslov:Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za izmenu podataka.
Osnovni scenario SK
1. Korisnik unosi vrednosti po kojima pretražuje učenika. (APUSO)
2. Korisnik poziva sistem da nađe učenika po zadatim vrednostima. (APSO)3. Sistem traži učenika po zadatim vrednostima. (SO)4. Sistem prikazuje korisniku nađenog učenika. (IA)
5. Korisnik unosi (menja) podatke o učeniku. (APUSO)
6. Korisnik kontroliše da li je korektno uneo podatke o učeniku. (ANSO)
7. Korisnik poziva sistem da zapamti podatke o učeniku. (APSO)8. Sistem pamti podatke o učeniku. (SO)9. Sistem prikazuje korisniku poruku: “Sistem je zapamtio učenika.” (IA)
Alternativna scenarija:
4.1. Ukoliko sistem ne može da nađe učenike on prikazuje korisniku poruku: “Sistem ne može da nađe učenika po zadatim vrednostima”. Prekida se izvršenje scenarija. (IA)
9.1. Ukoliko sistem ne može da zapamti podatke o učeniku on prikazuje korisniku poruku: “Sistem ne može da zapamti učenika”. (IA)
SK 5: Slučaj korišćenja – Unos izostanaka učenika
Naziv SKUnos izostanaka učenika
Aktori SKKorisnik
Učesnici SKKorisnik i sistem (program)
Preduslov:Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za rad sa izostankom učenika, učitani su svi predmeti.
Osnovni scenario SK
1. Korisnik unosi vrednost po kojoj pretražuje učenika. (APUSO)
2. Korisnik poziva sistem da nađe učenika po zadatoj vrednosti. (APSO) 3. Sistem traži učenika po zadatoj vrednosti. (SO) 4. Sistem prikazuje korisniku pronađenog učenika. (IA)
5. Korisnik bira učenika .(APUSO)
6. Korisnik poziva sistem da kreira nov izostanak učenika. (APSO)7. Sistem kreira nov izostanak učenika. (SO)8. Sistem prikazuje korisniku nov izostanak učenika. (IA)
9. Korisnik unosi podatke o novom izostanku učenika. (APUSO)
10. Korisnik kontroliše da li je korektno uneo podatke o novom izostanku učenika. (ANSO)11. Korisnik poziva sistem da zapamti podatke o novom izostanku učenika. (APSO)12. Sistem pamti podatke o novom izostanku učenika. (SO)13. Sistem prikazuje korisniku poruku:”Sistem je zapamtio nov izostanak”. (IA)
Alternativna scenarija
4.1. Ukoliko sistem ne može da pronađe učenike on prikazuje korisniku poruku: “Sistem ne može da pronađe učenika po zadatoj vrednosti”. Prekida se izvršenje scenarija. (IA)
8.1. Ukoliko sistem ne može da kreira izostanak učenika on prikazuje korisniku poruku: “Sistem ne može da kreira izostanak učenika”. Prekida se izvršenje scenarija. (IA)
13.1. Ukoliko sistem ne može da zapamti podatke o novom izostanku on prikazuje korisniku poruku “Sistem ne može da zapamti nov izostanak”. (IA)
SK 6: Slučaj korišćenja – Izmena izostanaka učenika
Naziv SKEvidencija izostanaka učenika
Aktori SKKorisnik
Učesnici SKKorisnik i sistem (program)
Preduslov:Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za izostanke učenika.
Osnovni scenario SK
scenario SK
1. Korisnik unosi podatke o uceniku cije izostanke zeli da prikaze. (APUSO)
2. Korisnik poziva sistem da nađe izostanke izabranog učenika (APSO)3. Sistem traži izostanke učenika po zadatim vrednostima. (SO)4. Sistem prikazuje korisniku nađenu evidenciju izostanaka. (IA)
5. Korisnik bira izostanank koje želi da izmeni. (APUSO)
6. Korisnik poziva sistem da opravda izostanku. (APSO)7. Sistem pamti podatke o izostanku. (SO)8. Sistem prikazuje korisniku poruku: “Sistem je opravdao izostanak.” (IA)
4.1. Ukoliko sistem ne može da nađe evidenciju izostanaka on prikazuje korisniku poruku: “Sistem ne može da nađe evidenciju izostanaka”. Prekida se izvršenje scenarija. (IA)
8.1. Ukoliko sistem ne može da zapamti podatke o izostanku on prikazuje korisniku poruku: “Sistem ne može da opravda izostanak”. (IA)
SK7: Slučaj korišćenja – Unošenje predmeta
Naziv SK Kreiranje novog predmeta
Aktori SK Korisnik (službenik)
Učesnici SK Korisnik isistem(program)
Preduslov: Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za rad sa predmetima.
Osnovni scenario SK
1. Korisnik poziva sistem da kreira nov predmet. (APSO) 2. Sistem kreira nov predmet. (SO) 3. Sistem prikazuje korisniku nov predmet i poruku: “Sistem je kreirao nov predmet”. (IA)
4. Korisnik unosi podatke o novom predmetu. (APUSO)
5. Korisnik kontroliše da li je korektno uneo podatke o novom predmetu. (ANSO) 6. Korisnik poziva sistem da zapamti podatke o novom predmetu. (APSO) 7. Sistem pamti podatke o novom predmetu. (SO) 8. Sistem prikazuje korisniku poruku: “Sistem je zapamtio predmet”. (IA)
Alternativna scenarija
3.1 Ukoliko sistem ne može da kreira nov predmet on prikazuje korisniku poruku: “Sistem ne može da kreira nov predmet”. Prekida se izvršenje scenarija. (IA)
4.1 Ukoliko sistem ne može da zapamti podatke o novom predmetu on prikazuje korisniku poruku “Sistem ne može da zapamti nov predmet”.
SK8: Slučaj korišćenja – Unošenje ocene
Naziv SKUnošenje ocene
Aktori SKKorisnik
Učesnici SKKorisnik i sistem (program)
Preduslov:Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za unošenje ocene, učitani su svi predmeti.
Osnovni scenario SK
scenario SK
1. Korisnik unosi vrednost po kojoj pretražuje učenike. (APUSO)
2. Korisnik poziva sistem da nađe učenike po zadatoj vrednosti. (APSO) 3. Sistem traži učenike po zadatoj vrednosti. (SO) 4. Sistem prikazuje korisniku pronađenog učenika. (IA)
5. Korisnik unosi podatke o novim ocenama učenika. (APUSO)
6. Korisnik kontroliše da li je korektno uneo podatke o novim unešenim ocenama. (ANSO)
7. Korisnik poziva sistem da zapamti podatke o unešenim ocenama. (APSO)8. Sistem pamti podatke o novim unešenim ocenama. (SO)9. Sistem prikazuje korisniku poruku:”Sistem je zapamtio unešene ocene”. (IA)
Alternativna scenarija
4.1. Ukoliko sistem ne može da pronađe učenike on prikazuje korisniku poruku: “Sistem ne može da pronađe učenike”. Prekida se izvršenje scenarija. (IA)
9.1. Ukoliko sistem ne može da kreira nov unos ocene on prikazuje korisniku poruku: “Sistem ne može da kreira nov unos ocene”. Prekida se izvršenje scenarija. (IA)
SK 9: Slučaj korišćenja – Izmena ocene učenika
Naziv SKIzmena ocene
Aktori SKKorisnik
Učesnici SKKorisnik i sistem (program)
Preduslov:Sistem je uključen i korisnik je ulogovan pod svojom šifrom. Sistem prikazuje formu za izmenu ocene.
Osnovni scenario SK scenario SK
1. Korisnik poziva sistem da prikaže ocene izabranog učenika za izabrani predmet (APSO)
2. Sistem traži ocene po zadatoj vrednosti. (SO) 3. Sistem prikazuje korisniku pronađene ocene učenika. (IA)
4. Korisnik bira ocenu (APUSO)
5. Sistem prikazuje korisniku ocenu (ANSO)6. Korisnik unosi izmene ocene (APUSO)
7. Korisnik pozivasistemda izmeni ocenu. (APSO) 8. Sistem menja ocenu. (SO) 9. Sistem prikazuje korisniku poruku: “Sistem je izmenio ocenu.” (IA)
Alternativna scenarija
3.1 Ukoliko sistem ne može da nađe podatke o ocenama on prikazuje korisniku poruku: “Sistem ne može da nađe ocene po zadatoj vrednosti”. Prekida se izvršenje scenaria. (IA)
9.1 Ukoliko sistem ne može da izmeni ocenu on prikazuje korisniku poruku “Sistem ne može da izmeni ocenu”. (IA)
SK10: Slučaj korišćenja – Prijavljivanje korisnika
Naziv SK: Prijavljivanje korisnika
Aktori SK: Korisnik
Učesnici SK: Korisnik i sistem (program)
Preduslov: Sistem je uključen i prikazuje formu za logovanje.
Osnovni scenario SK:
1. Korisnik unosi podatke za autentifikaciju korisnika. (APUSO)
2. Korisnik poziv asistem da prijavi korisnika sa zadatim podacima. (APSO)
3. Sistem prijavljuje korisnika. (SO)
4. Sistem prikazuje poruku da je korisnik uspešno prijavljen i omogućava pristup sistemu.(IA)
Alternativna scenarija:
4.1. Ukoliko sistem ne može da nađe korisnika prikazuje poruku da korisnik nije uneo tačne podatke. (IA)
3.1.2. Projektovanje kontrolera korisničkog interfejsa
Ekranska forma prosleđuje podatke i prikazuje podatke dobijene od kontrolera korisničkog interfejsa. U skladu sa tim kontroler korisničkog interfejsa odgovoran je za:
prihvatanje podataka koje šalje ekranska forma konvertovanje podataka (koji se nalaze u grafičkim elementima) u objekat koji
predstavlja ulazni argument sistemske operacije slanje zahteva izvršenje sistemske operacije do aplikacionog servera (softverskog
sistema) prihvatanje objekta (izlaz) softverskog sistema koji nastaje kao rezultat izvršenja
sistemske operacije konvertovanje objekta u podatke grafičkih elemenata
3.2. Projektovanje aplikacione logike
Aplikacioni serveri treba da obezbede servise koji će da omoguće realizaciju aplikacione logike softverskog sistema. Projektovani aplikacioni server sadrži:
deo za komunikaciju sa klijentima kontroler aplikacione logike deo za komunikaciju sa skladištem podataka (Broker baze podataka) deo koji sadrži poslovnu logiku
3.2.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 TransferKlasa.
namespace Biblioteka{Public enumO peracije { Kraj = 1, login, sacuvajPredmet, kreirajPredmet, kreirajUcenika, zapamtiUcenika, pronadjiUcenika, izmeniUcenika, obrisiUcenika, kreirajIzostanak, zapamtiIzostanak, pronadjiIzostanak, izmeniIzostanak, vratiPredmete, sacuvajOcene, izmeniOcene, pronadjiOcene, vratiSveUcenike } [Serializable]Public class TransferKlasa {Operacije operacija;
Public Operacije Operacija {get { return operacija; }set { operacija = value; } }Object transferObjekat;
Public Object TransferObjekat {get { return transferObjekat; }set { transferObjekat = value; }
}Object rezultat;
Public Object Rezultat {get { return rezultat; }set { rezultat = value; } } }}
3.2.2. Kontroler aplikacione logike
Kontroler aplikacione logike prihvata zahteve za izvršenje sistemskih operacija i iste prosleđuju 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 faza projektovanja komunikacije sa klijentima i kontrolera aplikacione logike.
3.2.3. Poslovna logika
Projektovanje ponašanja softverskog sistema – sistemske operacije
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 izvršenje SO. Za svaku SO prave se softverske klase koje treba da realizuju SO (one opisuju ponašanje sistema).
Ugovor UG1: KreirajNovogUčenika
Operacija: KreirajNovogUčenika(Učenik):signal;
Veza sa SK: SK1
Preduslovi: -
Postuslovi: Kreiran je novi učenik.
namespace SistemskeOperacije.UcenikSO{Public class KreirajNovogUcenika:OpstaSO {Public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) {return Sesija.Broker.dajSesiju().dajSve(odo); } }}
Ugovor UG2: ZapamtiUčenika
Operacija: ZapamtiUčenika(Učenik):signal;
Veza sa SK: SK1, SK4
Preduslovi: Prosto vrednosno ograničenje nad objektom Učenik mora biti zadovoljeno.
Strukturno ograničenje nad objektom Učenik mora biti zadovoljeno.
Postuslovi: Podaci o učeniku su zapamćeni.
namespace SistemskeOperacije.UcenikSO{Public class Zapamti Ucenika:OpstaSO {Public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) {return Sesija.Broker.dajSesiju().ubaci(odo); } }}
Ugovor UG3: PretraziUčenika
Operacija: PretraziUčenike(KriterijumPretrage):signal;
Veza sa SK: SK2, SK3, SK4,SK5,SK6,SK8,SK9
Preduslovi: -
Postuslovi: -
namespace SistemskeOperacije.UcenikSO{Public class PretraziUcenike:OpstaSO {publicoverrideobject Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) { Biblioteka.Ucenik u= Sesija.Broker.dajSesiju().dajZaUslovJedan(odo) as Biblioteka.Ucenik; u.Smer = Sesija.Broker.dajSesiju().dajZaUslovJedan(u.Smer) as Biblioteka.Smer;return u; } }}
Ugovor UG4:ObrišiUčenika
Operacija: ObrišiUčenika(Učenik):signal;
Veza sa SK: SK2
Preduslovi: -
Postuslovi: Učenik je obrisan.Strukturno ograničenje nad objektom Učenik mora biti zadovoljeno.
namespace SistemskeOperacije.UcenikSO{Public class ObrisiUcenika:OpstaSO {Public overrid eobject Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) {return Sesija.Broker.dajSesiju().obrisi(odo); } }}
Ugovor UG5:ZapamtiUčenika
Operacija: ZapamtiUčenika(Učenik):signal;
Veza sa SK: SK1, SK4
Preduslovi: Prosto vrednosno ograničenje nad objektom Učenik mora biti zadovoljeno.
Strukturno ograničenje nad objektom Učenik mora biti zadovoljeno.
Postuslovi: Podaci o učeniku su zapamćeni.
namespace SistemskeOperacije.UcenikSO{ public class ZapamtiUcenika:OpstaSO
{ public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) { return Sesija.Broker.dajSesiju().ubaci(odo); } }}
Ugovor UG6:KreirajNovIzostanak
Operacija: KreirajNovIzostanak(Izostanak):signal;
Veza sa SK: SK5
Preduslovi:Ako za datog učenika postoje već tri izostanka koja nisu opravdana, ne može se izvršiti sistemska operacija.
Postuslovi: Kreiran je nov izostanak.
namespace SistemskeOperacije.IzostanakSO{Public class Kreiraj NoviIzostanak:OpstaSO {Public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) {return Sesija.Broker.dajSesiju().dajSifru(odo); } }}
Ugovor UG7: ZapamtiNovIzostanak
Operacija: ZapamtiNovIzostanak(Izostanak):signal;
Veza sa SK: SK5, SK6
Preduslovi: Ako za datog učenika postoje već tri izostanka koja nisu opravdana ne može se izvršiti sistemska operacija. Prosto vrednosno ograničenje nad objektom Zaduzenje mora biti zadovoljeno.
Strukturno ograničenje nad objektom Zaduzenje mora biti zadovoljeno.Postuslovi: Podaci o izostanku su zapamćeni.
namespace SistemskeOperacije.IzostanakSO{Public class ZapamtiNoviIzostanak:OpstaSO {publicoverrideobject Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) {return Sesija.Broker.dajSesiju().ubaci(odo); } }
}
Ugovor UG8: PretraziEvidencijuIzostanaka
Operacija: PretražiEvidencijuIzostanaka(KriterijumPretrage,List<Izostanak>):signal;
Veza sa SK: SK6
Preduslovi: -
Postuslovi: -
namespace SistemskeOperacije.IzostanakSO{Public cclas sPronadjiIzostanak:OpstaSO {Public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) {List<Biblioteka.Izostanak> lista =Sesija.Broker.dajSesiju().dajSveZaUslovDva(odo).OfType<Biblioteka.Izostanak>().ToList<Biblioteka.Izostanak>();
foreach (Biblioteka.Izostanak i in lista) { i.Ucenik = Sesija.Broker.dajSesiju().dajZaUslovJedan(i.Ucenik) as Biblioteka.Ucenik; i.Korisnik = Sesija.Broker.dajSesiju().dajZaUslovDva(i.Korisnik) as Biblioteka.Korisnik; }return lista; } }}
Ugovor UG9: KreirajNovPredmet
Operacija: KreirajNovPredmet(Predmet):signal;
Veza sa SK: SK7
Preduslovi: -
Postuslovi: Kreiran je nov predmet.
namespace SistemskeOperacije.PredmetSO
{Public class KreirajNoviPredmet:OpstaSO
{Public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) {return Sesija.Broker.dajSesiju().dajSifru(odo); } }}
Ugovor UG10: ZapamtiPredmet
Operacija: ZapamtiPredmet(Predmet);:signal;
Veza sa SK: SK7
Preduslovi: Prosto vrednosno ograničenje nad objektom Predmet mora biti zadovoljeno.
Strukturno ograničenje nad objektom Predmet mora biti zadovoljeno.
Postuslovi: Podaci o predmetu su zapamćeni.
namespace SistemskeOperacije.PredmetSO{ public class ZapamtiPredmet:OpstaSO { public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) {
return Sesija.Broker.dajSesiju().ubaci(odo); } }}
Ugovor UG11:KreirajNovUnosOcene
Operacija: KreirajNovUnosOcene(Unos):signal;
Veza sa SK: SK8
Preduslovi: -
Postuslovi: Kreirana je nova ocena.
namespace SistemskeOperacije.Ocena{ public class UnosOcene:OpstaSO { public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) { Biblioteka.Ucenik u = odo as Biblioteka.Ucenik;
foreach (Biblioteka.Ocena o in u.SpisakOcena)
{ o.OcenaID = Sesija.Broker.dajSesiju().dajSifru(o); Sesija.Broker.dajSesiju().ubaci(o); } return 1; } }}
Ugovor UG12: ZapamtiNoveUnošeneOcene
Operacija: ZapamtiNoveUnešeneOcene(Unos):signal;
Veza sa SK: SK8
Preduslovi: Prosto vrednosno ograničenje nad objektom Unos mora biti zadovoljeno.
Strukturno ograničenje nad objektom Unos mora biti zadovoljeno.
Postuslovi: Podaci o unosu su zapamćeni.
namespace SistemskeOperacije.Ocena{Public class UnosOcene:OpstaSO {Public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) { Biblioteka.Ucenik u = odo as Biblioteka.Ucenik;
foreach (Biblioteka.Ocena o in u.SpisakOcena) { o.OcenaID = Sesija.Broker.dajSesiju().dajSifru(o);Sesija.Broker.dajSesiju().ubaci(o); }return 1; } }}
Ugovor UG13: PretražiOcene
Operacija: PretražiOcene(KriterijumPretrage,List<Ocena>):signal;
Veza sa SK: SK9
Preduslovi: -
Postuslovi: -
namespace SistemskeOperacije.Ocena{
Public class PronadjiOcenu:OpstaSO {Public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) {return Sesija.Broker.dajSesiju().dajSveZaUslovDva(odo); } }}
Ugovor UG14: ZapamtiOcenu
Operacija: ZapamtiOcenu(Ocena):signal;
Veza sa SK: SK8, SK9
Preduslovi: Prosto vrednosno ograničenje nad objektom Ocena mora biti zadovoljeno.
Strukturno ograničenje nad objektom Ocena mora biti zadovoljeno.Postuslovi: Podaci o oceni su zapamćeni.
namespace SistemskeOperacije.Ocena{ public class UnosOcene:OpstaSO { public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) { Biblioteka.Ucenik u = odo as Biblioteka.Ucenik;
foreach (Biblioteka.Ocena o in u.SpisakOcena) { o.OcenaID = Sesija.Broker.dajSesiju().dajSifru(o); Sesija.Broker.dajSesiju().ubaci(o); } return 1; } }}
Ugovor UG15: PrijaviKorisnika
Operacija: PrijaviKorisnika(Korisnik):signal;
Veza sa SK: SK10
Preduslovi: -
Postuslovi: -
namespace SistemskeOperacije.KorisnikSO{Public class LoginSO:OpstaSO
{Public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) {return Sesija.Broker.dajSesiju().dajZaUslovJedan(odo); } }}
Ugovor UG16: VratiSvePredmete
Operacija:VratiSvePredmete(KriterijumPretrage,List<Predmet>):signal;
Veza sa SK: SK5,SK6,SK8,SK9
Preduslovi:-
Postuslovi:-Predmeti su nađeni.
namespace SistemskeOperacije.PredmetSO{Public class vratiPredmeteZaSmer:OpstaSO {Public override object Izvrsi(Biblioteka.OpstiDomenskiObjekat odo) {return Sesija.Broker.dajSesiju().dajSveZaUslovDva(odo); } }}
Klase koje su odgovorne za SO nasledjuju „OpstuSO“
Projektovanje strukture softverskog sistema
Na osnovu konceptualnih klasa kreiraju se softverske klase strukture sistema.
Svaka klasa ima privatna polja atributra, gettere i settere za te atribute, besparametaski konstruktor kao i parametarski konstruktori.
Primer klase (Predmet) dat je sledećim linijama koda:
namespace Biblioteka{ [Serializable]Public class Predmet:OpstiDomenskiObjekat {int predmetID;
public int PredmetID {get { return predmetID; }set { predmetID = value; } }string naziv;
public string Naziv {get { return naziv; }set { naziv = value; } }
bool matematicki;
public bool Matematicki {get { return matematicki; }set { matematicki = value; } }bool drustveni;
public bool Drustveni {get { return drustveni; }set { drustveni = value; } }bool opsti;
public bool Opsti {get { return opsti; }set { opsti = value; } }
string uslovDvaatr;
public string UslovDvaatr {get { return uslovDvaatr; }set { uslovDvaatr = value; } }
Public override string ToString() {return naziv; }
#region ODOPublic string tabela {get { return"Predmet"; } }
Public string kljuc {get { return"PredmetID"; } }
Public string uslovJedan {get { return"PredmetID=" + predmetID ; } }
Public string uslovDva {get { return uslovDvaatr; } }
Public string uslovTri {get { returnnull; } }
Public string azuriranje {get { returnnull; } }
Public string upisivanje {get { return"("+predmetID+",'"+naziv+"',"+matematicki+","+drustveni+","+opsti+")"; } }
Public OpstiDomenskiObjekat napuni(DataRow red) {Predmet p = new Predmet(); p.predmetID = Convert.ToInt32(red[0]); p.naziv = red[1].ToString(); p.matematicki = Convert.ToBoolean(red[2]); p.drustveni = Convert.ToBoolean(red[3]);
p.opsti = Convert.ToBoolean(red[4]);
return p; } #endregion }
}
3.2.4. Broker baze podataka
Klasa DatabaseBroker (Broker baze podataka) se projektuje kako bi se obezbedio perzistentni servis objektima domenskih klasa koji se čuvaju u bazi podataka. Tako klasa DatabaseBroker predstavlja perzistentni okvir koji posreduje u svim operacijama nad bazom podataka i realizuje sledeće metode:
1) public void otvoriKonekciju()2) public void zatvoriKonekciju()3) public void zapocniTransakciju()4) public void potvrdiTransakciju()5) public void ponistiTransakciju()6) public List<OpstiDomenskiObjekat>dajSve(OpstiDomenskiObjekat odo)7) public List<OpstiDomenskiObjekat>dajSveZaUslovDva(OpstiDomenskiObjekat odo)8) public List<OpstiDomenskiObjekat>dajSveZaUslovTri(OpstiDomenskiObjekat odo)9) public OpstiDomenskiObjekat dajZaUslovJedan(OpstiDomenskiObjekat odo)10) public OpstiDomenskiObjekat dajZaUslovDva(OpstiDomenskiObjekat odo)11) int ubaci (OpstiDomenskiObjekat odo)12) int obrisi (OpstiDomenskiObjekat odo)13) int azuriraj (OpstiDomenskiObjekat odo)14) int dajSifru (OpstiDomenskiObjekat odo)
Metode DatabaseBrokera 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. Takođe postoje i pojedinačne metode koje nisu mogle biti projektovane kao generičke..
Veze klase DBBroker sa klasom OpstiDomenski objekat
3.3. Projektovanje skladišta podataka
Na osnovu softverskih klasa strukture projektovane su tabele (skladišta podataka) relacionog sistema za upravljanje bazom podataka (MS Access).
Smer
SmerID NumberNazivSmera Text
Ucenik
JMBG TextIme Text
Prezime TextMail TextUlica NumberBroj TextGrad Number
Predmet
PredmetID NumberNaziv Text
Matematicki Yes/NoDrustveni Yes/No
Opsti Yes/No
Ocena
OcenaID NumberDatum Date/Time
Ocena NumberUcenikID Text
PredmetID NumberKorisnikID Number
Korisnik
KorisnikID NumberIme Text
Prezime TextKorisnickoIme TextKorisnickaSifra Text
Izostanak
IzostanakID NumberDatum Date/Time
UcenikID TextBrojIzostanaka Number
Opravdani Yes/NoKorisniID Number
4.Implemetacija
Softverski system je razvijen u programskom jeziku C#.Sistem je projektovan kao klijent-server.Kao sistem za upravljanjem bazom podataka korišćen je MS Access, dok je razvojno okruženje VisualStudio 2010.
Slika 5 Arhitektura softverskog sistema
5. Testiranje
Literatura
dr Siniša Vlajić, Projektovanje softvera (skripta), Beograd, 2011.