Professional Documents
Culture Documents
Veljovi
PRAKTIKUM
iz Projektovanja informacionih sistema
Beograd, 2005.
alempije@beotel.rs 1
alempije@beotel.rs
Budi ljubazan prema ljudima dok se penje, jer e ih sresti kad bude silazio Vil Durant
alempije@beotel.rs
Predgovor
Praktikum je dodatna literatura za predmet Projektovanje informacionih sistema(PIS) i predstavlja dodatno objanjenje za udbenik Objektno modeliranje informacionih sistema (1). Ovaj praktikim nastao je kao rezultat rada sa studentima. Naime, pokazalo se da studenti neshvataju da je seminarski rad elaborat koji ima odgovarajua poglavlja i da predstavlja prvi korak koji oni ine u pravcu izrade projekata vezanih za PIS. Autorova elja je da se shvati da to to se "isprogramira" mora sadrati tano definisana poglavlja. Kako je cilj da se dobije korisnika aplikacija to se izlazi iz okvira ovog praktikuma i definie se fiziki model baze podataka i pogled na korisniku aplikaciju koji su dati u praktikumu za analizu informacioih sistema(2). Na ovaj nain se studenti izlaze iz sveta programera i uvode u profesionalni svet projektanata informacionog sistema. U uvodnom izlaganju definiu se osnovni principi UML korienjem RatinalRous CASE alata. U sledeem poglavlju definiu se UML dijagrami kroz korienje CASE alata RationalRous. Prikazani primeri su rezultat izrade projekata za pojedina preduzea (pogledaj literaturu), diplomskih radova i kolskih primera korienih u nastavi. Primeri su namerno pojednostavljivani i predstavljeni kao informatika ostrva da bi studenti shvatili sutinu. Prvi primer odnosi se na poslove fakturisanja kroz primer EDIFACT fakture. U ovom primeru su prikazani minimalni zahtevi za seminarski rad iz predmeta Projektovanje infromacionih sistema. Drugi primer se odnosi na poslove praenja ispita. Opisuje se proces prijavljuja ispit korienjem UML dijagrama, na osnovu kojih se izadjuje plan polaganja ispita i na kraju prati realizacija plana ispita i obradjuju spiskovi za ispit. Trei primer odnosi se na poslove izrade tehnolokog procesa korienjem UML dijagrama i to za procese odravanje tehnolokih lokacija, izrada tehnolokog postupka, definisanje parametara i izrada tehnolokih izvetaja i pregleda. etvrti primer se odnosi na poslove cirkulacije u biblioteci korienjem UML dijagrama. Ona ukljuuje voenje evidencije o lanovima cirkulacije u biblioteci, zaduivanje i razduivanje lanova sa naslovima, opominjanje korisnika i rezervisanje. Svi ovi primeri mogu da budu uzor za izradu sopstvenih korisnikih aplikacija. Kako je ovo prvo izdanje ovakvog praktikuma to autor oekuje od buduih korisnika korisne sugestije i obeava da e drugo izdanje sadrat i neke druge primere.
alempije@beotel.rs
Autor
alempije@beotel.rs
Sadraj
1. Uvod............................................................................................9 2. Vizuelno modeliranje..................................................................11 3. Poslovi fakturisanja...................................................17 4. Poslova praenja ispita...............................................................26. 5. Poslovi izrade tehnolokog postupka..........................................43 6. Poslovi cirkulacije u biblioteci......................................................54
alempije@beotel.rs
alempije@beotel.rs
1. Uvod
U ovom praktikumu prikazan je na konkretnim primerima UML kao metod za opisivanje detalja arhitekture sistema korienjem CASE alata Rational Ruse. CASE alat Rational Rose je jedan od alata koji podrava razvoj aplikacija koristei UML. On omoguava kreiranje dijagrama sluajeva upotrebe, aktivnosti, sekvenci, saradnje, stanja, komponenti i razmetaja. Pomou inenjeringa i reinenjeringa CASE alat Rational Rose omoguava generisanje programskog koda u programskim jezicima C++, Java, Visual Basic i XML DTD. Takoe, postoje dodaci za ostale objektno-orjentisane programske jezike. Alat Rational Rose poseduje dodatne funkcionalnosti, kao to je razvoj Web aplikacija. Neke od novina koje donosi alat Rational Rose su: Modeliranje procesa, Dijagrami aktivnosti, Web modeliranje, Podrka za programski jezik Java i J2EE, Podrka za EJB, Podrka za XML DTD, Modeliranje podataka, Podrka za programski jezik ANSI C++, Podrka za SQL Server 2000 i Podrka za Sun Java Server Pages i Microsoft Active Server Pages. Izdvojio bih na samom poetku svoje miljenje o modeliranju procesa jer smatram da za modeliranje procesa mnogo bolje koristiti semantiki bogatiji standard IDEF0 prikazan u (2) i realizovan kroz CASE alat Bpwin.. Rational Rous ranijih verzija nije ima modelar podataka to je predstavljao veliki nedostatak a smatram da trenutni modelar moe da posluI samo kao prelazno reenje za korienje profesinalnijih modeara podataka kao to je Erwin koji realizovan korienjem standarda IDEF1X i prikazan je u (2). Ovaj praktikum je namenjena programerima, arhitektama softvera i analitiarima a pogotovo onima koji nemaju mnogo iskustva sa UML-om i nisu ukljueni svi aspekti UML-a.
alempije@beotel.rs
2. Vizuelno modelovanje
Modeli u svetu softvera su planovi za sistem. Planovi pomau da se isplanira izgradnja pre nego to se stvarno krene na izradu aplikacija.Rezlutat procesa modelovanja je mogunost da se prate poslovni zahtevi. Vizuelno modelovanje je proces uzimanja informacija sa modela i njihovo grafiko prikazivanje korienjem niza standardnih grafikih elemenata. Standardi su neophodni kako bi se izvukla bitna korist od modelovanja: komunikacija. Komunikacija izmeu korisnika, programera, analitiara, menadera i svih onih koji su ukljueni u projekat, je osnovna svrha vizuelnog modelovanja. Komunikaciju moete ostvariti korienjem nevizuelnih (tekstualnih) informacija, ali ipak ljudi mogu vizuelno mnogo lake prihvatati i uoavati stvari. Jedno od vanih pitanja u vizuelnom modelovanju je grafika notacija i koristi se za opis razliitih aspekata sistema. Ta notacija mora da bude poznata svim zainteresovanim grupama, u suprotnom model nee biti koristan. Do sada su mnogi predlagali koju notaciju koristiti za vizuelno modelovanje. Neke od popularnih notacija, koje imaju jaku podrku, su Buova notacija, OMT (eng. Object Modeling Technology) i UML. Rational Rose podrava ove tri notacije, meutim, UML je standard koji je usvojen od veine korisnika i grupa za standardizaciju kao to su ANSI i OMG (eng. Object Managment Group). UML notacija je posledica saradnje Grady Booch-a, dr James Rumbaugh-a, Ivar Jacobson-a, Rebecca Wirfs-Brock, Peter Yourdon-a i mnogih drugih. Na poetku treba definisati granice do kojih e se ii u modelovanju poslovnih procesa. Da li se modeluje itava organizacija ili samo jedno odeljenje? Koji tokovi poslovnih procesa su bitni za projekat ?. Granice sistema kao i tokove poslovnih procesa definisali smo korenjem IDEF0 standarda realizovanim u BPwin CASE alatu u (2). Kad se definie obim projekta, veoma je vano okupiti pravi tim. Potrebni su pojedinci koji poznaju poslovne procese, kao i pojedinci koji poznaju modelovanje poslovnih procesa. Uopteno, lanovi tima ne moraju da budu informatiari, ak je bolje da ne budu. Informatiari vrlo brzo kreu ka reenju, dizajnu sistema, ne analizirajui dovoljno poslovne procese. Obavezni lanovi tima su: Voa tima - On treba da poseduje dovoljno znanja i o poslovnim procesima i o modelovanju poslovnih procesa. On ili ona e biti zaduen za koordinaciju napora lanova tima i za odravanje pravca rada.
alempije@beotel.rs
Predstavnik(ci) poslovnih procesa-Oni su predstavnici razliitih delova organizacije koje modelujemo. Oni treba da su dosta upoznati sa tokovima poslovnih procesa, ukljuujui i probleme koji se u njima javljaju i dobit od tih tokova poslovnih procesa. Predstavnik(ci) menadmenta kompanije-Neko ko ima autoritet da odlui koji e delovi ili poslovni procesi biti modelovani. Oni mogu da pomognu timu da razume tokove poslovnih procesa iz perspektive menadmenta. Opisom poslovnih procesa korienjem BPwina dobjamo semantiki bogat model koji predstavlja dobru osnovu za korienje UML dijagrama. Model u Rose-u je slika sistema iz razliitih perspektiva. Takav model ukljuuje sve UML dijagrame, aktere, sluajeve upotrebe, objekte, klase, komponente i vorove razmetaja elemenata sistema.Ovakav model opisuje ta e sistem sadrati i kako e raditi, tako da inenjeri koji razvijaju sistem mogu taj model koristiti kao skicu za izradu sistema. Crte je dobra analogija za Rose model. Kao to za izgradnju kue postoje crte koji omoguavaju da vie lanova tima, koji gradi kuu, imaju poglede iz razliite perspektive na te nacrte (vodoinstalateri, elektriari itd.), tako se modelom u Rose-u omoguava, razliitim dijagramima, da lanovi tima koji sistem projektuju imaju pogled iz razliitih perspektiva (korisnik, dizajneri, menaderi projekta, inenjeri koji vre testiranje itd.). Rational Rose podrava osam razliitih tipova UML dijagrama: dijagrame sluajeva upotrebe, dijagrame aktivnosti, dijagrame sekvenci, dijagrame saradnje, dijagrame klasa, dijagrame stanja, dijagrame komponenti i dijagrame razmetaja. UML dijagrami prikazuju sistem iz vie uglova i za taj zadatak se koriste: dijagram sluajeva upotrebe (Use-Case Diagram) je grafika ilustracija funkcionalnosti sistema (statiki pristup) koja prikazuje uesnike (Actor) i njihove veze sa sluajevima upotrebe (use cases) tj. to je korisniki pogled funkcionisanja sistema (ta sistem radi a ne kako sistem funkcionie ). Sluajevi upotrebe i uesnici su specijalne vrste klasa i njihovih relacija; dijagram klasa (Class Diagram) prikazuje skup klasa, interfejsa i saradnja i njihovih relacija. Dijagram klasa je statiki struktura klasa u sistemu koje izmedju sebe uspostavljaju relacija tipa asocijacija (veza sa svakom drugom), zavisnosti (jedna klasa zavisi/koristi se od druge klase), specijalizacije (jedna klasa je specijalizacija druge klase, i paketa (grupisanje u jednu jedinicu tj. paketi); dijagram sekvenci (Sequence Diagram) opisuje vreme trajanja poruke i nain su na koji objekti u sistemu medjusobno komuniciraju, ostvarujui oekivano ponaanje. Dakle, prikazuje se vremenska komponenta i poruke koje se prosledjuju izmedju objekata u cilju izvrenja posmatrane operacije. Objekti su imenovane ili neimenovane instance klasa, ali mogu da budu i instance drugih stvari kao to su saradnja, komponente ili vorovi. Dijagram sekvenci je grafika ilustracija dinamike interakcije gde objekti komuniciraju preko sekvenci poruka tj. prikazuje dinamiku saradnju izmedju objekata u vremenu. Dijagram sekvenci se moe prevesti u kolaboracioi i obrnuto; dijagram saradnje (Collaboration Diagram) definie komunikaciju, pa i veze izmedju 10
alempije@beotel.rs
objekata neophodne za ostvarivanje posmatrane komunikacije. Dijagram saradnje pored objekata i veza prikazuje i poruke koje objekti medjusobno prosledjuju, ostvarujui na taj nain oekivano ponaanje. Dijagram saradnje opisuje strukturnu organizaciju objekata koji alju i prikazuju poruke. dijagram promene stanja (State Diagram) je konani automat koji sadri stanje, prelaze, dogadjaje, i aktivnosti. Dijagram promene stanja je dinamiki dijagram koji prikazuje sekvencu stanja kroz koje objekat prolazi tokom vremena (tokom ivotnog veka), a kao reakcija na spoljne ili unitranje pobude (vezan za samo jedan objekat i odredjenu operaciju unutar njega za odredjenu klasu); Opis stanja obuhvata aktivnosti koje se izvravaju u pojedinim stanjima, akcije koje se izvravaju pri prelasku iz jednog stanja u drugo, kao i poruke koje uslovljavaju promenu stanja posmatranog objekta. Kreiranjem dijagrama promene stanja prikazuju se reakcije sistema izazvane dogadjajima. Dijagram promene stanja se moe prevesti u dijagram aktivnosti koji se fokusira na tok kontroje (i obrnuto). dijagram aktivnosti (Activity Diagram) prikazuje sekvencijalan tok aktivnosti, a sastoji se od: stanja, akcija i prelaza i slui za prikaz dinamikog odvijanja poslovnih proces; Dijagram aktivnosti opisuje aktivnosti koje se izvravaju u okviru jedne operacije tj. predstavljaju sam algoritam operacija. Dijagram aktivnosti je specijalna vrsta dijagrama promene stanja kojim se prikazuje tok od aktivnosti do aktivnosti kroz sistem. dijagram komponenti (Component Diagram) prikazuje fiziku strukturu korisnikog softvera (izvorni kod, binarni i exe kod). Dijagram komponenti prikazuje organizaciju i zavisnost izmedju skupa komponenti. Dijagram komponenti je povezan sa dijagramom klasa zbog toga to svaka komponenta ukazuje na jednu ili vie klasa, interfejsa ili saradnja; dijagram razvoja (Deployment Diagram) prikazuje konfiguraciju vremena procesiranja i komponente u njemu. vor dijagrama razvoja obuhvata jednu ili vie komponenti. Dijagram razvoja se koristi za prikaz statikog pogleda na arhitekturu tj. na fiziku strukturu hardvera i softvera.
alempije@beotel.rs
11
kakav problem tokom reverznog inenjeringa, upisae taj problem u prozor Log. Rose e takoe kreirati novu komponentu u Componenet view. Komponenta e reprezentovati bazu podataka. Kada to radite, Rational Rose e kreirati komponente baze podataka u Component view i tabele i druge elemente baze podataka u emi u Logical view. Kada jednom izvrite reverzni inenjering baze podataka, moete generisati objektni model ili izvriti sinhronizaciju koristei metode koje su ranije objanjene.
Kreiranje objektnog modela iz modela podataka vri se na sledei nain: 1. Desni-klik na emu i izaberite Data Modeler > Transorfm to Object Model. 2. Unesite ciljno ime paketa. Ciljni paket je ime paketa koji e da bude kreiran u Logical view kako bi sauvao nove objekte.
12
alempije@beotel.rs
3. Unesite prefiks. Prefiks e da bude dodat na imena svih tabela od kojih nastaju klase u objektnom modelu. 4. Izaberite Include Primary Key polje potvrde da bi kreirali atribute za kolone primarnih kljueva kao i za druge kolone. Ako nije selektovano, Rose e generisati atribute samo za kolone koje nisu primarni kljuevi.
Kreiranje modela podataka iz objektnog modela vri se na sledei nain: 1. Kreirate bazu podataka u Component view. 2. Desni-klik na bilo koji atribut u klasama za koji elite da postane primarni klju u generisanoj tabeli. Izaberite Data Modeler Part of Object Identity. Ako ne izaberete primarne kljueve Rational Rose e kreirati primarni klju kao kolonu sa imenom "<table name>ID>". 3. Desni-klik na paket u Logical view i izaberite Data Modeler > Transform to Data Model. 4. Unesite ciljno ime eme koje predstavlja ime eme koja e biti kreirana da bi sadrala nove elemente podataka. 5. Unesite ciljnu bazu podataka koja predstavlja naziv postojee baze podataka u Component pogledu. 6. Unesite prefiks koji e da se doda svakoj klasi koja kreira neku tabelu u bazi podataka. 7. Izaberite Create Indexes for Foreign Keys polje potvrde da se automatski kreiraju indeksi za
alempije@beotel.rs
13
preneene kljueve.
14
alempije@beotel.rs
3. Poslovi fakturisanja
Uvod
Na primeru procesa fakturisanja, prikazae se faze objektnog modeliranja informacionog sistema definisanog u (1). Ovaj primer predstavlja svojevrsan vodi kroz definisanje osnovnih elemenata projekta razvoja informacionog sistema korienjem objektno orijentisanih CASE alata (Rational Rous). Osnove vezane za poslove fakturisanja date su u (2). Ovo je primer sa minimalnim zahtevima za izradu seminarskog rada za predmet Projektovanje informacionih sistema Potrebno je uraditi sledee: Izrada dijagrama sluajeva upotrebe Izrada dijagrama aktivnosti Izrada konceptualnog modela Izrada dijagrama sekvenci Izrada potpunih dijagrama klasa Izrada eme baze podataka
alempije@beotel.rs
15
Referent prodaje
<<extend>>
<<include>>
Partner Radnik
Analiticar prodaje
<<include>>
Predmet poslovanja
16
alempije@beotel.rs
Uesnici: Referent prodaje Uslovi koji moraju biti zadovoljeni pre izvravanja: Moraju biti azurni sifarnici. Opis: Referent prodaje evidentira faktire koje se fakturisu, proveri tanost podataka i tampa potrebnu fakturu . Izuzeci: (tampa ne tampa fakturu) proveriti da li u tampau ima papira; Uslovi koji Uslovi koji moraju biti zadovoljeni posle izvravanja: Poslata informacija analitiaru prodaje.
alempije@beotel.rs
17
Referent prodaje
Referent oznacavanja
Analiticar prodaje
Evidencija partnera Evidentiranje fakture Evidencija i oznacavanje predmeta poslovanja Evidencija nacina placanja Evidencija placanja
18
alempije@beotel.rs
Slika 3.3. Konceptualni model za proces fakturisanja Iidentifikovani su sledei koncepti u konkretnom problemu realnog sistema: Sifarnici (Partner, Radnik, JednicaMere, NacinPlacanja i PredmetPoslovanja), Faktura, StavkaPlacanja i FakturaPredmetPoslovanja.
alempije@beotel.rs
19
: Referent prodaje
: Faktura
: Radnik
: Partner
: FakturaPredmetPoslovanja
: PredmetPoslovanja
Unesi(FakturaID, BrojFakture, DatumFakture, OsnovFakturisanja) Izaberi(RadnikID) Izaberi(PartnerID) Unesi(FakturaID) Izaberi(PredmetPoslovanjaID) Unesi(Kolicina, JedinicnaCena) Izracunaj(Vrednost)
Slika 3.4. Dijagram sekvenci za proces izrada fakture Na sledeoj slici prikazan je dijagram sekvenci za proces analiza fakturisanja.
: NacinPlacanja
: StavkaPlacanja
: Radnik
Izaberi(NacinPlacanjaID)
20
alempije@beotel.rs
1..1
0..*
1..1
0..*
0..* 1..* FakturaPredmetPoslovanja Kolicina JedinicnaCena 1..* 1..1 Unesi(FakturaID) Unesi(Kolicina, JedinicnaCena) Izracunaj(Vrednost) 0..1 NacinPlacanja NazivNacinaPlacanja Izaberi(NacinPlacanjaID)
PredmetPoslovanja NazivPredmetaPoslovanja StaraSifra KlasifikacioniBroj Izaberi(PredmetPoslovanjaID) 0..* 0..1 JednicaMere Oznaka NazivJedinceMere
0..1
alempije@beotel.rs
21
Partner PartnerID: Long Integer PIB: Text(50) NazivPartnera: Text(50) TekuciRacun: Text(50) Adresa: Text(50) Mesto: Text(50) Telefon: Text(50) ReferentOznacavanja: Long Integer
Faktura FakturaID: Long Integer BrojFakture: Text(50) DatumFakture: Date/Time OsnovFakturisanja: Text(50) PartnerID: Long Integer ReferentProdaje: Long Integer
StavkePlacanja FakturaID: Long Integer RedniBroj: Long Integer NacinPlacanjaID: Long Integer Iznos: Currency Datum: Date/Time BrojIzvoda: Text(50) AnaliticarProdaje: Long Integer
PredmetPoslovanja Kolicina: Double PredmetPoslovanjaID: Long Integer JedinicnaCena: Currency NazivPredmetaPoslovanja: Text(50) KlasifikacioniBroj: Text(20) StaraSifra: Text(50) JedinicaMereID: Long Integer ReferentOznacavanja: Long Integer
Radnik RadnikID: Long Integer JedinicaMere JedinicaMereID: Long Integer Oznaka: Text(20) NazivJediniceMere: Text(50) ReferentOznacavanja: Long Integer Sifrao: Text(50) Prezime: Text(50) Ime: Text(50) JMBG: Text(13)
Partner PartnerID : IdentBroj PIB : Naziv NazivPartnera : Naziv TekuciRacun : Naziv Adresa : Naziv Mesto : Naziv Telefon : Naziv ReferentOznacavanja : IdentBroj 0..*
<<Non-Identifying>>
Faktura FakturaID : IdentBroj BrojFakture : Naziv DatumFakture : Datum OsnovFakturisanja : Naziv PartnerID : IdentBroj ReferentProdaje : IdentBroj 1 0..* <<Identifying>>
<<Identifying>>
StavkePlacanja FakturaID : IdentBroj RedniBroj : RedniBroj NacinPlacanjaID : IdentBroj Iznos : Iznos Datum : Datum BrojIzvoda : Naziv AnaliticarProdaje : IdentBroj 0..* 0..*
0..*
0..*
<<Non-Identifying>> <<Non-Identifying>> 0..* <<Non-Identifying>> PredmetPoslovanja PredmetPoslovanjaID : IdentBroj NazivPredmetaPoslovanja : Naziv KlasifikacioniBroj : Oznaka StaraSifra : Naziv JedinicaMereID : IdentBroj ReferentOznacavanja : IdentBroj 0..* <<Identifying>> 1 0..* FakturaPredmetPoslovanja FakturaID : IdentBroj PredmetPoslovanjaID : IdentBroj Kolicina : Kolicina JedinicnaCena : Iznos <<Non-Identifying>>
0..* <<Non-Identifying>> 1
<<Non-Identifying>> 1 1 1 <<Non-Identifying>> 1 Radnik RadnikID : IdentBroj Sifrao : CHAR(18) Prezime : Naziv Ime : Naziv JMBG : JMBG <<PK>> PK_Radnik7() <<FK>> FK_Radnik9() 1 <<Non-Identifying>> NacinPlacanja 1 0..* NacinPlacanjaID : IdentBroj NazivNacinaPlacanja : Naziv ReferentOznacavanja : IdentBroj
JedinicaMere JedinicaMereID : IdentBroj Oznaka : Oznaka NazivJediniceMere : Naziv ReferentOznacavanja : IdentBroj 0..* 1
22
alempije@beotel.rs
Zakljuak
Na osnovu definisanih dijagrama pristupa se izradi dva sledea koraka. U prvom koraku prelazi se na definisanje server strane generisanjem baze podataka kao to je pokazano za ovaj primer u(2). Drugi korak podrazumeva izradu klijent strane u zavisnosti od potreba korisnika ili Web programiranjem ili korienjem Visual Basica ili na kraju i MS Access-om.
Literatura
1 Veljovi A. Objektno modeliranje informacionih sistema, Fakultet za poslovne studije, MEGATREND Univerzitet, 2003. godina 2. Veljovi A. Praktikum iz analize informacionih sistema, Fakultet za poslovne studije, MEGATREND Univerzitet, 2005. godina
alempije@beotel.rs
23
Uvod
Na primeru procesa praenja ispita, prikazae se faze objektnog modeliranja informacionog sistema definisanog u (1). Ovaj primer predstavlja svojevrsan vodi kroz definisanje osnovnih elemenata projekta razvoja informacionog sistema korienjem objektno orijentisanih CASE alata (RationalRous). Osnove vezane za poslove praenja ispita date su u (2). Ovo je primer sa minimalnim zahtevima za izradu seminarskog rada za predmet Projektovanje informacionih sistema i orjentisan sluajevima upotrebe (use case driven). Potrebno je uraditi za svaki sluaj upotrebe u okviru dijagrama sluajeva upotrebe: Dijagram aktivnosti Konceptualni model Dijagram sekvenci Dijagram klasa emu baze podataka
24
alempije@beotel.rs
Polaganje ispita
Analiza ispita
<<include>>
Prodekan za nastavu
25
Opis: Student prilikom prijavljivanja ispita overava semestar, popunjavanje prijave za ispit i uplauje ispit. Referent izradjuje izvestaj o prijavljenim ispitima. Izuzeci: (tampa ne tampa fakturu) proveriti da li u tampau ima papira; Uslovi koji moraju biti zadovoljeni posle izvravanja: Poslata informacija studentskoj slubi u obliku spisak prijavljeni studenta po ispitima.
Studenti
Referent
Pocetak
Overa semestra [ ne ] [ da ] Popunjavanje prijave za ispit [ ne ] Prijava ubacena [ da ] Uplata ispita Izrada izvestaja o prijavljenim ispitima
odvijanja poslova Prijavljivanja ispita za sluaj upotrebe Prijavljivanje ispita. Na sledeoj slici prikazan je dijagram sekvenci za proces Prijavljivanje ispita
: Prodekan za nastavu
: Fakultet
: Smer
: Rok
: PlanIspita
: Predmet
: Predavac
Izaberi(PredavacID)
Definisi(DatumPolaganja, MestoPolaga...
alempije@beotel.rs
27
Smer
(from Logical View)
Student
(from Logical View)
Naziv
1..1 Izaberi(SmerID)
1..1
0..*
0..*
0..*
Izaberi(PredmetID) Unesi(StudentID) Izaber(ValutaID) Izaberi(ModelPlacanjaID) Unesi(KojiPutPolaza, DatumPrijave, Iznos) 1..1 0..* 0..*
Fakultet
(from Logical View)
ModelPlacanja
(from Logical View)
BrModela
NazivValute
alempije@beotel.rs
elemanata odredjuju se termini ispita. Izuzeci: Nema. Uslovi koji moraju biti zadovoljeni posle izvravanja: Uredna i tana evidencija zapisa.
[ ne ]
Slika 4.5. Dijagram aktivnosti za sluaj upotrebe Izrada plana polaganja ispita
alempije@beotel.rs
29
da bi obavio svoju funkciju. Vremenskim redosledom poruka u sekvencijalnom dijagramu opisae logiku odvijanja poslova Izrada plana polaganja ispita za sluaj upotrebe Izrada plana polaganja ispita. Na sledeoj slici prikazan je dijagram sekvenci za proces Izrada plana polaganja ispita
: Prodekan za nastavu
: Fakultet
: Smer
: Rok
: PlanIspita
: Predmet
: Predavac
Izaberi(PredavacID)
Definisi(DatumPolaganja, MestoPolaga...
Slika 4.6. Dijagram sekvenci za sluaj upotrebe Izrada plana polaganja ispita
30
alempije@beotel.rs
Smer
Rok
0..1
0..*
0..* Predmet
(from Logical View)
PlanIspita
1..1 Fakultet
DatumPolaganja MestoPolaganja 1..1 0..* Otvori(RokID, rbr) Izaberi(PredavacID) Izaberi(PredmetID) Definisi(DatumPolaganja, MestoPolaganja) 0..* 0..1
(from Logical View)
Predavac
1..1
Slika 4.7. Dijagram klasa za sluaj upotrebe Izrada plana polaganja ispita
alempije@beotel.rs
31
Plivake staze ili procesori su Nastavnik, student. Stanja pripadaju stazama, a tranzicije mogu prelaziti iz jedne staze u drugu. Na sledeoj slici prikazan je dijagram aktivnosti za poslove Polaganje ispita
Nastavnci Student
Utvrdivanje spremnosti studenta [ ne ] Spreman [ da ] Kontrola ispravnosti dokumenta Dokumenta ispravna Postavljanje pitanja [ negativan ] Postavljanje dopunskog pitanja [ negativan ] [ da ]
Konsultacija sa nastavnikom
[ ne ]
[ pozitivan ] Vrednovanje pojedinacnih odgovora Zakljucna ocena odgovora Upisivanje ocene [ pozitivan ]
32
alempije@beotel.rs
: Nastavnik
: Fakultet
: Smer
: Rok
: Student
: Predmet
: Ispi t
: VremaPolaganja
Unesi(Ocena, OveraSemestraDaNe)
Student
(from Logical View)
Predmet
(from Logical View)
1..1
0..*
Ocena OveraSemestraDaNe Izaberi(StudentID) Izaberi(PredmetID) Unesi(VremePolaganjaID) Unesi(Ocena, OveraSemestraDaNe) 0..* 0..* 0..1 (from Logical View) Naziv Izaberi(RokID) Rok 0..* 1..1 VremaPolaganja
(from Logical View)
0..1 Predavac
(from Logical View)
1..1 Fakultet
(from Logical View)
alempije@beotel.rs
33
34
alempije@beotel.rs
Pristup podacima
Print [ da ]
Stampaj izvestaj
[ ne ]
Kraj [ da ]
alempije@beotel.rs
35
Smer
(from Logical View)
Rok
(from Logical View)
Ocena OveraSemestraDaNe 0..* Student BrojIndeksa 1..1 Ime Prezime JMBG Izaberi() Izaberi() 0..* Unesi() Unesi() 0..* Unesi() 1..1 Predmet
(from Logical View)
VremaPolaganja0..* 1..1
(from Logical View)
DatumPolaganja SkolskaGodina
1..1 Fakultet
(from Logical View)
0..*
36
alempije@beotel.rs
Referent
Prodekan za nastavu
Studenti
Nastavnici
Prijavljivanje ispita
Azuriranje zapisnika
alempije@beotel.rs
37
Smer Naziv Izaberi(SmerID) 0..1 1..1 0..* Valuta NazivValute 1..1 0..* 0..* PrijavaIspita 0..* KojiPutPolaze DatumPrijave Iznos Izaberi(PredmetID) Unesi(StudentID) Izaber(ValutaID) Izaberi(ModelPlacanjaID) Unesi(KojiPutPolaza, DatumPrijave, Iznos) 0..* VremaPolaganja DatumPolaganja SkolskaGodina 1..1 0..* ModelPlacanja BrModela
0..*
1..1
0..* Student BrojIndeksa1..1 Ime Prezime JMBG 1..1 1..1 Fakultet Naziv ZiroRacun Izaberi(FakultetID)
0..* PlanIspita DatumPolaganja MestoPolaganja Otvori(RokID, rbr) Izaberi(PredavacID) Izaberi(PredmetID) Definisi(DatumPolaganja, MestoPolaganja) 0..* 0..*
Unesi(DatumPolaganja, SkolskaGodina)
1..1
1..1
0..*
1..1
0..*
0..1
38
alempije@beotel.rs
Smer SmerID: char(18) FakultetID: char(18) Naziv: char(18) Student StudentID: char(18) BrojIndeksa: char(18) Ime: char(18) Prezime: char(18) JMBG: char(18) FakultetID: char(18) SmerID: char(18) ModelPlacanja ModelPlacanjaID: char(18) BrModela: char(18) PrijavaIspita PrijavaIspitaID: char(18) ValutaID: char(18) ModelPlacanjaID: char(18) PredmetID: char(18) RokID: char(18) StudentID: char(18) KojiPutPolaze: char(18) DatumPrijave: char(18) Iznos: char(18) Valuta ValutaID: char(18) NazivValute: char(18) Rok RokID: char(18) SmerID: char(18) FakultetID: char(18) Naziv: char(18)
VremePolaganja Ispit StudentID: char(18) PredmetID: char(18) VremePolaganjaID: char(18) Ocena: char(18) OverenSemestarDaNe: char(18) PredsedniKomisijeID: char(18) VremePolaganjaID: char(18) RokID: char(18) DatumPolaganja: char(18) SkolskaGodina: char(18)
PlanIspita RokID: char(18) RedniBroj: char(18) MestoPolaganja: char(18) DatumPolaganja: char(18) PredavacID: char(18) PredmetID: char(18)
Predmet PredmetID: char(18) PredavacID: char(18) Naziv: char(18) BrojCasova: char(18) Semestar: char(18)
Predavac PredavacID: char(18) Ime: char(18) Prezime: char(18) Telefon: char(18) Email: char(18) JMBG: char(18) AkademskoZvanje: char(18) IzbornoZvanje: char(18)
<<Non-Identif y ing>> Smer SmerI D : CHAR(18) F akultetID : CHAR(18) Naziv : C HAR(18) 1 Ispit 0..1 <<Non-Identif y ing>> 0. .* 0. .1 Rok RokID : CHAR(18) SmerID : CHAR(18) FakultetID : CHAR(18) Naziv : CHAR(18)
VremePolaganja <<Non-Identif y ing>> 1 0..* VremePolaganjaID : CHAR(18) RokID : CHAR(18) DatumPolaganja : CHAR(18) SkolskaGodina : CHAR(18)
0..*
StudentID : CHAR(18) PredmetID : CHAR(18) VremePolaganjaID : CHAR(18) Ocena : CHAR(18) Ov erenSemestarDaNe : CHAR(18) <<Non-Identif y ing>> PredsedniKomisijeID : CHAR(18) 0..* 0..* 0..*
0..* Prijav aIspita Prijav aIspitaID : CHAR(18) ValutaID : CHAR(18) ModelPlacanjaID : CHAR(18) PredmetID : CHAR(18) RokID : CHAR(18) StudentID : CHAR(18) KojiPutPolaze : CHAR(18) DatumPrijav e : CHAR(18) Iznos : CHAR(18) 0..* <<Non-Identif y ing>> ModelPlacanja 0..* 1 ModelPlacanjaID : CHAR(18) BrModela : CHAR(18)
<<Identif y ing>>
<<Identif y ing>>
<<Identif y ing>>
Student StudentID : CHAR(18) BrojIndeksa : CHAR(18) Ime : CHAR(18) Prezime : CHAR(18) JMBG : CHAR(18) FakultetID : CHAR(18) SmerID : CHAR(18)
1 1
Predmet 1 PredmetID : CHAR(18) Predav acID : CHAR(18) Naziv : CHAR(18) BrojCasov a : CHAR(18) 0..* Semestar : CHAR(18) <<Non-Identif y ing>> 0..* 1 0..* PlanIspita RokID : CHAR(18) RedniBroj : CHAR(18) MestoPolaganja : CHAR(18) DatumPolaganja : CHAR(18) Predav acID : CHAR(18) PredmetID : CHAR(18)
<<Non-Ident if y ing>> Predav ac Predav acID : CHAR(18) Ime : CHAR(18) Prezime : CHAR(18) Telef on : CHAR(18) Email : CHAR(18) JMBG : CHAR(18) AkademskoZ v anje : CHAR(18) IzbornoZv anje : CHAR(18)
<<Non-Identif y ing>> 1
0..*
0..1
alempije@beotel.rs
39
Zakljuak
Na osnovu definisanih dijagrama pristupa se izradi dva sledea koraka. U prvom koraku prelazi se na definisanje server strane generisanjem baze podataka kao to je pokazano za ovaj primer u (2) i (3). Drugi korak podrazumeva izradu klijent strane korienjem Web programiranjem.
Literatura
1 Veljovi A. Objektno modeliranje informacionih sistema, Fakultet za poslovne studije, MEGATREND Univerzitet, 2003. godina 2. Veljovi A. Praktikum iz analize informacionih sistema, Fakultet za poslovne studije, MEGATREND Univerzitet, 2005. godina. 3.Veljovi A., Put ka integranolm inforacionom sistemu na primeru Megatrend univerziteta, Megatrend revija, 2005. godina.
40
alempije@beotel.rs
Uvod
Na primeru poslova izrade tehnolokog postupka, prikazae se faze objektnog modeliranja informacionog sistema definisanog u (1). Ovaj primer predstavlja svojevrsan vodi kroz definisanje osnovnih elemenata projekta razvoja informacionog sistema korienjem objektno orijentisanih CASE alata (Rational Rous). Osnove vezane za poslove izrade tehnolokog postupka date su u (2). Ovo je primer sa minimalnim zahtevima za izradu seminarskog rada za predmet Projektovanje informacionih sistema Potrebno je izvesti sledee aktivnost i to: Dijagram sluajeva upotrebe Dijagram koncepta Dijagram sekvenci Dijagram kolaboracije Dijagram klasa
alempije@beotel.rs
41
Logon
Opis operacije
<<include>>
Slika 5.1. Dijagram sluajeva upotrebe TehnIS Uesnici (Actor) je tehnolog, koji komunicira sa sistemom TehnIS. Uesnik prima i odailje poruke koje nisu formalno prikazane.. Sluaj upotrebe predstavlja: "atomsku transakciju" jer po njegovom zavretku IS sistem ostaje u konzistentnom stacionarnom stanju, dok na njega ne ponu da deluju drugi sluaj upotrebe. "logiku jedinicu posla" u realnom vremenu, neto to ima znaenje za korisnika, bez obzira na njegovu sloenost.
42
alempije@beotel.rs
Sluaji upotrebe: Izbor proizvoda, Definisanje Varijante tehnolokog postupka, Odravanje tehnoloke lokacije i Opis operacije
Kratak opis: Izbor proizvoda i Definisanje Varijante tehnolokog postupka treba da omogui nalaenje proizvoda za koji je potrebno izbrati ili projektovati varijantu tehnolokog postupka. Odravanje tehnoloke lokacije je zajedniki ifranik i definie ga po potrebi onaj kome to treba a svi ga koriste. Opis operacije je tekstualno opisuje operacije. Uesnici: Tehnolog Uslovi koji moraju biti zadovoljeni pre izvravanja: Moraju biti azurni sifarnici. Opis:. Pretpostavka za izvodjenje ovog sluaja upotrebe je da je izvrena identifikacija i standardizacija naziva proizvoda.Izbor proizvoda je asocijativnom vezom povesan preko stereotipa <<include>> sa sluajem upotrebe Definisanje Varijante tehnolokog postupka . Ovo znai da sluaj upotrebe Izbor proizvoda ukljuuje sluaj upotrebe Definisanje varianate tehnolokog postupka. Odravanje tehnoloke lokacije je sluaj upotrebe koji je izvan TehnIS-a i on se ovde samo koristi. Nastao je u internoj standardizaciji. Opis operacije je sluaj upotrebe gde se za dogovarajuu operaciju tekstualno opisuje operacije. Izuzeci: Nema Uslovi koji moraju biti zadovoljeni posle izvravanja: Nema.
alempije@beotel.rs
43
Opis: Stereotipom <<include>> ovaj sluaj parametara uredjaja i Definisanje parametara upotrebe gde se definiu parametri maine parametara uzorka je sluaj upotrebe gde labaratorije ispituju. Izuzeci: Nema
upotrebe koristi sluajeve upotrebe Definisanje uzorka. Definisanje parametara uredjaja je sluaj za izvodenje tehnolokog procesa. Definisanje se definiu parametri uzorka koji se u okviru
44
alempije@beotel.rs
Proizvod barKod
1..1
TehnoloskaLokacija tehnoloskaSifra nazivTehnoloskeLokacije slika 0..1 1..* TehnoloskiPostupakStavka brojOperacije naziOperacije vremePripreme vremeTrajanja opisOperacije 1..1
1..*
PredmetPoslovanja nazivPredmetaPoslovanja staraSifra stariNaziv engleskiNaziv dokument brojCrtezaStandard prosecnaCena datumOtvorio datumIzmene napomena
ParametriUredjaja
ParametriUzorka
Slika 5.2. Konceptualni model TehnIS Dakle, identifikovani su sledei koncepti u konkretnom problemu realnog sistema: Predmet poslovanja, Proizvod, tehnoloki postupak, Tehnoloki postupak stavka, Tehnoloka lokacija, Parametri, parametri uredjaja i parametri Uzorka. U daljem tekstu detaljno e se specificirati svaki pojedinani koncept. Predmet poslovanja je generalizovani koncept nastao na viem nivou u okviru renika podataka ProteIS i ovde se prikazuje da bi se pokazala veza sa njegovom specijalizaciojom Proizvod. Predmet poslovanja je vezni koncept prema ostalim podsistemima u Sojaproteinu u okviru projekta ProteIS. Ovde je definisan u okviru koncepta jer treba da zadovolji zahteve koji su postavljeni od strane odravanja. Proizvod je specijalizacija od predmeta poslovanja i mogue ga je samo koristiti a njegov nastanak je vezan za posistem interna standardizacija. Nasledjuje atribute iz klase PredmetaPoslovanja a njegov specifini atribut kojim se opsuje je BarKod. Tehnoloki postupak je koncept koji se ovde stvara i koji za jedan proizvod moe da ima vie varijanti. Za tehnoloki postupak potrebno je definisati varijantu, datum nastanka i kao povratna informacija (izveden podatak) ukupno vreme. Tehnoloki postupak stavka su operacije koje se definiu za konkretan proizvod i odgovarajuu varijantu tehnoloskog postupka. Potrebno je definisati redni broj operacije, standradizovani naziv operacije, vreme pripreme i vreme trajanja.Posebno je mogue za svaku operaciju opisati operaciju kao i definisati parametre. Parametri su generalizovani koncept i definie za odgovarajuu operaciju ije su specijalizacije parametri uredjaja i parametri uzorka. Parametri su opisani zahtevanom vrednou, zahtevana vrednost minimum i zahtevana vrednost maksimum. Tehnoloka lokacija je koncept kojim se definie lokacija gde se operacija izvodi.
alempije@beotel.rs
45
Na osnovu ovako definisanog koncepta u sledeem poglavlju definisae se dijagrami interakcije kojima se definie dinamika sistema tj. opisuje se klijent strana budue aplikacije.
46
alempije@beotel.rs
: Tehnolog
: Proizvod
: TehnoloskiPostupak
: TehnoloskiPostupakStavka
: TehnoloskaLokacija
: Parametar
nadjiIDbroj( )
Slika 5.3. Sekvencijalni dijagram TehnIS Ovaj objekat prosledjuje poruku izaberiLokaciju(lokacijaID) objektu :TehnoloskaLokacija na osnovu koje biramo tehhnoloku lokaciju na kojoj se izvodi operacija. Objekat :TehnoloskiPostupakStavka prosledjuje poruke unesiParametarUredjaja (proizvodID, varTP, rbrOP) i unesiParametarUzorka(proizvodID, varTP, rbrOP) objektu :Parametri gde se izvod istomene operacije i izvri unos odgovarajuih podataka u atribute objekta : Parametri. Kada se definiu za sve operacije vremena prpreme i trajanja porukom ukupnoVreme (proizvodID, varTP) aktivira se istoimena operacija u objektu :TehnoloskiPostupak koja izvri unos podatka u atribut ukupnoVreme.
alempije@beotel.rs
47
Drugim reima, poto su izvedeni iz istih informacija u UML-ovom metamodelu, sekvencijalni i dijagram saradnje su meusobno ekvivalentni. Kao posledica toga jedan se moe prevesti u drugi bez bilo kakvog gubitka informacija kao to je pokazano na narednoj slici.
1: nadjiIDbroj( ) 5: prikazi(proizvodID) 2: unesiVarijantuTP(proizvodID) 6: pronadjiTP (proizvodID) : TehnoloskiPostupak 3: prikaziOperaciju(proizvodID, varTP, rbrOP) 4: unesiOpis(proizvodID, varTP, rbrOP) 12: unesiVremePripreme(proizvodID, varTP, rbrOP) 13: unesiVremeTrajanja(proizvodID, varTP, rbrOP) : Tehnolog 8: azurirajLokaciju(lokacijaID) 14: ukupnoVreme(proizvodID, varTP)
: Proizvod
: TehnoloskaLokacija
7: izaberiLokaciju(lokacijaID)
: TehnoloskiPostupakStavka
Slika 5.4. Dijagram kolaboracije TehnIS Saradnja (kolaboracija) izmedju objekata prikazuje se objektima i njihovim medjusobnim vezama. Komunikacija izmedju objekata opisuje se porukama koje objekti medjusobno razmenjuju, ostvarujui na taj nain oekivano ponaanje i odredjenu funkcionalnost sistema.
48
alempije@beotel.rs
TehnoloskaLokacija tehnoloskaSifra nazivTehnoloskeLokacije slika azurirajLokaciju(lokacijaID) izaberiLokaciju(lokacijaID) 0..1 TehnoloskiPostupakStavka 1..* TehnoloskiPostupak brojTehnoloskogPostupka datum ukupnoVreme unesiVarijantuTP(proizvodID) pronadjiTP(proizvodID) unesi Datum(Date) ukupnoVreme(proizvodID, varTP) 0..* 1..1 Proizvod barKod nadjiIDbroj() prikazi(proizvodID) 0..* Parametar zahtevanaVrednost zahtevanaVrednostMin zahtevanaVrednostMax unesiParametarUredjaja(proizvodID, varTP, rbrOP) unesiParametarUzorka(proizvodID, varTP, rbrOP) korekcijaParametara(proizvodID, varTP, rbrOP) brojOperacije naziOperacije vremePripreme vremeTrajanja opisOperacije 1..* unesiVremePripreme(proizvodID, varTP, rbrOP) unesiVremeTrajanja(proizvodID, varTP, rbrOP) unesiOpis(proizvodID, varTP, rbrOP) prikaziOperaciju(proizvodID, varTP, rbrOP) 1..1
Slika 5.5. Dijagram klasa TehnIS Dijagram klasa koji je dat na slici. opisuje logiku aplikacije TehnIS i definisan je sa tri kljune klase:TehnoloskiPostupak, TehnoloskiPostupakStavka i Parametri. Klase Proizvod i TehnoloskaLokacija ne nastaju u okviruTehnIS-a ve slue za izbor i proirivanje TehnIS-a. Za jedan tehnoloski postupak definie se jedna ili vise stavki i ova veza je agregacija tj. kompozicija (Composition). Kod kompozicije, objekti-delovi su u ekskluzivnom vlasnitvu samo jednog objekta-celine koji je odgovoran za njihovo kreiranje i unitavanje. U okviru klase TehnoloskiPostupakStavka definie se operacijai vezuje agregacijom tj. referenca. Ovaj tip agregacije je samo specijalna vrsta asocijacije i definisana je romboidom i predstavlja strukturalni odnos, to znai da su oba klase na istom nivou. Agregacija definie odnos: celina/deo tj. odnos :ima (has-a), to znai da objekat celine ima objekte delova. Klasa parametri objedinjuje u konceptu definisane klase ParametaraUredjaja i ParamataraUzorka. Neki atributi koji e se kasnije pojaviti u modelu podataka nedostaju a to je stoga to se ovde ne radi o tabelama i prenoenju stranih kljueva, ve o softverskim klasama kod kojih se to reava mogunou referenciranja.
alempije@beotel.rs
49
podataka(2) postupkom reverse enginering. Prvo smo u ERwinu napravili skript fajl a potomo pozvali u RationalRous-u Tools-Data Modeler-Reverse Engeenering. eme logike baze podataka obuhvata poseban skup podataka (odgovarajui renik podataka) sa odgovarajuom semantikom i vezama meu elementima baze podataka. Fiziki, ove veze su smetene u bazi podataka, za kasniju upotrebu. Na sledeoj slici prikazana je ema baze podataka dobijena ovim postupkom.
TehnoloskiPostupak ProizvodID: int TehnoloskiPostupakID: int BrojTehnoloskogPostupka: varchar(25) Datum: smalldatetime Izradio: int Odobrio: int TehnoloskaLokacija TehnoloskaLokacijaID: int TehnoloskaSifra: nvarchar(15) NazivTehnoloskeLokacije: nvarchar(80) Slika: image NadredjenaTL: int
Te hnoloskiPostupakStavka ProizvodID: int TehnoloskiPostupakID: int OperacijaID: int BrojOperacije: int NazivOperacije: nvarchar(80) OpisOperacije: ntext KodUredjajUzorak: tinyint TehnoloskaLokacijaID: int PredmetPoslovanjaID: int VremePripreme: numeric(13,2) VremeTrajanja: numeric(13,2)
Parametar ProizvodID: int TehnoloskiPostupakID: int OperacijaID: int RedniBrojParametra: int NazivParametra: nvarchar(80) ZahtevanaVrednost: numeric(13,2) ZahtevanaVrednostMin: numeric(13,2) ZahtevanaVrednostMax: numeric(13,2) JedinicaMereID: int
Parametar ProizvodID : INT TehnoloskiPostupakID : INT OperacijaID : RedniBroj RedniBrojParametra : RedniBroj ZahtevanaVrednost : KolicinaDecimal NazivParametra : NazivIdenta ZahtevanaVrednostMin : KolicinaDecimal ZahtevanaVrednostMax : KolicinaDecimal JedinicaMereID : INT <<PK>> PK_Parametar0() <<FK>> FK_Parametar0() 0..* <<Identifying>>
TehnoloskaLokacija TehnoloskaLokacijaID : INT TehnoloskaSifra : Oznaka NazivTehnoloskeLokacije : NazivIdenta Slika : IMAGE NadredjenaTL : INT <<PK>> PK_TehnoloskaLokacija2() <<FK>> FK_TehnoloskaLokacija1() 0..1 0..1 <<Non-Identifying>>
0..*
<<Identifying>>
<<Non-Identifying>>
0..*
0..*
TehnoloskiPostupak ProizvodID : INT Odobrio : INT Izradio : INT TehnoloskiPostupakID : INT BrojTehnoloskogPostupka : Delovodnik Datum : KratkiDatum <<PK>> PK_TehnoloskiPostupak3() <<FK>> FK_TehnoloskiPostupak2()
TehnoloskiPostupakStavka ProizvodID : INT NazivOperacije : NazivIdenta TehnoloskiPostupakID : INT KodUredjajUzorak : TINYINT <<Identifying>> OperacijaID : RedniBroj OpisOperacije : Napomena BrojOperacije : RedniBroj 0..* TehnoloskaLokacijaID : INT 1 VremePripreme : KolicinaDecimal PredmetPoslovanjaID : INT VremeTrajanja : KolicinaDecimal <<PK>> PK_TehnoloskiPostupakStavka4() <<FK>> FK_TehnoloskiPostupakStavka4() <<FK>> FK_TehnoloskiPostupakStavka3()
50
alempije@beotel.rs
Zakljuak
Na osnovu definisanih dijagrama pristupa se izradi dva sledea koraka. U prvom koraku prelazi se na definisanje server strane generisanjem baze podataka kao to je pokazano za ovaj primer u(2). Drugi korak podrazumeva izradu klijent strane korienjem MS Access-om kao to je pokazano u (2) i (3).
Literatura
1 Veljovi A. Objektno modeliranje informacionih sistema, Fakultet za poslovne studije, MEGATREND Univerzitet, 2003. godina 2. Veljovi A. Praktikum iz analize informacionih sistema, Fakultet za poslovne studije, MEGATREND Univerzitet, 2005. godina 3. Veljovi A. i drugi, Projekat TehnIS, Sojaprotein Beej, 2001. godina.
alempije@beotel.rs
51
Uvod
Na primeru cirkulacije u biblioteci, detaljno e se prikazati sve faze objektnog modelranja informacionog sistema definisanog u (1). Ovaj primer predstavlja svojevrsan vodi kroz definisanje svih elemenata projekta razvoja informacionog sistema korienjem objektno orijentisanih CASE alata (Rational Rous). Osnove vezane za poslove cirkulacije u biblioteci date su u (2). Osnova za praenje faza OO projektovanja IS ine sledee faze: Definisanje zahteva o Izrada dijagrama sluajeva upotrebe o Izrada dijagrama aktivnosti Objektno orijentisana analiza o Izrada konceptualnog modela o Izrada dijagrama sekvenci o Definisanje ugovora o izvrsenju operacija Objektno orijentisan dizajn o Izrada dijagrama saradnje o Izrada potpunih dijagrama klasa o Izrada dijagrama stanja o Definisanje paketa Implementacija o Izrada aplikacije o Definisanje tehnologije aplikativne i mrezne arhitekture Predmet razmatranja ovog primera nije testiranje, uvodjenje i odrzavanje.
52
alempije@beotel.rs
alempije@beotel.rs
53
Opominjanje
<<extend>> Zaduzivanje
Bibliotekar <<communicate>>
Evidencija <<extend>>
Razduzivanje
<<extend>>
Clan Rezervisanje
54
alempije@beotel.rs
alempije@beotel.rs
55
Uesnici: Bibliotekar, lan Uslovi koji moraju biti zadovoljeni pre izvravanja: Naslov koji se zaduuje postoji u vidu zapisa. Opis: lan pretrauje naslove i kada nae odgovarajui a on je ve na zaduenju kod drugog lana javlja se na listu ekanja za taj naslov. Sada nakon vraanja naslova u biblioteku on nemoe biti zaduen niti od jednog lana osim od onog koji ga je rezervisao i to po FIFO(First In Firs Out) algoritmu ekanja. Do sada se ta funkcija vrila kroz komunikaciju lana sa bibliotekarom, dok bi uvoenjem novog tehnolokog okruenja tu funkciji mogli da vre i lanovi samostalno. Izuzeci: (naslov ne postoji) pogledati da li su dobro uneti podaci za pretragu Uslovi koji moraju biti zadovoljeni posle izvravanja: Tano formiran redosled lanova po datumu rezervacije.
56
alempije@beotel.rs
Start
Ispis
da
ne
Trazenje clana
ne
da Brisanje zapisa
da
Azuriranje zapisa
ne
Stop
alempije@beotel.rs
57
58
alempije@beotel.rs
: CLAN
: Bibliotekar
Start
Formiranje zahteva
Da li je zaduzivanje?
DA
Pretrazivanje fonda
Stop
alempije@beotel.rs
59
Stampanje opomene
60
alempije@beotel.rs
alempije@beotel.rs
61
62
alempije@beotel.rs
Slika 6.6. Konceptualni model cirkulacije u biblioteci Dakle, identifikovani su sledei koncepti u konkretnom problemu realnog sistema: lan, Naslov, Zaduenje, Primerak, Izvetaj, Opomena i Rezervacija. U daljem tekstu detaljno e se specificirati svaki pojedinani koncept. Naslov je klasa koja predstavlja apastrakciju stavke bibliotekog fonda, skupa svih knjiga u biblioteci. Ovaj koncept sastoji se od sledeih javnih atributa: naslov: je niz znakova koji predstavlja ime naslova autor: atribut znakovnog tipa koji uva ime i prezime osobe koja je napisala konkretni naslov. Primerak je koncept realnog sistema gde je mogue i deava se da jedan naslov ima vie primeraka. Razdvajanje koncepata naslova i primerka je potrebno zbog razliitih operacija koje se odvijaju nad instancama ovih klasa. Ovaj koncept sastoji se od sledeeg javnog atributa: invbr: je jedinstveni identifikator svakog primerka naslova lan je koncept koji predstavlja svakog legitimnog korisnika bibliotekog fonda. Ovaj koncept sastoji se od sledeih privatnih atributa: jmbg: je jedinstveni matini broj graanina(lana) koji je ovde na neki nain i lanski broj ime: je ime i prezime lana biblioteke telefon : je atribut koji uva podatak o telefonskom broju lana biblioteke.
alempije@beotel.rs
63
Zaduenje je klasa-koncept koji predstavlja apstrakciju veze koju mogu da ostvare izmeu sebe jedan lan i jedan primerak. Ovaj koncept sastoji se od sledeih privatnih atributa: datum: je podatak lan koji sadri datum formiranja konkretnog zaduenja. rok: moe ili biti broj dana na koji se daje primerak na itanje ili konkretan datum do kojeg se izdaje primerak. Opomena je apstrakcija odnosa koji moe postojati izmeu lana i njegovog zaduenja, u sluaju da ne razdui primerak do datog mu roka. Ovaj koncept sastoji se od sledeih privatnih atributa: rednibr: je celobrojna vrednost rednog broja konkretne opomene za konkretnog lana. Rezervacija je koncept koji realizuje apstrakciju odnosa koji moe postojati izmeu jednog naslova i jednog lana Ovaj koncept sastoji se od jednog javnog atributa: datum: je datum kada se naslov rezervisao Izvetaj je koncept realnog sistema koji predstavlja dokument izvetavanja o korisniku i naslova. Ovaj koncept sastoji se od sledeih privatnih atributa: kriterijum: je argument koji govori o tome da li se radi o izvetaju o knjizi ili o izvetaju o naslovu. Moe se rei da svaka koncept u konceptualnom modelu opisan je dodeljenim atributima i nekim elementarnim operacijama. Izuzetno je vano odvojiti koncept naslova od koncepta primerka. Naime dok je naslov jedan, primeraka moe biti vie (u sluaju naslov udbenika redovno ima vie primeraka), na ta ukazuje i kardinalnost veze izmeu ova dva koncepta. Logino je onda to se naslov karakterie atributima kao to su ime naslova i autora, a primerak inventarnim brojem koji ga jedinstveno razlikuje od ostalih primeraka istog naslova. Treba primetiti da koncept rezervacije povezuje koncepte lana i naslova, dok su koncepti lana i primerka povezani asocijativnim konceptima zaduenja i opomena. Upravo se ovde vidi sutina konceptualnog modela-skeniranje realnog sistema u potrazi za klasama objekata i znaenjem njihovih meusobnih veza. Idui tim putem dolo se do toga da lan rezervie naslov bez obzira na primerak (jer je to u tom sluaju nebitno), dok se lan zaduuje sa konkretnim primerkom. Dakle, konceptualni model, opisuje relaciju koncepata lana i primerka, koja je sama sr funkcionisanja realnog sistema bibliotekog poslovanja. Tako primerak sa jedne strane moe biti u jednom vremenskom momentu zaduen jednom ili nijednom, a jedno zaduenje se moe voditi za samo jedan primerak. Idui dalje trasom veze koncepata lan i primerak moe se videti da je po jednom zaduenju mogua ili nijedna ili vie opomena, a jedna opomena moe biti izdata za jedno i samo jedno zaduenje. Istovetna je i kardinalnost veze opomena-lan, gde lan moe imati nijednu ili vie opomena, a jedna opomena moe biti izdata za jednog i samo jednog lana. Poslednji na ovom dijagramu je koncept izvetaja, koji je kao to se
64
alempije@beotel.rs
vidi zajedniki i za lana i za naslov. Veze na oba pravca su jednostruke, zato to u realnom sistemu izvetaj moe u jednom trenutku biti vezan za jednog i samo jednog lana i jedan naslov, a vai i obrnuto.
alempije@beotel.rs
65
: Clan
Zahtavampretragu( ) IzaberiKriterijum( ) Prona| iKnjigu( ) Pretra`i( ) Filtriraj( ) Izaberi( ) IzaberiNaslov( ) Rezervi{ iNaslov( ) Rezervi{ i( )
A`uriraj( )
66
alempije@beotel.rs
Dalje su mogua dva dogaaja ili da server poalje poruku kojm se zahteva pravljenje izvetaja o korisniku ili izvetaja o knjizi. Odatle se od objekata izvetaj o knjizi i izvetaj o korisniku prema primerku klase tampaa alje se od objekta poruka kojom se zahteva tampanje odgovarajueg izvetaja. Imajui u vidu dijagram koji je dat primeuje se da je vremenski redosled poruka izvesti o korisniku i izvesti o knjizi nebitan. Vano je samo da poruka tampaj sledi iza ovih poruka, a stvar je bibliotekara da li e prvo eleti da se obavesti o knjizi ili o korisniku(lanu). Na samom kraju vertikalne vremenske ose prikazane su poruke koje se razmenjuju izmeu objekata u funkciji backup-ovanja koja podrazumeva pravljenje rezervne baze podataka. Bibliotekar alje poruku serveru za kopiranje podataka, koju on prosleuje objektu kopirana baza. Naravno da se i ova sekvenca poruka vezana za backup-ovanje mogla u vremenu desiti i ranije ali je to samo stvar izbora primerka klase bibliotekar da li e prvo eleti da napravi izvetaj ili rezervnu kopiju podataka iz podsistema bibliotekog poslovanja. Na sledeoj slici prikazan je sekvencijalni dijagram za izvetavanje i backup-ovanje
Izvestaj o korisniku :
Izvestaj o knjizi :
: [ tampa~
alempije@beotel.rs
67
serveru poruku za listanje prekoraenja roka zaduenja. Ta poruka izavae pretraivanje na serveru svih zaduenja koja nisu raskinuta do roka koji je postavljen. Rezultat te pretrage u realnom sistemu je po pravilu spisak koji sadri vie od jednog prekoraenog zaduenja. Stoga e svojevrsna povratna poruka servera ka bibliotekaru biti da se izbere neko od tih prekoraenja kako bi se mogla tampati opomena. Ta poruka nije SW ve je e prevashodno biti u vidu ekranskog prikaza spiska prekoraenja koji e prisiliti bibliotekara da izabere neke od njih kako bi se mogla tampati opomena. Sada bibliotekar kao reakciju na poruku servera da izabere neko od prekoraenja alje poruku da se tampa jedna konkretna opomena. Reakcija servera na tu poruku je njeno prosto prosleivanje tampau. Na sledeoj slici prikazae se dijagram sekvenci za rezervisanje naslova i to za onaj njegov modalitet koji se oslanja na mrenu arhitekturu podsistema. Razlog za to je neto sloenija saradnja izmeu objekata u tom modu rezervisanja, koji je posledica dodavanja jo jednog nivoa posredovanja u pristupu podsistemu (klijenta preko kojeg se pristupa podacima na serveru).
: Bibliotekar
: Server Pretra`uj( )
: [ tampa~
[ tampaj( )
alempije@beotel.rs
uslovno, te da su tu dati radi neprekidnosti izlaganja o sekvencijalnim dijagramima. Na dijagramima pojavie se objekti ( primerci) nekih novih klasa koje e kasnije podrobnije biti dati u dijagramima klasa interfejsa. Te klase uglavnom predstavljaju razliite forme ( maske ) koje e se pojavljivati u aplikaciji.
: Bibliotekar
: FormaNovogClana
: CLAN
alempije@beotel.rs
69
uspostavljene veze i provere vri se raskidanje zaduenja i njegovo uklanjanje iz tabele zaduenja. Na slici 6.13. prikazan je sekvencijalni dijagram interfejsa razduivanja
70
alempije@beotel.rs
: Bibliotekar
: FormaZaduzivanja
: NASLOV
: DijalogPretrageNaslova
: DijalogPretrageClana
: CLAN
: Primerak
: ZADUZENJE
DugmePronadjiNaslov_Clicked ( )
DugmePronadji_Clicked ( ) PoINVBR DaDugme_Clicked ( ) dostaviNaslov (ObjId) pribaviBrojPrimeraka pribaviPrimerak(int) pribaviObjekat pribaviINVBR PronadjiPodatkeClana_Clicked ( ) DijalogpretrageClana (Frame, boolean)
alempije@beotel.rs
71
: Bibliotekar
: FormaRazduzivanja
: DijalogPretrageNaslova
: NASLOV
: Primerak
: ZADUZENJE
: CLAN
DugmePronadjiNaslov_Clicked ( ) DijalogPretrageNaslova (Frame, boolean) DugmePronadji_Clicked ( ) PoINVBR DaDugme_Clicked ( ) dostaviNaslov (ObjId) ListaPrimeraka_Selected ( ) proveriStanje ( ) pribaviPrimerakSaINVBR pribaviZaduzenje pribaviClana
72
alempije@beotel.rs
: Bibliotekar
: FormaRezervisanja
: DijalogPretrageNaslova
: NASLOV
: DijalogPretrageClana
: REZERVACIJA
: CLAN
DugmePronadjiNaslov_Clicked ( ) DijalogPretrageNaslova (Frame, boolean) DugmePronadji_Clicked ( ) PoINVBR DaDugme_Clicked ( ) dostaviNaslov (ObjId) DugmePronadjiClana_Clicked ( ) DijalogpretrageClana (Frame, boolean)
PronadjiDugme_Clicked ( )
PoJMBG dostaviClana (ObjId) DaDugme_Clicked ( ) Rezervacija pohrani dodajRezervaciju azuriraj dodajRezervaciju azuriraj
alempije@beotel.rs
73
: Bibliotekar
: FormaBrisanjaRezervacije
: DijalogPretrageNaslova
: NASLOV
: REZERVACIJA
: CLAN
DugmePronadjiNaslov_Clicked ( ) DijalogPretrageNaslova (Frame, boolean) DugmePronadji_Clicked ( ) PoJMBG DaDugme_Clicked ( ) dostaviNaslov (ObjId) pribaviBrojRezervacija pribaviRezervaciju(int) pribaviClana pribaviJMBG ListaClanova_Selected ( ) DaDugme_Clicked ( )
74
alempije@beotel.rs
: Bibliotekar
: FormaNovogNaslova
: NASLOV
: Primerak
FormaNovogNaslova ( ) DugmeDodaj ( ) Provera da li postoji vec naslov Kreiranje naslova i primeraka PoINVBR PoISBN Naslov Primerak pohrani dodajNaslov pohrani
alempije@beotel.rs
75
: Bibliotekar
: DijalogPretrageNaslova
: NASLOV
: FormaPrepravkeNaslova
: Primerak
: REZERVACIJA
: CLAN
DugmePronadji_Clicked ( ) PoINVBR DaDugme_Clicked ( ) FormaPrepravkeNaslova (ObjId, boolean) DugmeIzbrisi_Clicked ( ) pribaviBrojPrimeraka Pretpostavka da primerak nije zaduzen PribaviPrimerak(int) jePozajmljen izbrisi pribaviBrojRezervacija pribaviRezervaciju(int) PribaviClana obrisiRezervaciju izbrisi obrisi
76
alempije@beotel.rs
alempije@beotel.rs
77
: Bibliotekar
: DijalogPretrageNaslova
: NASLOV
: FormaPrepravkeNaslova
: NASLOV
: Primerak
DugmePronadji_Clicked ( ) PoINVBR DaDugme_Clicked ( ) FormaPrepravkeNaslova (ObjId, boolean) pribaviNaslov pribaviBrojPrimeraka pribaviPrimerak(int) pribaviINVBR DugmeDodajPrimerak_Clicked ( ) Primerak pohrani dodajPrimerak azuriraj
78
alempije@beotel.rs
: Bibliotekar
: DijalogPretrageNaslova
: NASLOV
: FormaPrepravkeNaslova
: NASLOV
: Primerak
DugmePronadji_Clicked ( ) PoInventarnomBr DaDugme_Clicked ( ) FormaPrepravkeNaslova (ObjId, boolean) pribaviNaslov pribaviBrojPrimeraka pribaviPrimerak pribaviInvBr DugmeObrisiPrimerak_Clicked ( ) pribaviPrimerak izbrisi obrisiIndexPrimerka azuriraj
alempije@beotel.rs
79
80
alempije@beotel.rs
: Bibliotekar
: DijalogPretrageClana
: CLAN
: FormaPrepravkeClana
: ZADUZENJE
: Primerak
: REZERVACIJA
: NASLOV
PronadjiDugme_Clicked ( ) PoJMBG DaDugme_Clicked ( ) FormaPrepravkeClana (ObjId, boolean) pribaviClana DugmeIzbrisi_Clicked ( ) pribaviBrojZaduzenja pribaviZaduzenje(int) pribaviPrimerak postaviZaduzenje izbrisi pribaviBrojRezervacija pribaviRezervaciju(int) pribaviNaslov izbrisiRezervaciju obrisi izbrisi
alempije@beotel.rs
81
82
alempije@beotel.rs
Post uslov: Uniten je primerak klase naslov, i sve njegove rezervacije, zaduenja i opomena. Ime operacije: Zaduivanje Odgovornosti: Zaduuje lana biblioteke sa konkretnim primerkom naslova Izuzeci: lan ili naslov ne postoji; svi primerci naslova su zadueni ili rezervisani Preduslov: lan i naslov postoje i ima slobodnih primeraka naslova Post uslov: Kreiran je novi objekat klase zaduenje sa pripadajuim atributima Ime operacije: Razduivanje Odgovornosti: Razduuje lana biblioteke sa primerakom naslova Izuzeci: Ne poklapaju se inventarni brojevi primerka naslova koji je zaduen i primerka koji pokuava da se razdui Preduslov: zaduenje postoji Post uslov: Uniten je konkretni primerak klase zaduenja, i kreiran je odgovarajui objekat klase razduenja. Ime operacije: Rezervisanje Odgovornosti: lan rezervie naslov koji mu nije trenutno dostupan ili ne eli da ga pozajmi odmah, ve u narednom periodu. Izuzeci: lan ili naslov ne postoji; lan je ve rezervisao naslov Preduslov: lan koji rezervie i naslov koji se rezervie moraju da postoje. Post uslov: Kreiran je odgovarajui objekat klase rezervacije Ime operacije: Brisanje rezervacije Odgovornosti: Ukida se rezervacija lana biblioteke u odnosu na neki naslov iz bibliotekog fonda. Izuzeci: Rezervacija ne postoji Preduslov: Prolo je odreeno vreme nakon to je primerak naslova osloboen a rezervacija nije prerasla u zaduenje Post uslov: uklonjen je objekat klase rezervacije iz liste rezervacije. Redosled objekata u FIFO listi rezervacija je auriran.
alempije@beotel.rs
83
84
alempije@beotel.rs
je i kopirati i bazu i uraditi izvetaj i za korisnika i za naslov. Taj momenat nije mogao da doe do izraaja kod opisa pomou sekvencijalnog dijagrama. I na ovom dijagramu kao i na sekvencijalnom, a moda i jo jasnije, postaje jasno da poruka tampaj moe uslediti tek nakon odgovarajuih poruka za kreiranjem izvetaja. Obe poruke se stiu u jednom voru grafa, primerku klase tampa. Na sledeoj slici prikazan je dijagram saradnje za izvetavanje i backup-ovanje.
3: Pregledaj() 1: PrijaviMe( ) 2: UradiIzve{ taj( ) 8: KopirajBazu( )
: Server
9: Kopiraj( )
Kopirana Baza
Biblitekar
5: IzvestiOKnjizi( ) 4: IzvestiOKorisniku( )
7: [ tam paj( )
alempije@beotel.rs
85
2: Pretra`uj( ) 1: Lista jprekora~ enja () 4: [ tam pajopom enu( ) : Serve r 3: Izabe ri( ) : Bibliotekar 5: [ tam paj( ) : [ ta m pa~
86
alempije@beotel.rs
alempije@beotel.rs
87
1: DugmePronadji_Clicked ( ) 3: DaDugme_Clicked ( )
: DijalogPretrageNaslova
: Bibliotekar
5: pribaviNaslov 6: pribaviBrojPrimeraka 7: pribaviPrimerak 10: pribaviPrimerak 4: FormaPrepravkeNaslova (ObjId, boolean)12: obrisiIndexPrimerka 9: DugmeObrisiPrimerak_Clicked ( ) 13: azuriraj
: NASLOV
2: PoInventarnomBr
1: DugmeDodaj_Clicked ( )
: CLAN : Bibliotekar
88
alempije@beotel.rs
1: PronadjiDugme_Clicked ( ) 3: DaDugme_Clicked ( )
4: FormaPrepravkeClana (ObjId, boolean) 6: DugmeIzbrisi_Clicked ( ) : Bibliotekar 10: postaviZaduzenje : Primerak 9: pribaviPrimerak 11: izbrisi
: FormaPrepravkeClana
: REZERVACIJA
: ZADUZENJE
alempije@beotel.rs
89
: Bibliotekar
: NASLOV
: Primerak
90
alempije@beotel.rs
1: DugmePronadji_Clicked ( ) 3: DaDugme_Clicked ( )
: DijalogPretrageNaslova
: FormaPrepravkeNaslova
: Primerak : NASLOV
alempije@beotel.rs
91
2: PoINVBR : NASLOV
: Bibliotekar
6: pribaviBrojPrimeraka 7: PribaviPrimerak(int) 10: pribaviBrojRezervacija 4: FormaPrepravkeNaslova (ObjId, boolean) 11: pribaviRezervaciju(int) 5: DugmeIzbrisi_Clicked ( ) 15: obrisi
: REZERVACIJA
92
alempije@beotel.rs
2: DijalogPretrageNaslova (Frame, boolean) 6: dostaviNaslov (ObjId) 15: dodajRezervaciju 16: azuriraj : FormaRezervisanja 1: DugmePronadjiNaslov_Clicked ( ) 7: DugmePronadjiClana_Clicked ( ) 12: DaDugme_Clicked ( ) 11: dostaviClana (ObjId)
9: PronadjiDugme_Clicked ( )
8: DijalogpretrageClana (Frame, boolean) 17: dodajRezervaciju 10: PoJMBG : DijalogPretrageClana : CLAN 18: azuriraj : REZERVACIJA
alempije@beotel.rs
93
3: DugmePronadji_Clicked ( ) 5: DaDugme_Clicked ( )
7: pribaviBrojRezervacija 8: pribaviRezervaciju(int) 16: pribaviNaslov 19: ukloniRezervaciju 20: azuriraj 10: pribaviJMBG 13: PoJMBG 14: pribaviRezervaciju(int) 17: obrisiRezervaciju 18: azuriraj
: DijalogPretrageNaslova
94
alempije@beotel.rs
: Bibliotekar
1: DugmePronadjiNaslov_Clicked ( ) 11: PronadjiPodatkeClana_Clicked ( ) 17: ListaPrimeraka_ListSelect ( ) 18: DaDugme_Clicked ( ) 3: DugmePronadji_Clicked ( ) 5: DaDugme_Clicked ( ) 20: Zaduzenje 21: pohrani( )
12: DijalogpretrageClana (Frame, boolean) 16: dostaviClana (ObjId) : CLAN 24: dodajZaduzenje 25: azuriraj
4: PoINVBR
: NASLOV
alempije@beotel.rs
95
: DijalogPretrageNaslova
2: DijalogPretrageNaslova (Frame, boolean) 1: DugmePronadjiNaslov_Clicked ( ) 7: ListaPrimeraka_Selected ( ) 12: DaDugme_Clicked ( ) 8: proveriStanje ( ) 6: dostaviNaslov (ObjId) 4: PoINVBR
9: pribaviPrimerakSaINVBR 13: pribaviPrimerakSaINVBR : FormaRazduzivanja 10: pribaviZaduzenje 14: pribaviZaduzenje 16: pohrani 17: azuriraj 18: obrisiZaduzenje 19: azuriraj : CLAN : Primerak : NASLOV
96
alempije@beotel.rs
alempije@beotel.rs
97
Dijagram klasa koji je dat na predhodnoj slici opisuje logiku aplikacije i deo paketa istog imena koji predstavlja pogon sistema u njegovoj troslojnoj arhitekturi, o emu e neto kasnije biti govora. Odmah valja rei da sve klase imaju dve iste funkcije lanice (metode), a to su Class_Initialize i Class_Terminate. Radi se o takozvanim konstruktorima i destruktorima klase koji se pozivaju uvek kada se kreira, odnosno unitava objekat date klase. Na dijagramu klasa uoavaju se dve klase od kljunog znaaja za problem koji se pokuava reiti. To su klase NASLOV i CLAN. Klasa NASLOV ima oekivane atribute (naslov, podnaslov, inventarni broj, imena autora, signatura, format, godina itd.) u odgovarajuim tipovima podataka. Neki atributi koji e se kasnije pojaviti u modelu entiteta i veza nedostaju a to je stoga to se ovde ne radi o tabelama i prenoenju stranih kljueva, ve o softverskim klasama kod kojih se to reava mogunou referenciranja. Klasa NASLOV takoe ima odgovarajue metode pored ve pomenutih konstruktora i destruktora. Nazivi tih funkcija jasno govore o njihovoj nameni. Vano je istai da klasa NASLOV referencira klasu Primerak, iz raloga to je est sluaj da jedan naslov ima vie primeraka (s obzirom da vei deo fonda biblioteke ine udbenici). to se tie klase CLAN stvar je malo drugaija, jer se radi o klasi roditelja koja slui prvenstveno za izvoenje (generalizaciju) specifinih klasa koje predstavljaju razliite tipove lana koji mogu da postoje u poslovima cirkulacije. Zato klasa CLAN ima samo one atribute koji su zajedniki za sve vrste lanova (ime, prezime, telefon i JMBG). Ti atributi su svi protected nivoa zatite kako bi mogli da im pristupe samo klase koje nasleuju klasu lana (STUDENT, ZAPOSLEN, VANREDNI). Poslovi cirkulacije odvijaju se izmeu objekata ove dve klase i zato od njih polaze gotovo sve veze u dijagramu klasa. Razmotriemo prirodu i smisao tih veza u ovakvom dijagramu. Jedna vrsta tih veze koje se pomalo i ponavljaju je veza asocijacije ka neemu to bi se u modelu objekti i veze moglo nazvati ifarnikom. Za ilustraciju emo uzeti vezu asocijacije klase NASLOV sa klasom UDKOBLAST. Ta veza zamenjuje atribut koji bi da je nema morao postojati u klasi NASLOV. Ovako veza asocijacije to reava elegantije. Znaenje veze asocijacije izmeu bilo koje dve klase pa i ove je da objekti te dve klase mogu da referenciraju jedan drugi tj. to znai da objekat koji je u asocijaciji sa objektom druge klase ima informaciju o objektu te druge klase koju referencira. Drugim reima, naslov ima svest i zna udk broj i naziv udk oblasti kojoj pripada. Isto tako jedna udk oblast zna sve naslove koji je referenciraju i njihove atribute (to je potrebno da bi se mogli pretraivati naslovi po udk oblasti). Takoe, ova veza ima i kardinalnost koja govori da jedan naslov moe i mora da referencira samo jednu udk oblast, dok udk oblast moe da postoji bez da je referencira bilo koji naslov. U praksi to znai da e se popunjavati ifarnik udk oblasti, te da e takve oblasti moi imati u sebi svrstan nijedan ili vie naslova, dok e naslov morati da ima jedan i samo jedan udk broj koji ga svrstava u strunom katalogu. Odnos koji je opisan gotovo bez izuzetka se ponavlja kod svih klasa koje su svrstane u kategoriju ifarnika (IZDAVAC, JEZIK, SS, RADNO MESTO i USTANOVA)
98
alempije@beotel.rs
Druga kategorija klasa uslovno je nazvana grupom asocijativnih klasa. To su klase koje predstavljaju vezu klasa NASLOV i CLAN i dinamiku tog odnosa (REZERVACIJA, OPOMENA, ZADUZENJE I RAZDUZENJE). Ove klase su povezane i sa klasom NASLOV i sa klasom CLAN vezom asocijacije slinom onoj koja je opisana u prethodnom paragrafu. Od navedene etiri "asocijativne" klase jedino klasa REZERVACIJA direktno referencira klasu NASLOV, dok ostale tri to ine preko tranzizentne klase Primerak. To je i logino jer se objekti klasa zaduenja, razduenja i opomene kreiraju za konkretni primerak naslova, a samo se rezervacija vri za naslov bez obzira na primerak. I navigabilnost tih veza je dvosmerna jer konkretan objekat zaduenja referencira objekat klase lana i ima sve informacije o njemu. Tako primerak klase lana referencira nijedno, jedno ili vie zaduenja i ima sve informacije o tim zaduenjima. Slina je i situacija u vezi ovih klasa prema klasi Primerak. Kardinalnosti govori o moguim stanjima dinamikog odnosa naslova i lana. Primerak moe imati nijedno ili jedno zaduenje (naslov moe imati vie primeraka), nijednu, jednu ili vie rezervacija i opomena; dok jedno zaduenje, rezervacija, i opomena moe ukazivati na jedan i samo jedan naslov. Istovetno za jednog lana moe postojati nijedno,jedno ili vie zaduenja, rezervacija i opomena; dok za jedno zaduenje, rezervaciju i opomenu moe biti vezan samo jedan lan. Pored ve navedenih tipova veza uoava se jedna koja je specifina i javlja se izmeu klasa STUDENT i GODINA, ali i GODINA i SMER. To su takozvane veze agregacije koje reprezentuju odnos celina - deo. Radi se o dve podvrste veze agregacije : po vrednosti (kompozicija izmeu klasa studenta i klase studentske klase) i po referenci (veza izmeu studentske klase i slube). Smisao ovih veza je sledei. Znaenje agregacije po vrednosti: Primerak klase GODINA je vlasnik jednog ili vie primeraka klase STUDENT i ivotni vek primerka klase STUDENT prestaje prestankom postojanja primerka klase GODINA iji je deo. Znaenje agregacije po referenci je neto drugaije. Jedan objekat klase GODINA moe biti deo vie primeraka klase SMER. Logiku veza agregacije koje su opisane slikovito dopunjuju i kardinalnosti koje su date.
alempije@beotel.rs
99
osnovne funkcije poslovanja(zaduivanje, rezervisanje...), manipulisanje podacima( razne pretrage ) i auriranje podataka.
podsistema moe odluiti da pregleda naslove, lanove ili naloge za rad sa aplikacijom (ukoliko ima ovlaenje za takav rad). Bilo za koju od mogunosti da se korisnik odlui njoj e korespondirati neka maska. Uzmimo recimo u razmatranje prozor pretrage lana. Klasa koja odgovara tom prozoru ima jedan podatak lan tipa lana, koji sadri podatke o lanu biblioteke koji je trenutan. Pritisak na dugme pronai, koje se nalazi na toj formi, otvara se sledei obrazac koji je na dijagramu predstavljen klasom dijaloga pretrage lana. Pored ve pomenutog podatka lana tipa lan ova klasa ima jo jedan podatak lan istog tipa koji predstavlja rezultata pretrage. Istovremeno klasa realizuje interfejs rezultata pretrage koji dostavlja lana po zadatoj kategoriji. Istovetno je reeno i odvijanje prelaza iz maske u masku u sluaju kada se korisnik aplikacije odluuje za pretragu Naslova. U ovu grupu obrazaca spada i obrazac pregleda korisnikih naloga aplikacije sa svojom odgovarajuom klasom i pripadajuim metodima. U toj formi mogue je pregledanje, dopuna i prepravka postojeih naloga. Na sledeoj slici prikazan je dijagram klasa interfejsa pretrage naslova i lanova.
alempije@beotel.rs
101
GlavnaForma slikaj() Zaduzi_Action() Razduzi_Action() Rezervisi_Action() Obrisi rezervaciju_Action() Naslov_Action() Clan_Action() PregledajNaloge_Action() UnesiNaslov_Action() PrepraviPrimerakNaslova_Action() UpisiClana_Action() PrepraviClana_Action() About_Action() Izadji_Action() dostaviNaslov() dostaviClana() GlavnaForma()
DijalogPretrageNaslova rezultat : NASLOV trenutni : NASLOV DugmePronadji_Clicked() DaDugme_Clicked() NeDugme_Clicked() DijalogPretrageNaslova() ProzorPodatakaNaslova DugmePronadji_Clicked() DaDugme_Clicked() dostaviNaslov() ProzorPodatakaNaslova()
ProzorPodatakaClana <<Interface>> RezultatPretrageNaslova dostaviNaslov() trenutni : CLAN DugmePronadji_Clicked() DaDugme_Clicked() dostaviClana() ProzorPodatakaClana()
DijalogPretrageClana <<Interface>> RezultatPretrageClana dostaviClana() rezultat : CLAN trenutni : CLAN PronadjiDugme_Clicked() DaDugme_Clicked() NeDugme_Clicked() DijalogpretrageClana()
102
alempije@beotel.rs
alempije@beotel.rs
103
GlavnaForma slikaj() Zaduzi_Action() Razduzi_Action() Rezervisi_Action() Obrisi rezervaciju_Action() Naslov_Action() Clan_Action() PregledajNaloge_Action() UnesiNaslov_Action() PrepraviPrimerakNaslova_Action() UpisiClana_Action() PrepraviClana_Action() About_Action() Izadji_Action() dostaviNaslov() dostaviClana() GlavnaForma() FormaNovogClana DugmeDodaj_Clicked() NeDugme_Clicked() FormaNovogclana()
FormaPrepravkeNaslova naslov : NASLOV DugmrPrepravi_Clicked() DugmeIzbrisi_Clicked() DugmeDodajPrimerak_Clicked() DugmeObrisiPrimerak_Clicked() NeDugme_Clicked() OsveziFormu() FormaPrepravkeNaslova()
104
alempije@beotel.rs
alempije@beotel.rs
105
Izlistaj
Kreiran
Izlistaj[ postoji ]
Izlistan
Izaberi [ izlistan ]
Izabran
Obrisan
106
alempije@beotel.rs
Upis an
Opomenut
Rezervis anje
Slika 6.39. Dijagram stanja objekta klase CLAN Sada e biti dat dijagram stanja objekta klase zaduenja koja je u prethodnom izlaganju bila uslovno reeno svrstana u red "asocijativnih" klasa.
alempije@beotel.rs
107
pretrazi formiraj
Formirano
Pretrazeno
Raskinuto
108
alempije@beotel.rs
[ zaveden ]
U cirkulaciji Zavedi[ [stigao] ] Zaveden Zaduzen rashoduj[ izgubljen ] obradi U obradi Rezervisan rashoduj[ izgubljen ] Razduzen
Rashodovan
[ razduzen je ]
109
Na sledeoj slici bie dati paketi klasa sistema s obzirom na troslojnu arhitekturu aplikacije. O troslojnoj arhitekturi aplikativnog softvera koji se projektuje vie e rei biti u poglavlju izbora tehnologije. Sada e se videti samo reprezentacija troslojne arhitekture putem paketa elemenata( klasa).
Us e r S e rv ic e s
Bu s in e s s S e rv ic e s
D a ta S e rv ic e s
Korisnicki interfejs
Logika aplikacije
Usluzni paket
Slika 6.42. Paketi troslojne arhitekture Dakle razlikojemo dva nivoa arhitekture i etiri paketa. O nivoima kasnije. Paketi okupljaju elemente notacije srodne po funkciji i ponaanju. Paket korisnikog interfejsa sadri sve klase i itave dijagrame (o kojima je bilo rei u poglavlju razvoja dijagrama interfejsnih klasa) od znaaja za opis i definiciju grafike reprezentacije aplikacije -forme, dijalozi, kontrole itd... Paket baze podataka sadri klase odgovorne za postojano (persistent) uvanje, memorisanje i odravanje podaka u skladitu. Dva preostala paketa kao to je to slikovito prikazano imaju zadatak da povezuju dva ve pomenuta paketa u funkcionalnu celinu. To su paketi logike aplikacije i usluni paket. O sastavu paketa logike aplikacije bilo je ve rei u poglavlju o izradi potpunih dijagrama klasa, dok u uslunom paketu nalaze klase koje su zaduene za apstrakciju rezultata pretrage, izvetaja itd... Na sledeoj slici prikazan je sadrzaj uslunog paketa.
110
alempije@beotel.rs
alempije@beotel.rs
111
112
alempije@beotel.rs
podataka u RationalRous-u dobijen postupkom reverznog inzinjeringa iz skript fajla generisanog u Erwin-u.
RAZDUZEN invbr: Character(20) ClanID: Character(6) datumzad: Date datumrazd: Date IZDAVAC IizdavacID: Numeric izdavac: Character(20) SMER SmerID: Numeric Smer: Character(20)
G ODINA
GodinaID: Numeric SmerID: Numeric Godina: Character(20)
NASLO V
invbr: Character(20) IizdavacID: Numeric JezikID: Numeric udk: Character(20) naslov: Character(20) podnaslov: Character(20) autor1: Character(20) autor2: Character(20) autor3: Character(20) godina: Numeric brprimerak: Numeric signatura: Character(20) datumunosa: Date format: Numeric ilustracij: Character(18) brstrana: Numeric izdanje: Character(20)
ZADUZENJ invbr: Character(20) ClanID: Character(6) datzaduzen: Date rok: Date REZERVAC invbr: Character(20) ClanID: Character(6) datum: Date
CLAN
ClanID: Character(6) jmbg: Numeric ime: Character(20) prezime: Character(20) telefon: Character(20)
IZDAVAC Iizdav acID : INT izdav ac : VARCH AR (20) 1 <<Non-Identif y ing>> 0..*
<<Identif y ing>> RAZDUZENJ E inv br : VARCHAR(20) C lanID : CHAR(6) dat um zad : DATETIME dat um razd : DATETI ME 0..* SMER Sm erID : INT Sm er : VARC HAR(20) <<Identif y ing>> 1 0..* GODINA GodinaI D : I NT Sm erID : I NT Godina : VAR CHAR(20) 1
<<Identif y ing>> 0..* 0. .* 1 <<Identif y ing>> NASLOV inv br : VARC HAR(20) Iizdav acID : INT Jezik ID : INT udk : VARCHAR(20) naslov : VAR CHAR(20) podnaslov : VARCH AR (20) autor1 : VARCH AR(20) autor2 : VARCH AR(20) autor3 : VARCH AR(20) godina : INT brprimerak a : IN T signat ura : VARCHAR(20) datumunosa : DATETIME f ormat : INT ilus tracija : CH AR(18) brstrana : IN T izdanje : VAR CHAR(20) 0..* ZADUZENJ E 1 <<Identif y ing>> 0. .* 1 1 <<Identif y ing>> 1 <<Identif y ing>> 0..* REZERVACIJA <<Identif y ing>> inv br : VARCHAR(20) ClanID : CHAR(6) dat um : D ATETIME <<Identif y ing>> 0..* <<Identif y ing>> 0. .1 0. .* inv br : VARCHAR(20) ClanID : CHAR(6) datzaduzenja : DATETI ME rok : DATETIME <<I dentif y ing>> 0..* 1 CLAN ClanI D : CHAR(6) jmbg : I NT ime : VARCH AR(20) prezim e : VARCH AR (20) telef on : VAR CHAR(20) 1 1 1 1 <<Non-Identif y ing>>
1 <<Identif y ing>>
1 <<Identif y ing>> 0..* 0. .1 0. .* SS SsID : INT Strucna_s prema : VARCHAR(20) 0..1 0.. * ZAPOSLEN ClanID : CHAR(6) SsID : INT RadnomestoID : INT 0. .* 1 <<Non-Identif y ing>> 1
<<Non-Ident if y ing>> DESKRIPTOR inv br : VARCHAR(20) deskriptor : VARCHAR(20) OPOMENA inv br : VARCHAR(20) ClanID : CHAR(6) broj : INT datum : D ATETIME 0..1 <<Non-Identif y ing>> VANREDNI USTANOVA Us tanov aI D : IN T ustanov a : VARC HAR(20) 1 0..* ClanID : CHAR(6) Us tanov aID : IN T 0. .1
<<Non-Ident if y ing>>
alempije@beotel.rs
113
Svi koncepti do kojih se dolo kroz objektno orjentisan razvoj u potpunosti su ugraeni u reenja korisnikog interfejsa i logike aplikacije, bez obzira na raspored komandi na maskama. Pre nego to se daju stavke glavnog menija aplikacije, idui redom od poetka startovanja programa, prvo se nailazi na dijalog za autenfikaciju korisnika aplikacije. Radi se o tome da je u aplikaciju ugraen svojevrstan sistem zatite koji onemoguava rad sa aplikacijom korisniku koji za to nema ovlaenja. Svi zaposleni u biblioteci koj rade na sitemu imaju svoje korisniko ime i odgovarajuu lozinku. Postoje dve kategorije korisnikih naloga za rad na aplikaciji. Uslovno su nazvani administratorski i obini. Administratorski u odnosu na obian nalog ima mogunost backup-ovanja podataka i administriranje svih korisnikih naloga i ifarnika baze podataka. Ograniavanje ovih funkcija samo na odreenu kategoriju naloga bilo je neophodno kako bi se izbegle sve neeljene posledice samovoljnog unoenja podataka iz domena ifarnika. Pomenuto je i administriranje korisnikih naloga. Ono se obavalja u formama posebno namenjenim toj funkciji a za sada treba rei da je mogue dodavanje novih, brisanje i promena postojeih naloga (promena ifre). Mora se uneti korisniko ime i lozinka imajui u vidu velika i mala slova. Naime, nije isto da li je za lozinku ukucano "E" ili "e". Sledea forma u koju se ulazi ( ako je lozinka i korisnko ime ispravno)je forma glavnog menija aplikacije koja sadri sledee opcije:
Cirkulacija Zaduzivanje Razduzivanje Opomena Rezervacija Pretrazivanje Autor Naslov Izdavac Jezik Datum Signatura Deskriptor UDK Inventarski broj Korisnici Upis Ispis Pregeled
Knjige Evidencija Zavodjenje Rashodovanje Stanje Kataloski listic Nalepnice Izvestaji po Korisnicima po Knjigama Prinovljenih knjiga Godisnji Periodicni Materijalno MP20 VB-15
Opcije Novo nalog Izmene Promeni lozinku Izloguj se Sifarnici Smer Godina Strucna sprema Izdavac Radno mesto Ustanova Jezika UDK oblasti Dopune podataka O autoru Backup Export Import Kraj
Slika 6.45. Izgled menija Iz ove forme se ulazi u sve ostale forme aplikacije, putem komandi iz menija u vrhu prozora. Sada se vidi mala reorganizacija funkcija podsistema u odnosu na stablo aktivnosti koje je dato u poglavlju definisanja korisnikih zahteva, Tako postavljen meni je u funkciji efikasnijeg rada korisnika sa aplikacijom. Naime, korisno je imati sve operacije vezane za knjigu ili korisnika (iako
114
alempije@beotel.rs
je evidencija korisnika u dijagramima sluaja upotrebe bila svrstana u cirkulaciju) odvojene na jednom mestu, pogotovu to je takva organizacija menija bila prisutna i u prethodnom reenju. U daljem izlaganju bie date opcije stavki glavnog menija. Imena tih opcija dovoljno plastino opisuju njihovu funkcionalnost, za neke kod kojih ona nije oigledna dae se i tekstualni opis. Pritisak kursorom mia na ove opcije otvara odgovarajue forme na kojima se ostvaruje funkcionalnost podsistema. Stavka backup-a ima opcije export-a i import-a, koje otvaraju odgovarajue dijaloge za import i export podataka u podsistem. Posebno je interesantan sadraj stavke imena Opcije. Tu se administriraju korisnici aplikacije, otvaraju novi nalazi i promenjuju postojei. Zatim se mogu aurirati sadraj ifarnika koji se nalaze u podsistemu (slubi, ustanova, klasa, inova, izdavaa, jedinica). Takoe tu se mogu dopunjavati podaci o naslovima i lanovima biblioteke. Izvetavati se moe po korisnicima i po knjigama. Novina je izvetaj o knjigama koje su zavedene u biblioteci i to godinji i periodini (za zadati vremenski interval). U skladu sa postavljenim korisnikim zahtevima dodata je i stavka materijalno kojom se moe doi do dva dokumenta koji se vode za naslove iz bibliotekog fonda (materijalni list -MP 20 i karton bibliotekog materijala-VB15). Stavke glavnog menija, kao to su cirkulacija, korisnici, knjige i pretraivanje su opcije iz sadraja stavki u punoj funkciji i nesmetano se izvode. Recimo mogue je pretraiti naslov po deskriptoru, ali je i dodato pretraivanje po udk broju, kojim se mogu pronai svi naslovi iz odreene oblasti ljudskog stvaralatva i odreene tematike. Slede izgledi konkretnih formi koje se otvaraju izborom odgovarajuih opcija iz stavki menija, onim redom kako su date i u aplikaciji. Zbog obimnosti aplikacije priazae se samo elementi zaduivanja i forma knjige. Definisanje zaduivanja Pritiskom komande zaduivanja u stavci cirkulacija glavnog menija otvara se sledei dijalog izbora kriterijuma pretraivanja naslova biblioteke (prethodi samom pretraivanju i zaduivanju). Pretraivanje se moe izvoditi izborom opcije: Autor, Naslov, Izdavac, Jezik, Datum, Signatura, Deskriptor, UDK i Inventarski broj. Vano je rei da e se ova forma pojavljivati i pre nekih drugih formi vezanih za naslove, jer je potrebno pronai naslov za koji se radi izvetaj, pravi pregled, kataloki listi, nalepnica ili rezervacija. Ukupno ima devet kriterijuma i svi su operativni, a izbor se vri jednostavnim ekiranjem nekog od kriterijuma. Istovremeno je mogue izabrati samo jedan kriterijum pretrage. U konkretnom primeru uzeto je da je izabran kriterijum pretrage po jeziku. Sledi izgled forme korisnikog interfejsa koji se otvara pritiskom na dugme dalje, u zavisnosti od izabranog kriterijuma.
alempije@beotel.rs
115
Slika 6.46. Forma izbora jezika po kojem se pretrauje naslov S obzirom da smo izabrali kriterijum pretraivanja po jeziku na sledeoj formi se pojavljuje element klase combobox koji vue vrednosti naziva jezika iz tabele ifarnika jezika. Auriranjem ifarnika jezika menjae se i broj i sadraj stavki combobox-a. Izabrani jezik se prenosi na donju tekst kontrolu. Na formi postoje i dve kontrole. To je dugme izai kojim se ponovo odustaje od pretraivanja. Dugme pretrai odpoinje pretragu tabele naslova za svim onim koji su napisani na srpskom jeziku. Rezultat pretrage e biti dat na sledeoj formi i to e biti svi naslovi koji su ranije oznaavani kao dela na hrvatskom i srpskohrvatskom jeziku. Forma rezultat pretrage koja se pojavljuje je najea pojava u radu sa aplikacijom BibIS 1.0. Njeno pojavljivanje moe biti i rezultat nekih drugih akcija kao to je komanda rezervacije, pregleda stanja naslova, tampanja nalepnice i katalokog listia. Stavljanjem vie ovakvih kontroli, koje se sve definiu nad primerkom klase naslova, na jednu formu tedi prostor, skrauje vreme u pristupu svim podacima vezanim za jedan naslov. Korisno je imati mogunost obavljanjana jednom mestu vie operacija nad naslovom, Na levoj strani maske se nalaze podaci vezani za naslov dok su sa desne strane podaci vezani za lana biblioteke koji dui primerak naslova (ako je naslov zaduen). Sluaj koji je i ovde prisutan (da je rezultat pretrage vie naslova), da ima vie naslova na srpskom jeziku, rezultuje pojavljivanjem broja takvih naslova u status baru. Uz pomo odgovarajuih kontrola mogue je kretati se po skupu pretraenih naslova. U zavisnosti od trenutnog naslova se menja i sadraj desnog dela ekrana. U status baru, u njegovom desnom delu, se nalazi i podatak o broju lanova koji due primerke takvog naslova, ako i njih ima vie od jednog mogue je i kretati se po skupu lanova koji due trenutni naslov (kontrole kojima se to ostvaruje su dugmad pre.lan i sle.lan).
116
alempije@beotel.rs
Slika 6.48.Forma zaduivanja trenutnog naslova U zavisnost da li je izabrano zaduivanje, rashodovanje naslova, rezervisanje, tampanje nalepnice ili katalokog listia neki od dugmia koji i nose imena ovih operacija nad instancom klase naslova e biti dostupni a neki ne. Ako je broj slobodnih primeraka vei od nula dugme zadui e reagovati na dogaaj pritiska, u protivnom je mogue samo rezevisanje naslova. U konkretnom sluaju svi primerci naslova su slobodni pa je mogue zaduiti trenutni naslov. Pritisak na taster zadui otvara sledei dijalog zaduenja. Ovde se ostvaruje koncept postavljen u toku faze dizajna, koji glasi : zaduuje se primerak, a rezervie se naslov. lan koji zaduuje naslov se identifikje preko matinog broja i samo ako se pronae lan za zadati JMBG aktivirae se dugme zadui. No pre toga, ako se radi o naslovu koji ima vie od jednog primerka u odgovarajuem combobox-u valja izabrati neki od slobodnih primeraka. Od kontrola vezanih za ovu funkciju mogue je jo i odustati od zaduivanja naslova kao i izvriti ponovni unos u sluaju greke.
alempije@beotel.rs
117
Forme knjige U stavci knjiga mogue je pogledati stanje naslova, tampati nalepnicu naslova i kataloki listi, te rashodovati postojei naslov. U sluaju izbora neke od tih opcija redosled otvaranja formi je istovetan onom kod zaduivanja ili rezervisanja naslova. Dakle, prvo se bira kriterijum pretraivanja, pa se unose vrednosti upita za izabrani kriterijum, a nad dobijenim rezultatima pretrage vre se odgovarajue operacije. Jedinu razliku u odnosu na ovakvo ponaanje predstavlja unoenje podataka novopristiglog naslova u biblioteku, koje otpoinje izborom opcije evidencija/zavoenje iz stavke knjiga glavnog menija aplikacije.
Slika 6.49. Forma zavoenja novog naslova Dizajn i ogranienja vezani za unos podataka novog naslova spreavaju nepravlnosti u voenju podataka naslova. do kojih je ranije dolazilo. Postavljanjem zabrane unosa null podataka za veinu kljunih polja entiteta naslova, izbegava se sluaj nemogunosti pretraivanja ili zaduivanja i rezervisanja naslova. U ranijem podsistemu od neto preko 10.000 naslova u bibliotekog fonda, preko 1500 njih nije imalo inventarni broj, to je nedopustivo jer se radi o primarnom kljuu po kojem se formiraju zaduenja, rezervacije i pretrauje naslov. Jedina dva polja koja su neobavezna su polja podnaslova i koautora naslova. Pri unosu je nemogue uneti naslov inventarnog broja ili signature koja ve postoji. Neki podaci kao to je UDK broj se vuku iz odgovarajueg ifarnika, kretanjem po hijerarhijskom stablu udk oblasti na nain kako je to opisano u formi zadavnja upita po udk broju. Od ostalih komandi obezbeene su jo uobiajne komande za izlazak iz forme i ponovni unos u sluaju greke. Zatim je tu komanda deskriptor koja otvara formu za unos deskriptora tekueg naslova ije se ime ispisuje u gornjem levom uglu.
118
alempije@beotel.rs
UDKOB LAST udk : S tring naziv oblas t : S tring Class _Initialize() Class _Terminat e() Razgranaj() Obrisi()
Slika 6.51. Mapiranje klase UDKOBLAST u izvorni kod
alempije@beotel.rs
119
120
alempije@beotel.rs
IZDAV AC idizdav aca : Int eger izdav ac : S tring Class_Init ialize() Class_Terminate() Izlistaj()
Slika 6.53.Mapiranje klase IZDAVAC u izvorni kod
CLA N jmbg : String ime : St ring prezime : String telefon : St ring Class_Initialize() Class_Terminat e() Upisi() Ispisi() Izlistaj() Azuriraj() St ampaj()
alempije@beotel.rs
121
122
alempije@beotel.rs
RAZDUZENJE datum zad : Date datum razd : Date Clas s _Initial ize() Clas s _Term inate() Pretraz i () Azuri raj ()
OPOMENA broj : Integer dat um : Date Class_Initialize() Class_Terminate() Pretrazi() Stampaj() A zuriraj()
Slika 6.58. Mapiranje klase OPOMENA u izvorni kod
alempije@beotel.rs
123
Definisanje tehnologije
U pogledu izbora tehnologije bilo je najmanje dvoumljenja, jednostavno je vreme samo nametnulo svoje reenje. Radi se o izboru troslojne arhitekture o kojoj je ranije bilo dosta rei. Troslojna arhitektura je zajednika za informacione sisteme koji ukljuuju korisniki interfejs i postojano skladite podataka. Uobiajan opis vertikalnih slojeva je: Prezentacija- prozori, izvetaji, i.t.d. Logika aplikacije- zadaci i pravila upravljanja procesima Skladite- postojani mehanizam skladitenja. Posebna prednost troslojne arhitekture je razdvajanje logike aplikacije u logiki poseban srednji sloj softvera. Sloj prezentacije je relativno osloboen od poslova aplikacije; prozori prosleuju zahteve zadataka srednjem sloju. Srednji sloj komunicira sa poslednjim slojem skladita. Koncept troslojne arhitekture aplikacije razdvaja razliite komponente sistema u tri sloja usluga: sloj prezentacije, sloj procesiranja i druge srednje slojeve, i sloj podataka.
Prezentacija
Logika aplikacije
Skladiste
Slika 6.59. Troslojna arhitektura Ovakava arhitektura se razlikuje od dvoslojnog dizajna, u kojem je primera radi, logika aplikacije smetena u definiciji prozora, koji ita i upisuje direktno u bazu podataka; ne postoji nikakav srednji sloj koji izdvaja logiku aplikacije. Nedostatak dvoslojne arhitekture je nemogunost da se logika aplikacije predstavi u odvojenim komponentama, to povlai za sobom nemogunost ponovnog korienja koda. Takoe nije mogue distribuirati aplikaciju izmeu odvojenih raunara. Kod troslojne arhitekture je to mogue i odvajanjem sloja prezentacije od sloja skladitenja se postiglo to da nije bitno u kom se alatu realizuju interfejsi i kojem sistemu za upravljanje bazom podataka se pristupa. Tako je mogue raditi korisnike interfejse u Delphi-ju koji e koristiti podatke iz jedne tako ozbiljne baze kao to je Oracle-ova.
Prezentacija
Skladiste
Interfejs klase
Cirkulacija
Obrada
Slika 6.60. Dalje dekomponovanje troslojne arhitekture Kada se gleda ovako dekomponovan sloj logike aplikacije moe se rei da se vie ne radi o troslojnoj ve o vieslojnoj arhitekturi. Mogue je ak vriti dalju dekompoziciju, na primer, na nie servise (itanje i upisivanje u datoteku) i vie servise (izrada izvetaja). Troslojna logika arhitektura moe biti fiziki razvijena u razlitim oblicima: Slojevi prezentacije i logike aplikacije su na klijent raunaru, skladite je na serveru. Prezentacija je na klijent raunaru, logika aplikacije je na serveru aplikacije, a skladite na odvojenom serveru podataka. Opredeljenje u konkretnom problemu je za prvu od dve gore navedene opcije, jer ona obezbeuje zadovoljavajue rezultate uz manje ulaganje. Sa poveanjem upotrebe programskih jezika i tehnologija koje sa lakoom podravaju distribuiranu obradu, kao to je Java, i razvoj podsistema e isto tako biti sve vie distribuiran. Razlozi za uvoenje vieslojne arhitekture su: Izdvajanje logike aplikacije u odvojene komponente koje se kasnije ponovo mogu koristiti u drugim sistemima. Distribucija slojeva na razliite fizike raunarske vorove. Ovo moe da pobolja perfomanse i povea kordinaciju i deljenje informacija u klijent-server sistemu. Rasporeivanje programera na razvoj odreenih slojeva, kao to je timski rad na sloju prezentacije. To podrava specijalizaciju u smislu razvojnih vetina, i mogunost paralelnog timskog rada.
alempije@beotel.rs
125
Nakon svega navedenog ne bi trebalo da ima sumnje u opredeljenju za troslojnu arhitekturu, pogotovu kada se zna da je ona u dananje vreme postala gotovo standard. Nezavisnost korisnikog interfejsa od sistema za upravljanje bazama podataka, koji implementira postojano skladite podataka, je jednostavno nezamenljiva.
<<RES>> R esursi Paket datoteka "*.dfm" Paketi komponenti Delphija Paket datoteka "*.dcu"
Sv akoj formi u D elphi okruzenju pridruzena je jedna datoteka sa opisom izgleda forme
126
alempije@beotel.rs
Slika 6.61. Osnovni komponentni dijagram Kao to se moe naslutiti iz priloenog komponentnog dijagrama, izabrano razvojno okruenje aplikacije je Delphi. To je kompajler firme Borland koji implementira objektno-orjentisan Pascal. Izvorini kod takvog alata uva se u datotekama tipa "*.PAS", koje odgovaraju datotekama "*.CPP" u jeziku C++. Svaka klasa u objektno orjentisanom Pascal-u ima svoju datoteku tipa "*.PAS". One su smetene u odgovarajuem paketu na dijagramu na slici gore. Za svaku od tih datoteka ( koje praktino predstavljaju klase formi Delphi aplikacije)izvoriog postoje jo po dve datoteke koje je prate. To su datoteke tipa "*.DFM" i datoteke tipa "*.DCU". Datoteke "*.DFM" ( Delphi Forms ) sadre parametre koji odreuju spoljni, ekranski izgled svake forme- visina, irina, boja, pozicija... Datoteke "*.DCU"(Delphi Compiled Unit) predstavljaju rezultat prevoenja datoteka izvorinog koda- ekstenzije "*.PAS". One su paralela datotekama tipa "*.OBJ" u jeziku C++. Jedna softverska komponenta, jedan fajl, koji ih povezuje je izvrni fajl radnog naziva Bibis.exe, opisan stereotipom <<EXE>>. Sve ove komponente na dijagramu su meusobno povezane vezama zavisnosti. Semantika ovih veza je sledea: Svaka promena na fajlu (softverskoj komponenti) ili njeno nepostojanje uticae na izgled komponente koje zavisi od nje. Na ovom primeru to bi izgledalo ovako. Svaka promena na kodu izvorinog fajla tipa "*.PAS" uzrokovae primene u odgovarajuoj datoteci tipa "*.DCU". Isto tako ako nema izvorine datoteke nama ni njenog prevedenog oblika u binarnom zapisu. Pored pomenutih komponenti i paketa komponenti na dijagramu se nalazi i paket komponenti Delphi-ja, koje su ugraene u alat ali bez njih nema valjanog prevoenja izvorinog koda to se i da videti na dijagramu. Zavisnost vai samo ako je komponenta iz paketa koriena u izradi aplikaciji.
<<BPL>> dcldb40 <<BPL>> dclint40 <<BPL>> dclusr <<BPL>> DBWEBXPRT40
<<BPL>> dcldss40
<<BPL>> dclsmp40
<<BPL>> dcl3iw40
<<BPL>> NMFAST40
<<BPL>> ibevent40
<<BPL>> dclocx40
Paketi za barkod
<<BPL>> dclnet40
<<BPL>> dclstd40
<<BPL>> dclqrt40
<<BPL>> frmhelp
<<BPL>> dclmid40
<<BPL>> dcltee40
<<BPL>> Gen_Pack
Slika 6.62. Komponente Delphi okruenja Kao to se da videti radi se o velikom broju komponenti i naravno da nisu sve koriene za problem koji se ovde razmatra. Radi se o datotekama tipa "*.BPL"- Borland Package Library. Od nestandardnih komponenti Delphi okruenja istie se paket komponenti za podrku rada sa bar kodom. One su neophodne s obzirom na specifikaciju korisnikih zahteva da budui podsistem integrie u sebi i predstavljanje matinog broja CLANa i inventarnog broja knjige linjskim kodom. Pored svih pomenutih komponenti vidi se da komponenta Bibis zavisi i od komponete na slici 54. nazvane resursi, koja je zapravo jedna datoteka tipa "*.RES" i usebi uva podatke o resursima koje koristi aplikacija. Podrazumevano u toj datoteci se nalazi podatak o ikonici projekta, a runo se mogu dodati i drugi resursi , kao to su recimo korieni fontovi. Tako e aplikacija koristiti iste
alempije@beotel.rs
127
fontove na kojem god raunaru da se instalira i bez obzira da li na njemu postoje takvi fontovi. Sad e na sledeoj slici biti dat malo komplikovaniji komponentni dijagram sa prikazom zavisnosti datoteka izvorinog koda. Na dijagramu se istie komponenta datoteke " Glavni meni.pas" koja zavisi od velikog broja drugih komponenti. Znaenje ovih veza je da svaka izmena u nekoj od komponenti menja funkcionisanje komponente "Glavni meni.pas".
<<PA S>> Zaduzivanje <<PA S>> Rezultat pretrage <<P AS>> Nalepnica <<PAS>> Zbirna pretraga <<PAS>> Upis clana <<PA S>> UDK <<PAS>> Podaci <<PAS >> Kategorija clana
<<PAS>> Uvodna
<<PAS>> P romena lozinke i priv ilegija <<PA S>> Spisak nal oga
alempije@beotel.rs
bi se realizovala standardnim TCP/IP mrenim protokolom. U cilju optimizacije perfomansi mree veina rutina bi se nalazila na serveru i tu se izvravala. Svakako da realizacija ovakvog okruenja iziskuje izdvajanje izvesnih materijalnih sredstava. Dijagram razvoja je zapravo graf iji su vorovi hardverski ureaji sitema. Veza izmeu pojedinih vorova grafa predstavlja direktnu konekciju dva hardverska sklopa u sistemu. Na sledeoj slici je dat izgled mogue hardverske strukture podsistema bibliotekog poslovanja.
1 1 1 paralelna veza Server Operater STAMPAC
TCP/IP *
Klijent
Slika 6.64. Dijagram razmetaja Dakle, mogue reenje bi bilo postojanje jednog raunara servera na kojem bi se uvali podaci i vie raunara klijenata na kojima bi se obavljali korisniki servisi nad podacima. Veza ka serveru bi se ostvarivala TCP/IP mrenim protokolom. Kako bi se server oslobodio bilo kakvog rada u odnosu na dijagram razmetaja iz poglavlja definisanja zahteva dodat je i jedan vor u vidu raunara operatera na kojem bi radili zaposleni u biblioteci. Naime klijenti su namenjeni CLANovima biblioteke odakle bi se mogli pretraivati naslovi i vriti rezervacije. sve ostale funkcije, kao to je vie puta naglaeno, mogli bi da vre zaposleni u biblioteci preko raunaraoperatera. Na raunar-operater je povezan paralelnom vezom tampa preko kojeg bi zaposleni tampali odgovarajue nalepnice CLANa, naslova, kataloke listie, dokumenta materijalnog knjigovodstava i razne izvetaje. Zapaa se da je pored veza vorova grafa data i kardinalnost veza. Svakako da je server jedan i samo jedan, raunara klijenata je vie( ali bi mogao biti i jedan) dok je operater jedan. Naravno, s obzirom da u biblioteci ima vie zaposlenih (troje) ostavlja se mogunost da ih bude i vie, ali se postavlja pitanje ekonomske opravdanosti takvog ulaganja kada se uzme u obzir dnevni protok CLANova i naslova kroz biblioteku. Treba ipak istai da je dijagram sa slike gore, nepotpun u smislu to predstavlja ogoljen hardver bez podataka o softveru koji se na njemu izvrava. Taj nedostatak e se pokuati otkloniti slikom koja sledi.
alempije@beotel.rs
129
paralelna veza 1
BIBKlijent KLIJENT
STAMPAC
Slika 6.65. Dijagram razmetaja sa odgovarajui softverskim komponentama U pogledu hardveske strukture dijagrama na nije pretrpeo nikakve izmene. Novinu predstavljaju softverske kompnente koje su na vorovima grafa hardverske strukture an kojima se izvravaju. Razlikuju se softverske komponente operativnog sistema i aplikacije. U pogledu operativnog sistema izbor je pao na WindowsNT firme Microsoft za rad u mrenom okruenju. Taj operativni sitem je sa jedne strane dovoljno komercijalan da bi bio pristupaan, a sa druge strane sasvim solidno ispunjava bezbedonosne zahteve kakve moe imati rad u mrenom okruenju. Naravno na serveru e biti instalirana server verzija ovog operativnog sistema, dok e na klijentima i operateru biti instaliran WindowsNT for Workstations. Baza podataka se nalazi na serveru. Aplikacija bibliotekog podsistema se u punom obimu izvrava na raunaru-operateru gde administriranje vre zaposleni u biblioteci . Na raunarima klijentima izvravao bi se modul aplikacije koji je ovde uslovno nazvan BibKlijent, a koji bi u skladu sa svim napred izreenim mogao da vri samo pretraivanje naslova i rezervisanje. Mrena arhitektura podsistema bibliotekog poslovanja je tako projektovana da uzima u obzir ekstremnu udaljenost pojedinih objekata u okviru.
130
alempije@beotel.rs
Zakljuak
Da bi rad u novom okruenju bio mogu neophodno je da zaposleni u biblioteci pomou odgovarajue opcije u stavkama glavnog menija dopune podatke za naslove koji do sada nisu voeni, kao i odgovarajue ifarnike. Pravci u kojima treba da se kreu eventualna budua poboljanja su proirivanje fonda sa informatikom evidencijom asopisa (isto kao to je uinjeno za naslove), zatim ako to bude svrsishodno i razmotriti mogunosti primene Web tehnologija u cilju ostvarivanja bolje saradnje sa bibliotekama akademskih ustanova u inostranstvu.
Literatura
1 Veljovi A. Objektno modeliranje informacionih sistema, Fakultet za poslovne studije, MEGATREND Univerzitet, 2003. godina 2. Veljovi A. Praktikum iz analize informacionih sistema, Fakultet za poslovne studije, MEGATREND Univerzitet, 2005. godina 3. Veljovi A. Objektni pristup razvoju informacionih sistema i baze podataka, VTA Beograd, 2002. godina.
alempije@beotel.rs
131