Baze podataka Metodologije projektovanja IS
Analiza i projektovanje IS Analiza i projektovanje: Definicija sistemskih parametara i radnih procesa Konceptualni model baze podataka Šema baze podataka Modeli životnog ciklusa: Model vodopada Iterativni (spiralni) model
Pristup razvoju IS Tehnika vodopada (waterfall) Sistemska analiza (Analiza zahteva) waterfall (Projektovanje, planiranje i analiza troškova) Sistemski dizajn waterfall Izgradnja i testiranje sistema waterfall Uvođenje u upotreu sistema waterfall Održavanje produktivnosti sistema waterfall
Tehnika vodopada Aktivnosti detektovane u modelu vodopada su potpuno ispravne Izostavljanje bilo koje od njih može dovesti do katastrofe Problem je linearnost modela vodopada Nije moguće vraćanje na određenu fazu nakon njenog završetka
Iterativna tehnika Inicijalno istraživanje Pristup razvoju IS Provera/revizija Studija izvodljivosti Implementacija SSA Generalin dizajn sistema Detaljan dizajn sistema
Pristup razvoju IS Prednosti iterativnog pristupa Sistem se brzo uvodi u korišćenje (postizanjem samo osnovnih funkcionalnosti) Vrši se dogradnja i prilagođavanje potrebama konkretnih korisnika Proces razvoja nije završen kada se informacioni sistem uvede u upotrebu nastavlja se dodavanjem novih softverskih modula, osavremenjavanjem postojećih funkcionalnosti Razvoj sistema traje dok je sistem živ
Prikupljanje i analiza zahteva Prikupljanje i analizu informacija o okruženju za čije potrebe se baza razvija. Informacije se prikupljaju za sve glavne funkcije i oblasti primene. Na osnovu analize prikupljenih podataka kreira se dokument koji se naziva specifikacija zahteva iz njega proizilazi funkcionalnost baze podataka. Postoji nekoliko uobičajenih tehnika za prikupljanje informacija relevantnih za razvoj: 1. Proučavanje dokumentacije 2. Intervjuisanje 3. Posmatranje rada u okruženju za čije potrebe se razvija baza 4. Istraživanje 5. Upitnici
SSA Strukturna sistemska analiza (SSA) Savremen pristup procesu razvoja poslovnih informacionih sistema Potpuna metodologija za specifikaciju IS Metodologija za specifikaciju IS, tj. softvera Projektovanje softvera Logička struktura BP (modelovanje) Dekompozicija sistema na podsisteme Analiza tokova podataka u sistemu, određivanje ključnih entiteta u sistemu i njihovih atributa i entiteta van sistema s kojima on komunicira Polazna osnova za strukturno projektovanje programa
Obuhvata: Funkcionalnu dekompoziciju sistema Dijagrame tokova podataka Rečnik podataka Model objekti-veze (MOV) SSA
Funkcionalna dekompozicija Jackson-ovi dijagrami odgovaraju procesima u DTP Funkcije su selektivne Inform.sist.spolj.trg.preduz Naziv IS koji se analizira 1.nabavka 2.carinjenje 3.prodaja 4.plaćanje
Funkcionalna dekompozicija Osnovne funkcije su najčešće selektivne Mogu se dekomponovati Završetak dekompozicije kada se dobiju elementarne funkcije (primitive) Primitive dalje se mogu dekomponovati na konkretne naredbe Ciljni programski kod Pseudo kod
3.prodaja <> Funkcionalna dekompozicija Dekompozicija poslovne funkcije prodaja Sekvencijalni proces Selektivni proces 3.1.veleprodaja <> 3.2.maloprodaja [] 3.1.1.ugovaranje [] 3.1.2.otprema [] 3.2.1.generisanje računa kupcu 3.2.2.prijem uplate kupca 3.1.1.1.unos naloga kupca 3.1.2.1.generisanje faktura kup. 3.1.1.2.generisanje ugovora kupca 3.1.2.2.generisanje otpremnice kup. Primitive
Funkcionalna dekompozicija Pravila Selektivni procesi na dijagramima se označavaju se znacima <>, Sekvencijalni procesi se označavaju znacima [ ]. Vrši se numeracija funkcija Funkcionalni dijagrami se ne bave podacima Ističu važnost i kompleksnost pojedinih poslova
DTP Dijagrami tokova podataka - DTP Opisuju protok informacija u sistemu Prirodan nastavak funkcionalne analize DTP se sastoje od četiri vrste elemenata: Interfejsi Procesi Tokovi podataka Skladišta podataka
Grafički simboli DTP Funkcija ili proces obrade podataka Interfejs Tok podataka Skladište podataka
DTP Struktura DTP SPOLJNJI OBJEKAT 1 TOK_PODATAKA_1 TOK_PODATAKA_2 TOK_PODATAKA_3 PROCES A PROCES A TOK_PODATAKA_7 SPOLJNJI OBJEKAT 2 PROCES B PROCES B TOK_PODATAKA_4 TOK_PODATAKA_5 TOK_PODATAKA_6 SKLADISTE_PODATKA
DTP Interfejsi Predstavljaju entitete (objekte) iz realnog sveta koji okružuje sistem. To mogu biti Osobe koje se nalaze u određenoj ulozi u odnosu na sistem (npr. pacijent, nastavnik, student, kupac, dobavljač...), Organizacije (banka, hotel, škola, carina...) Sistem koji nudi neki servis za posmatrani IS (SMS servis, e-banking servis, čitač smart kartica, tržište nekretnina...)
DTP Interfejsi To su objekti izvan analiziranog sistema, koji interaguju (razmenjuju podatke) sa sistemom. U toku dekomponovanja DTP, interfejsi moraju ostati konzistentni oni se ne menjaju, niti dekomponuju. Prikazuju se pravougaonikom i nazivom Isti interfejs se može pojaviti više puta Nisu bitna fizička lica ili organizacije već njihove uloge Dobavljač Izdavač oglasa Vlasnik nekretnine
DTP Procesi Odgovaraju funkcijama SSA Svaki proces predstavlja neku specifičnu poslovnu aktivnost. Interfejsi interaguju sa sistemom posredstvom procesa. Mogu da predstavljaju: neku automatsku obradu podataka (generisanje izveštaja, računa,...) Manuelnu aktivnost (nabavka, isporuka, proizvodnja, učlanjivanje, izdavanje knjige...)
DTP Procesi Označavaju se krugom ili elipsom Numerišu se kao kod funkcionalnih dijagrama Nije dozvoljeno praviti kopije procesa na istom DTP Dekomponuju se Treba da u potpunosti odgovaraju dijagramima funkcionalne dekompozicije 1.1 Ponuda 2. Ugovaranje 2. Ugovaranje
DTP Dekompozicija poslovnih procesa 1. Nabavka 1. Nabavka 0. nivo dekompozicije 1.1 Obrada kataloga dobavljača 1.2 Naručivanje 1.3 Prijem robe 1. nivo dekompozicije 2. nivo dekompozicije 1.3.1 Evidencija otpremnice dobavljača 1.3.2 Evidencija fakture dobavljača 1.3.3 Generisanje prijemnice za skladištenje
DTP Nakon dekompozicije osnovni proces se dalje ne pojavljuje, već samo njegovi podprocesi Dekompozicija odgovara funkcionalnoj dekompoziciji Završava se kada se dođe do sekvencijalnih poslovnih procesa Izvršavaju se po unapred utvrđenom redosledu
DTP Tokovi podataka Predstavljaju interakciju između interfejsa i procesa u sistemu Moraju biti imenovani Imaju statičku prirodu ne opisuju redosled Obavezno su usmereni smer toka podataka Interni TP se neimenuju (njihova struktura je definisana kroz spoljne tokove) PRIJAVA_ZA_UPIS Narudzbenica
PRIJAVA_ZA_UPIS DTP UPISNINA Primer TP CLANSKA_KARTA 1. UPIS CITAOCI Namena internih TP isticanje gde se skladište podaci i gde se generišu izlazni podaci za interfejse CITALAC REVERS RAZDUZIVANJE ZAHTEV_ZA_PROD_ROKA_ZAD OPOMENA 2. IZNAJMLJIVANJE_VRACANJE _KNJIGE ZADUZENJA LISNI_KATALOG PARAMETRI_PRETRAGE REZULTATI_PRETRAZIVANJA 3. PRETRAZIVANJE_KATALOGA
DTP Skladišta podataka Predstavljaju elemente sistema u kojima se podaci čuvaju Ističe grupisanje podataka Imena skladišta su obično množine imenica entiteta Skladište podataka ne predstavlja bazu podataka, niti tabelu u bazi STUDENTI SK_REZERVACIJE
DTP Interfejsi interaguju sa skladištem preko procesa Carina Carinska faktura Carina Carinska faktura Carinjenje Carinska faktura Carinska faktura
DTP Interfejsi interaguju sa skladištem preko procesa Pacijent Zahtev_za_pregled Pacijent Slobodni_termini Zahtev_za_pregled Slobodni_termini Zakazivanje pregleda Pregledi Pregledi
Kontekstualni dijagrami Sa njima započinje modelovanje poslovnih procesa Celokupan sistem je prikazan kao jedan proces - crna kutija Osnovni zadatak je definisanje svih interfejsa sa kojima sistem komunicira, kao i tokova podataka koji čine tu komunikaciju DTP
Primer BIBLIOTEKAR DTP PODACI_CLANA PRIJAVA_ZA_UPIS UPISNINA CLANSKA_KARTA SPISAK_KNJIGA_ZA_NAROD_BIBL_SRBIJE SIGNATURA_KNJIGE OTPREMNICA POTVRDA_O_PRIM_KNJIGAMA OTPREMNICA_POKLONJENE_KNJIGE CLANOVI REVERS IS_BIBLIOTEKE IS_BIBLIOTEKE KATALOG_TRAZNJA DOBAVLJACI RAZDUZIVANJE LISNI_KATALOG PARAMETRI_PRETRAGE KATALOG_PONUDA OTPREMNICA_PRIM_KNJIGE OTPREMNICA_PREDATE_KNJIGE REZULTATI_PRETRAZIVANJA ZAHTEV_ZA_PRODUZENJE_ROKA_ZADUZENJA OPOMENA
DTP Najčešće greške: Dodavanje interfejsa kao deo sistema umesto da je to spoljni objekat Npr Bibliotekar nije deo sistema već spoljni objekat I on mora da se prijavi za rad Evidenciju zaduženja ili razduženja ne radi bibliotekar već IS
DTP DTP 0. nivoa Težište je na identifikaciji osnovnih poslovnih procesa koji se dešavaju u sistemu i distribuiranje TP između interfejsa i procesa. Moraju biti prikazani svi TP koji će se pojavljivati na detaljnijim DTP, Moraju biti prikazani svi interfejsi koji će se pojavljivati na detaljnijim DTP i Ne moraju biti prikazana sva skladišta i poslovni procesi, jer se mogu dekomponovati
DTP Problemi: Veliki IS može biti preglomazan za SSA Može se podeliti u više softverskih komponenti Npr: IS velikog međunarodnog hotelskog sistema Može se podeliti na više IS: rezervacije, održavanje, nabavke, kadrovsko poslovanje, bezbednost i sl.
DTP 1.UPRAVLJANJE 1.UPRAVLJANJE PODACIMA DOKTORA PODACIMA DOKTORA Primer ZAHTEV_ZA_ANGAZOV PACJJENT ZAHTEV_ZA_PREGLED DOKTORI DOSTUPNOST SLOBODNI_TERMINI SPISAK_PREGLEDA DOKTOR 2.ZAKAZIVANJE 2.ZAKAZIVANJE PREGLEDA PREGLEDA PODACI_ZA_ZDR_KARTON BR_ZDR_KARTONA PACIJENTI PREGLEDI 3.UPRAVLJANJE 3.UPRAVLJANJE PODACIMA PODACIMA PACIJENATA PACIJENATA
Dobavljac FAKT_DOB OTPREMNICA_DOB UPLATA IZVOD Banka Primer: kontekstualni dijagram PRILIV DEVIZA NARUDZBENICA_DOB IZVEŠTAJ O NAPLATI UGOVOR_DOB CARINSKA_FAKTURA IS spoljnotrgovinskog preduzeca OTPREMNICA_KUP FAKTURA_KUP UGOVOR_KUP JCI ZAHTEV ZA CARINJENJE NARUDZBENICA_KUP Kupac Carina
Primer: DTP 0. nivoa UPLATA Banka IZVOD PRILIV DEVIZA IZVEŠTAJ O NAPLATI Dobavljac 4.PLACANJE OTPREMNICA_DOB FAKT_DOB DOBAVLJACI NARUDZBENICA_DOB UGOVOR_DOB KUPCI 1.NABAVKA CAR_FAKTURE ARTIKLI 3.PRODAJA 2.CARINJENJE DOBAVLJACI* OTPREMNICA_KUP FAKTURA_KUP UGOVOR_KUP NARUDZBENICA_KUP Kupac JCI ZAHTEV ZA CARINJENJE CARINSKA_FAKTURA Carina
Dekompozicija: DTP 0. u DTP 1. nivoa
Primer: DTP 1. nivoa NARUDZBENICA_DOB UGOVOR_DOB 1.1 NARUCIVANJE UGOVORI_DOB DOBAVLJACI ARTIKLI PRIJEMNICE Dobavljac FAKTURE_DOB 1.3 SKLADISTENJE FAKT_DOB 1.2 PRIJEM_ROBE OTPREMNICA_DOB
Rečnik podataka Rečnik podataka - skup podataka o podacima koji se koriste u analiziranom sistemu Opis struktura podataka koje se koriste u tokovima podataka, Opis polja definisanih nad podacima i Opis domena.
Rečnik podataka Definisanje strukture Podaci koji se pojavljuju u interakcijama DTP između interfejsa i procesa su najčešće struktuirani Osnovnih tipovi podataka (tekstualni, celobrojni, realni brojevi itd), izolovani nemaju nikakvo značenje Npr. pojedinačni podaci: smer, ocene položenih ispita nemaju konkretan informacioni značaj ako nisu objedinjeni u jedinstvenu strukturu student
ISPITNA_PRIJAVA <<STUDENT>, <ISPIT>, <ISPITIVAC>, <PREDSEDNIK_ KOMISIJE>, BROJ_POKUSAJA> ISPITNI_SPISAK <<ISPIT>, <ISPITIVAC>, <PREDSEDNIK_ KOMISIJE>, {<STUDENT>}> REZULTATI_ISPITA < <ISPIT>,{<JEDINACNI_REZULTAT>} > ISPIT <DATUM_ISP, PREDMET > JEDINACNI_REZULTAT <<STUDENT>,OCENA> STUDENT <<OSOBA>,<INDEKS>> OSOBA <IME,PREZIME,JMBG> INDEKS <GODINA_UPISA, PIN,DODATNO_OBELEZJE, <SEMESTAR>> SEMESTAR <RBR_SEMESTRA,DATUM_UPISA> PREDSEDNIK_ KOMISIJE <<ISPITIVAC>> ISPITIVAC <<OSOBA>,NAUCNO_ZVANJE, NASTAVNO_ZVANJE, [ID_ZAPOSLENOG, BR_UGOVORA]> Rečnik podataka
Rečnik podataka Definisanje polja Polja su osnovni podaci iz kojih su sačinjene strukture Polja se definišu tako što im se dodeljuje naziv, domen nad kojim su definisana i ograničenja
Rečnik podataka NAZIV POLJA DOMEN OGRANICENJE DATUM_ISP DATUM_UPISA GODINA_UPISA IME PREZIME PREDMET DATE DATE INT(4) NAZIV NAZIV NAZIV OCENA INT(2) IN(5,6,7,8,9,10) RBR_SEMESTRA INT(1) IN(1,2,3,4,5,6,7,8) PIN ID_ZAPOSLENOG BR_UGOVORA IDENTIFIKACIJA IDENTIFIKACIJA IDENTIFIKACIJA DODATNO_OBELEZJE CHAR(3) IN("II","III","IV") NAUCNO_ZVANJE NAZIV IN ("SPECIJALISTA", "DOKTOR", "MAGISTAR", "DIPL.ING") NASTAVNICKO_ZVANJE NAZIV IN ("REDOVNI PROFESOR, "VANREDNI PROFESOR ", "DOCENT", "ASISTENT","ASISTENT PRIPRAVNIK")
Rečnik podataka Definisanje domena Domeni mogu biti predefinisani ili korisnički definisani Korisnički (semantički) domeni se definišu nad osnovnim tipovima podataka u situaciji kada se isti osnovni tipovi sa istim ograničenjima višestruko koriste pri definisanju polja. NAZIV DOMENA PREDEFINISANI DOMEN OGRANICENJE NAZIV CHAR(25) IDENTIFIKACIJA CHAR(10) IS_UNIQUE_CODE
Pitanja?