Informacioni sistemi 1/K1 2020
Prvi kolokvijum 2020. se održao u prvoj kolokvijumskoj nedelji. Postavka zadatka nije dostupna sa stranice predmeta. Naziv sistema je bio "PROGRAMERSKA KOMPANIJA".
Postavka
Zadaci
- Za Sistem čiji je opis dat u nastavku sastaviti Model objekata i odnosa u vidu Pregleda objekata i odnosa i Pregleda entiteta i svojstava.
- Za Sistem čiji je opis dat u nastavku izvršiti dopunu do anotirane funkcionalne dekompozicije 2. vrste. date nepotpune funkcionalne dekompozicije funkcionalnosti
PlaniranjeProjekta
.
Sistem
Kompanija ugovara projekte izrade softvera po narudžbini klijenta. U kompaniji su zaposleni programeri i menadžeri. U sistemu se vodi evidencija o svakom koraku rada (zahtevima, dodeljenim poslovima, razvijenom kodu). Za svaki projekat nekog klijenta, evidentiraju se svi korisnički zahtevi kao i menadžer koji je nadležan za njega. Pre nego što projekat otpočne, on mora biti isplaniran (a nakon planiranja status projekta postaje I). Planiranje projekta se sastoji u tome da se za svaki korisnički zahtev definiše posao, kao i koliko će izrada tog posla trajati i koliko programera će biti angažovano na tom poslu. Nakon toga se određuju programeri i dodeljuje im se angažman na pojedinim poslovima. Odabir programera se obavlja tako što se posao dodeljuje onim programerima koji su u tom trenutku slobodni. Ukoliko nema dovoljno slobodnih programera, planiranje projekta se privremeno obustavlja (status projekta postaje O). Prilikom nastavka planiranja projekta, obavlja se samo dodela angažmana programera i to samo za one korisničke zahteve odnosno poslove za koje to ranije nije urađeno. Implementacija projekata može da otpočne tek nakon što se projekat isplanira. Tokom implementacije, celokupan kod koji programeri razviju se takođe evidentira u sistemu i to tako da je za svaki deo koda definisano koje korisničke zahteve implementira.
Tabele u relacionoj šemi baze podatak: KLIJENT
, ZAPOSLEN
, MENADŽER
, PROGRAMER
, ZAHTEV
, PROJEKAT
, POSAO
, ANGAŽMAN
, KOD
, IMPLEMENTIRA
Dekompozicija
ObradaPrometa (=>I, <=O, <>D) ... PlaniranjeProjekta (=>I.PP, <=O.PP, <>D) UnosPodataka (=>I.PP, <Projekat) () ProveraStatusaProjekta ( ) ( ) OčitavanjeKorisničkihZahteva ( ) ( ) EvidencijaPosla ( ) ( ) OčitavanjePoslova ( ) ( ) AngazmanProgramera ( ) ( ) OdabirProgramera ( ) ( ) EvidencijaAngazmanaProgramera ( ) ( ) EvidencijaStatusaPlaniranja ( ) ( ) PorukaStatusPlaniranja (<=O.PP, ) ()
Rešenje
Model
Tabele
Tabela | Polja |
---|---|
KLIJENT | #IDKli |
ZAPOSLEN | #IDZap |
MENADŽER | |
PROGRAMER | |
PROJEKAT | #IDPro, Status |
ZAHTEV | +RedBr, Trajanje, BrProgramera |
POSAO | #IDPos |
ANGAŽMAN | #IDAng |
KOD | #IDKod |
IMPLEMENTIRA |
Dekompozicija
ObradaPrometa (=>I, <=O, <>D) ... 1 PlaniranjeProjekta (=>I.PP, <=O.PP, <>D) 1 UnosPodataka (=>I.PP, <Projekat) () 2 ProveraStatusaProjekta (>Projekat, <Status ) (S:PROJEKAT ) ?3 OčitavanjeKorisničkihZahteva /Status (>Projekat, <Zahtevi{} ) (S:ZAHTEV ) ?*4 EvidencijaPosla /Status /Zahtev in Zahtevi{} (>Zahtev ) (I:POSAO ) 5 OčitavanjePoslova (>Projekat, <Poslovi{} ) (S:POSAO ) *6 AngazmanProgramera /Posao in Poslovi{} (>Posao, <Ima ) (S:PROGRAMER, SI:ANGAŽMAN ) 1 OdabirProgramera (>Posao, <Programeri{}, <Ima ) (S:PROGRAMER, S:ANGAŽMAN ) ?2 EvidencijaAngazmanaProgramera /Ima (>Programeri{}, >Posao ) (I:ANGAŽMAN ) 7 EvidencijaStatusaPlaniranja (>Projekat, >Ima ) (U:PROJEKAT ) 8 PorukaStatusPlaniranja (<=O.PP, >Ima, >Projekat ) ()