«« ( Date ) »» // «« ( Thread ) »» // ri4st - 2004

Prilog u vezi specifikacije

by Vladimir Blagojevic
ponedeljak, 19. april 2004 - 12:24.

U attachmentu je.

VB
S P E C I F I K A C I J A - P R I M E R 1 : B A N K A

NEFORMALNI ZAHTEVI
==================

Posmatrani sistem je banka ciji su komitenti (osobe) i mogu da raspolazu sa
dve vrste racuna: tekucim racunom i ziro racunom (najvise po jedan po osobi).

Korisnicima tekucih racuna se na zahtev i po odredjenim pravilima izdaju
cekovi, i od tog trenutka se oni evidentiraju kao nerealizovani. Korisnik
moze svaki takav cek ili realizovati ili ponistiti. Realizacija ceka se
izvodi ili unovcavanjem od strane korisnika na salteru banke ili placanjem
cekom izvan banke (nekoj firmi za robu ili usluge). Kod placanja cekom firma
koja ga je primila vrsi njegovo unovcavanje kod svoje poslovne banke, a ona
ih zatim dostavlja banci na naplatu. Ponistavanje ceka se vrsi na salteru
banke njegovim vracanjem. Pored prometa na osnovu cekova, korisnik moze
neposredno vrsiti gotovinsku uplatu i isplatu sa svog tekuceg racuna putem
naloga koga popunjava. Svakom korisniku moze po odredjenim pravilima biti
odobreno pravo dozvoljenog minusa na tekucem racunu do odredjenog iznosa.
Ukoliko nastupi prekoracenje dozvoljenog minusa (po osnovu realizovanog ceka)
racun korisnika se blokira u odnisu na mogucnost isplate sve dok saldo ne
dostigne iznos nula ili vise.

Korisnici ziro racuna uplate i isplate vrse iskljucivo popunjavanjem naloga.
Uplate su moguce i "sa strane", od strane neke poslovne banke a u ime neke
firme. Minus na ziro racunu nije dozvoljen.

Korisnicima se za svaki racun jednom mesecno dostavlja izvod sa podacima o
prethodnom stanju, mesecnom prometu (po stavkama i ukupno) i novom stanju.
Podaci o stanju za tekuce racune ukljucuju i broj nerealizovanih cekova. Uz
to, korisnici mogu uvek da na salteru traze upit o stanju i da dobiju
odgovarajuce podatke.

Korisnicima se jednom godisnje vrsi obracun kamate, pri cemu su stope za
tekuce i ziro racune razlicite, a uz to su razlicite i za pozitivni i
negativni saldo.

Korisnici mogu da ugase svoj racun, pod uslovom da im se prethodno obracuna
kamata. Tom prilikom vrsi se isplata preostalog salda. Gasenje nije moguce
ako je saldo nakon obracuna kamate negativan niti ako korisnik ima nerealizovane
cekove. Podaci o ugasenom racunu ostaju trajno sacuvani.

FORMALIZACIJA ZAHTEVA I SPECIFIKACIJA
=====================================

Opisani sistem spada u kategoriju sistema sa izrazitom perzistencijom, odnosno
u kategoriju informacionih sistema

Prvi korak koji treba sprovesti ukljucuje paralelno:
- Uocavanje objekata (klasa) i njihovih osnosa (model podataka);
- Uocavanje hijerarhije funkcionalnosti (model funkcionalnosti).

Uocavanje objekata
------------------

Kandidati za objekte su sve imenice i imenicne fraze iz opisa sistema koje
predstavljaju mnostva (skupove instanci).

Prvo treba uociti maticne objekte - one ciji su nastavak i egzistencija
nezavisni ili relativno nezavisni i koji tokom fubkcionisanja sistema stupaju
u (i istupaju) u razne odnose (prvenstveno veze i zavisnosti). Dobija se:

KOMITENT : korisnik racuna iz opisa,
POSLOVNA_BANKA : poslovna banka iz opisa,
VRSTA_RACUNA : vrsta racuna iz opisa,
RACUN : pojedinacni racun odredjene vrste za odredjenog komitenta.

Ovde su prva tri objekta nezavisna a poslednji je relativno nezavisan - posto
je on centralni za razne odnose u sistemu uvrscen je medju maticne.

Kao sledece uocavaju se odnosi izmedju maticnih objekata. U pitanju su odnos
zavisnosti i odnos specijalizacije:

KOMITENT, VRSTA_RACUNA -> RACUN : racun zavisi od vrste i komitenta,
RACUN = TEKUCI_RACUN | ZIRO_RACUN : racun je ili tekuci ili ziro.

Dalje se ide na uocavanje ostalih objekata. U pitanju su samo jos dva:

STAVKA : pojedinacna promena (dogadjaj) u vezi odredjenog racuna,
CEK : cek izdat za odredjeni tekuci racun.

Nakon toga uocavaju se odnosi unutar ovih objekata i izmedju maticnih i njih:

RACUN -> STAVKA : zavisnost od racuna,
STAVKA <> CEK : odnosi se na neki cek,
STAVKA <> POSLOVNA_BANKA : odnosi se na neku poslovnu banku,
STAVKA = STAVKA_STATUS | STAVKA_PROMET : otvaranje/gasenje ili uplata/isplata.

Uocavanje hijerarhije funkcionalnosti
-------------------------------------

Uocavane se vrsi postupno, u koracima razrade:

BANKA (funkcija najviseg nivoa - posmatrani sistem)
Odrzavanje maticnih podataka
Obrada prometnih podataka
Izvestavanje

BANKA
Odrzavanje maticnih podataka
Odrzavanje podataka o komitentu
Odrzavanje podataka o poslovnoj banci
Odrzavanje podataka o vrsti racuna
Odrzavanje podataka o racunu
Obrada prometnih podataka
Obrada uplate
Obrada isplate
Obrada izdavanja ceka
Obrada ponistavanja ceka
Obrada kamate
Izvestavanje
Obrada upita stanja
Obrada mesecnog izvoda

...

Radi konciznosti, u grani odrzavanja maticnih podataka o racunima razradjena
je samo ona slozenija, koja se odnosi na maticne podatke o racunima:

BANKA
Odrzavanje maticnih podataka
Odrzavanje podataka o komitentu
...
Odrzavanje podataka o poslovnoj banci
...
Odrzavanje podataka o vrsti racuna
...
Odrzavanje maticnih podataka o racunu
Odrzavanje podataka o tekucem racunima
Otvaranje tekuceg racuna
Provera mogucnosti otvaranja
Otvaranje racuna
Unos dozvoljenog minusa
Gasenje tekuceg racuna
Obracun kamate
Provera mogucnosti gasenja
Isplata
Gasenje racuna
Odrzavanje podataka o ziro racuu
Otvaranje ziro racuna
Provera mogucnosti otvaranja
Otvaranje racuna
Gasenje ziro racuna
Obracun kamate
Provera mogucnosti gasenja
Isplata
Gasenje racuna
Obrada prometnih podataka
Obrada uplate
Uplata na tekuci racun
Uplata poslovne banke
Uplata komitenta
Uplata na ziro racun
Uplata poslovne banke
Uplata komitenta
Obrada isplate
Isplata sa tekuceg racuna
Isplata komitentu
Provera mogucnosti isplate
Isplata
Isplata poslovnoj banci
Isplata
Isplata sa ziro racuna
Isplata komitentu
Provera mogucnosti isplate
Isplata
Obrada izdavanja ceka
Obrada ponistavanja ceka
Obrada kamate
Izvestavanje
Obrada upita stanja
Obrada mesecnog izvoda

Prethodno je u stvari funkcionalna dekompozicija prve vrste. Treba naglasiti
da je puni naziv svake funkcije njena cela "putanja" od vrha pa na dodfe. To
je neophodno posto se unutar razlicitih nadfunkcija pojavljuju isti nazivi
podfunkcija.

Nesto detaljniji vid specifikacije je specifikacija zasnovana na formi. Njena
struktura u opstem slucaju je sledeca:

<Funkcija>
Puni naziv funkcije
<Opis>
Opis funkcije govornim jezikom
<Ulaz>
Svi ulazni podaci potrebni za izvodjenje funkcije
<Izvoriste>
Izvoriste za svaki ulazni podataka
<Izlaz>
Svi izlazni podaci koji nastaju izvodjenjem funkcije
<Odrediste>
Odrediste za svaki izlazni podatak
<Zahtev>
Opsti zahtev za izvodjenje funkcije
<Pre-uslov>
Uslov koji mora biti zadovoljen pre izvodjenje funkcije
<Post-uslov>
Uslov koji mora biti zadovoljen posle izvodjenja funkcije
<Bocni efekti>
Eventualni bocni efekti izvodjenja funkcije

Primera radi, forma specifikacija za navedenu funkciju za banku glasi:

<Funkcija>
Odrzavanje maticnih podataka o racunu>
Odrzavanje podataka o ziro racunu>
Gasenje ziro racuna
<Opis>
Vrsi gasenje jednog ziro racuna. Na osnovu kartice komitenta radnik banke
unosi broj ziro racuna. Zatim se proverava ispravnost broja. Ako je broj
ispravan, izracunava se iznos kamate od pocetka godine do datuma gasenja.
Ako ta kamata i saldo racuna daju novi saldo koji je negativan, gasenje
nije moguce. U suprotnom, na racunu se evidentira iznos kamate i ako je
preostao neki saldo vrsi se njegova isplata. Racun se oznaci kao ugasen.
<Ulaz>
Broj ziro racuna, tekuci datum, stanje ziro racuna (saldo).
<Izvoriste>
Broj ziro racuna: Tastatura terminala
Tekuci datum: Operativni sistem
Stanje ziro racuna: RACUN
<Izlaz>
Poruka o ishodu, iznos za isplatu, stavka prometa, stanje ziro racuna.
<Odrediste>
Poruka o ishodu: Monitor terminala
Iznos za isplatu: Stampana potvrda
Stavka prometa: STAVKA, STAVKA_PROMET, STAVKA_STATUS
Stanje ziro racuna: RACUN
<Pre-uslov>
Mora biti izbrana odgovarajuca opcija
<Post-uslov>
U slucaju da nema uslova za gasenje nema promene u perzistentnim podacima.
U slucaju uspesnog gasenja saldo racuna je nula, racun je oznacen kao
ugasen i evidenrirane su stavka isplate (eventualno) i stavka gasenja.