Professional Documents
Culture Documents
Zadatak:
1. Na osnovu datog materijala (opis posla, dokument i sintaksna analiza dokumenta,
dijagram toka podataka i recnik podataka, dijagram slucajeva koriscenja) izraditi
konceptualni model podataka:
a) Na osnovu gramatike analize opisa posla.
b) Na osnovu dodeljivanja atributa iz renika podataka entitetima.
c) Na osnovu sintaksne analize dokumenta.
d) Na osnovu sintaksne analize skladita podataka.
e) Na osnovu normalizacije skladita podataka.
2. Izvrsiti:
a) integraciju resenja iz 1. Zadatka,
b) proveru i korekciju gresaka,
c) proveru potpunosti modela u odnosu na:
c1) primitivne procese
c2) slucajeve koriscenja.
3.
4.
5.
6.
Radi ilustracije naina izrade zadataka, izabran je jednostavan sistem taksi slube i
to samo osnovna delatnost, a u okviru nje rad operatera. Naravno, osnovna
delatnost se ne moe vrsiti bez rezultata rada i pomocne delatnosti koja se odnosi na
nabavku i odravanje resursa opreme, kadrova i slino, ali smo zbog potrebe za
jednostavnou i fokusiranjem na primenu metoda, minimizovali obuhvat
posmatranja.
MATERIJAL ZA IZRADU ZADATKA:
Posmatrani sistem: taksi sluzba osnovna delatnost rad operatera
Za navedeni sistem dat je opis posla, analiza strukture dokumenta, stablo procesa, dijagrami toka
podataka i tabela preslikavanja primitivnih procesa u softverske funkcije. Struktura skladista podataka
identicno je strukturi dokumenta i spisak elementarnih podataka sa sintaksnom analizom predstavlja
istovremeno i recnik podataka.
2. Dokument za analizu
TAKSI SLUZBA MAXI-TAXI
Bacvanska 33
NekoMesto
DNEVNIK RADA
Datum: 13.3.2013.
ANALIZA DOKUMENTA:
2.1.1.
Elementarni podaci
NAZIV
ELEMENTARNOG
PODATKA
NazivTaksiSluzbe
AdresaTaksiSluzbe
NazivMestaTaksiSluzbe
DatumDnevnikaRada
IDBrojVozaca
VremePozivaKlijenta
TelefonPozivaKlijenta
AdresaPocetneStanice
NaplaceniIznos
RazlogNerealizovaneVoznje
PrezimeOperatera
ImeOperatera
TIP PODATKA
Naplaceno (din)
Razlog nerealizovane
240,00
350,00
0
0
0
klijent nije
vozac je
kvar na vozilu
DOMEN
String 50
String 70
Mesta
Date
IDBrojeviVozaca
Time
String 40
String 70
Real
RazloziNerealizovaneVoznje
String 50
String 30
2.1.2.
DOMENI:
Mesta: String 100 (Nazivi mesta u Srbiji sifarnik)
IDBrojeviVozaca: String 15 (1446, 350, 3456, 451, 462)
RazloziNerealizovaneVoznje: String 30 (klijent nije dosao, vozac je zakasnio, kvar na vozilu)
2.1.3.
SINTAKSNI PRIKAZ STRUKTURE DOKUMENTA:
DNEVNIK_RADA:< <NazivTaksiSluzbe,
AdresaTaksiSluzbe,
NazivMestaTaksiSluzbe>,
DatumDnevnikaRada,
{<IDBrojVozaca,
VremePozivaKlijenta,
TelefonPozivaKlijenta,
AdresaPocetneStanice,
[NaplacenIznos,
RazlogNerealizovaneVoznje]
>},
<PrezimeOperatera,
ImeOperatera>
>;
0.
1.
Stablo procesa
Taksi sluzba osnovna delatnost rad operatera
Priprema voznje
a. Prijem poziva od klijenta
b. Obavestavanje o licitaciji za voznju
c. Prijem prijave za voznju
2.
3.
3.2.
DTP 0. Nivoa
Vozac
Klijent
Zahtev za voznjom
Podaci o potencijalnom prihvatanju voznje i mogucem vremenu pristizanja
Odgovor o raspolozivosti vozila i vremenu prispeca
Obrazlozenje kasnjenja
DTP 1. Nivoa
Klijent
Vozac
Zahtev za voznjom
1.1
Priprema voznje
1
1.2
DnevnikRada
1.3
Evidentiranje izvrsene voznje
PRIMITIVNI PROCES
Prijem poziva od klijenta
Obavestavanje o licitaciji za
voznju
Prijem prijave za voznju
Obavestavanje klijenta o
mogucnosti prispeca vozila
Prijem potvrde od klijenta za
voznju
Obavestavanje vozaca o
potvrdi za voznju
Prijem zalbe klijenta o
neizvrsenoj voznji
Slanje zahteva za
obrazlozenjem neizvrsene
voznje vozacu
Slanje obrazlozenja za
neizvrsenu voznju klijentu
Evidentiranje izvrsene voznje
NIJE SOFTVERSKI
PODRANO
telefonski
radio stanica
SOFTVERSKA FUNKCIJA 1.
PRIORITETA
radio stanica
telefon
Unos podataka o dodeljenoj voznji
Unos podataka o dodeljenoj voznji
Unos podataka o zalbi na dodeljenu
voznju
radio stanica
telefon
zalbe klijenta
voznji
neizvrsenoj
Slanje
zahteva
za
obrazlozenjem
neizvrsene voznje vozacu
Slanje
obrazlozenja za neizvrsenu
voznju klijentu
1.2.
SOFTVERSKA
FUNKCIJA
1. prioritet
Unos podataka
o
dodeljenoj
voznji
SOFTVERSKA
SOFTVERSKA
FUNKCIJA
2. FUNKCIJA
PRIORITET
preduslov
Tabelarni prikaz
Unos podataka o
dodeljenih voznji vozacu
Filtriranje
Unos podataka
dodeljenih
o mestu
voznji
prema
prezimenu
vozaca, Id broju
vozaca, telefonu
klijenta, adresi
polaska
Unos podataka o Tabelarni prikaz Unos podataka
zalbi
na zalbi
o
razlozima
dodeljenu voznju
nerealizovanih
voznji
Filtriranje zalbi Unos podataka
po
prezimenu o
dodeljenoj
vozaca, Id broju voznji
vozaca, telefonu
klijenta, adresi
polaska
Stampanje
statistike
o
zalbama
Unos podataka o
Tabelarni prikaz
Unos podataka
zavrsetku voznje
zavrsenih voznji
o dodeljenoj
voznji
Filtriranje
zavrsenih voznji
prema ID broju
vozaca
Stampanje
periodicne
statistike o radu
(ukljucuje:
Izbor perioda
statistike)
<<access>>
<<access>>
<<access>>
<<access>>
<<extend>>
Operater
<<access>>
Filtriranje zavrsenih voznji prema ID vozaca
TAbelarni prikaz zavrsenih voznji
<<access>>
RESENJA ZADATAKA
1.
Metoda:
Imenice kandidati za entitete, Glagoli kandidati za poveznike. Ako poveznik ima vazne atribute,
postaje entitet.
Prevoz1
Zahtev za voznjom
Klijent
Adresa
Telefon
narucuje
datum poziva
vreme poziva
je dodeljen voznji
pripada
Licitacija
izvrsen
se javio
Vozac
Izvrsen prevoz
je cilj
Mesto
je pocetak
ptt
naziv
datum pocetka
vreme pocetka
datum zavrsetka
vreme zavrsetka
adresa destinacije
naplacen iznos
Neizvrsen prevoz
je razlog
sifra
Prezime
Ime
RegidtarskiBrojVozila
Mesto
Dnevnik
DatumDnevnika
ptt
Naziv
Vozac
Naplata
NaplacenIznos
Id
Taksi sluzba
Naziv
Adresa
Pocetna stanica
AdresaPocetneStanice
Poziv
poziva
vreme poziva
Voznja
Operater
Prezime
Ime
Klijent
telefon
Inheritance_1
NerealizovanaVoznja
Razlog
Mesto
nalazi se
ptt
Naziv
Dnevnik
je primio poziv
DatumDnevnika
Vozac
Id
Taksi sluzba
Naziv
Adresa
pripada
zaposljava
Voznja
je dodeljen
VremePozivaKlijenta
AdresaPocetneStanice
je pozvao
Klijent
telefon
realizovan
Operater
Prezime
Ime
Nerealizovana voznja
Realizovana voznja
NaplacenIznos
je razlog
1. normalna forma
NAZIV
ELEMENTARNOG
PODATKA
NazivTaksiSluzbe
AdresaTaksiSluzbe
NazivMestaTaksiSluzbe
JEDNINA
u nazivu
da
da
da
STRUKTURA
u nazivu
ne
ne
ne
DatumDnevnikaRada
da
ne
IDBrojVozaca
VremePozivaKlijenta
da
da
ne
ne
TelefonPozivaKlijenta
da
ne
AdresaPocetneStanice
da
ne
NaplaceniIznos
RazlogNerealizovaneVoznje
PrezimeOperatera
ImeOperatera
da
da
da
da
ne
ne
ne
ne
Napomena
bilo
bi
da
pise
MestoTaksiSlube
datumski tip je slozen
od dana, meseca i
godine,
ali
postoji
standardni tip podatka
Date
vreme se sastoji od
sata, minuta i sekundi,
ali postoji tip podatka
Time
telefon je struktura od
pozivnog broja i samog
broja, ali se moze
smatrati
jednim
podatkom
adresa se sastoji od
ulice i broja, ali se moze
smatrati
jednim
podatkom
1.
NF
da
da
da
da
da
da
da
da
da
da
da
da
2. normalna forma
NAZIV ELEMENTARNOG PODATKA
NazivTaksiSluzbe
AdresaTaksiSluzbe
NazivMestaTaksiSluzbe
DatumDnevnikaRada
IDBrojVozaca
VremePozivaKlijenta
TelefonPozivaKlijenta
AdresaPocetneStanice
NaplaceniIznos
RazlogNerealizovaneVoznje
PrezimeOperatera
ImeOperatera
3. normalna forma
NAZIV ELEMENTARNOG
PODATKA
NazivTaksiSluzbe
AdresaTaksiSluzbe
NazivMestaTaksiSluzbe
DatumDnevnikaRada
IDBrojVozaca
VremePozivaKlijenta
TelefonPozivaKlijenta
AdresaPocetneStanice
NaplaceniIznos
RazlogNerealizovaneVoznje
PrezimeOperatera
ImeOperatera
FUNKCIONALNO
(identifikaciono)
OD
ID taksi sluzbe
ID taksi sluzbe
PTT mesta
Id dnevnika rada
IDBrojVozaca
ID Poziva
ID Poziva
ID Poziva
ID Poziva
ID Poziva
Id operatera
Id operatera
TRANZITIVNO ZAVISI OD
ZAVISI
ID taksi sluzbe
Id operatera
ID Poziva
ID dnevnika rada
ID dnevnika rada
ID dnevnika rada
ID dnevnika rada
ID dnevnika rada
ID taksi sluzbe
ID taksi sluzbe
Mesto
nalazi se
Dnevnik
ptt
Naziv
IDdnevnika
DatumDnevnika
Vozac
pripada
Idvozaca
je dodeljen
Taksi sluzba
ID taksi sluzbe
Naziv
Adresa
Poziv
IDpoziva
RazlogNerealizovaneVoznje
TelefonPozivaKlijenta
VremePozivaKlijenta
AdresaPocetneStanice
NaplacenIznos
zaposljava
Operater
Id operatera
Prezime
Ime
je radio
Vozac
ID
<pi> Text (15)
PrezimeOperatera
Text (50)
Ime
Text (20)
RegistarskiBrojVozila
Text (30)
je sediste
Mesto
je mesto dolaska
ptt
<pi> Text (10)
Naziv
Text (100)
TaksiSluzba
Oznaka <pi> Text (10)
Naziv
Text (100)
Adresa
Text (100)
je mesto polaska
Operater
JMBG
<pi> Text (13)
PrezimeOperatera
Text (50)
ImeOperatera
Text (30)
zaposljava
prima poziv
PotencijalnaVoznja - Poziv
IDvoznje
<pi> Long integer
DatumPoziva
Date
VremePoziva
Time
TelefonPoziva
Text (50)
AdresaPolaska
Text (100)
NajavljenPeriodStizanjaVozilaMinuta
Byte
UlozenaZalba
Boolean
ObrazlozenjeRazlogaKasnjenja
Text (100)
IzvrsenaVoznja
Boolean
je dodeljen
izvrsena
NeizvrsenaVoznja
IzvrsenaVoznja
VremePolaska
AdresaDestinacije
VremeDolaska
NaplacenIznos
Time
Text (100)
Time
Float
je razlog
TipRazlogaNeizvrsavanjaVoznje
SifraRazloga <pi> Text (10)
NazivRazloga
Text (50)
NAPOMENA:
ifarnici su: Mesto, Taksi sluba, Voza, Operater, TipRazlogaNerealizovanjaVonje
2.b) PROVERA KOREKTNOSTI MODELA
GRUPA
GRUPA
Potrebna osobina -
PROVERA
ELEMENATA
OSOBINA
semantika
uskladjenost sa
datim
materijalom
CELINA
MODELA
kompletnost
jezicka
nedvosmislenost
naziv
ENTITET
Entitet i atributi
Naziv
Atributi i tipovi
/domeni
podataka
ATRIBUT
Karakteristike
POVEZNIK
Naziv
nacin povezivanja
entiteta
METRIKA
Semanticki u skladu sa
problemom
Pokrivenost opisa posla
Pokrivenost importovanih
elementarnih podataka
Pokrivenost skladista
podataka sa DTP
Kompletnost skupa entiteta
Kompletnost skupa atributa
Kompletnost skupa
poveznika
Nepostojanje sinonima u
nazivima entiteta i atributa
Nepostojanje homonima u
nazivima entiteta i atributa
Imenica ili glagolska
imenica
Izrazava sustinske objekte i
dogadjaje
Ne izrazava nazive
dokumenata
Jednina u nazivu
Ima identifikaciono obelezje
ili je identifikaciono zavisan
od drugih entiteta
Dodeljen atribut
odgovarajuem entitetu
(2NF) Ne postoje brojni
odnosi atributa 1:M u
entitetu
(3NF) Ne postoje tranzitivne
zavisnosti atributa u
entitetu
(1NF) Jednina u nazivu
(1NF) Nema naziv kao
struktura
Odgovarajuci tip podatka
Atribut nema za tip podatka
domen (uzi skup vrednosti
nego sto je standardni tip
podatka), vec je izvucen
kao sifarnik
Atributi se sa istim nazivom
ne ponavljaju (nema
redundanse)
Nema izracunljivih atributa,
vec samo analitickih
vrednosti medju atributima
na osnovu kojih se vrse
izracunavanja
Poveznik ima naziv
Naziv kao glagol
Povezani direktno entiteti
koji treba da budu povezani
Entiteti su povezani
hronoloskim sledom
medjuzavisnih dogadjaja
Povezani su entiteti u
gerund odnosu, ako je
potrebno
Ako poveznik ima vazne
atribute, pretvoren je u
entitet
DA
DA
DA
DA
da
da
da
DA
DA
DA
DA
DA
DA
DA
DA
DA
DA
DA
DA
DA
DA izdvojeni su
sifarnici
DA
DA
DA
DA
da
DA
nema gerunda
da
podesavanja
osobina
3.
Pravilno podesen
kardinalitet
Pravilno podesena strana na
vezi 1:M
Pravilno odredjeno da li ima
opravdanja za vezu 1:1 ili je
jedan entitet
Pravilno odredjeno u vezi
1:1 ko je dominant
Pravilno odredjeno u vezi
M:M da li ima vaznih
atributa ili ostaje M:M
Pravilno podesena
identifikaciona zavisnost
Pravilno podesena is-a
hijerarhija (gde je
nadredjeni, bar jedan
podredjeni, migrira samo
ID)
da
da
nema odnosa 1:1
nema odnosa 1:1
ostaje veza M:M
da
da
PRIMITIVNI
PROCES
POMOCNA
DELATNOST
OSNOVNA DELATNOST
Prijem poziva od
klijenta
Obavestavanje o
licitaciji za voznju
Prijem prijave za
voznju
Obavestavanje klijenta
o mogucnosti prispeca
vozila
Prijem potvrde od
klijenta za voznju
Obavestavanje vozaca
o potvrdi za voznju
Prijem zalbe klijenta o
neizvrsenoj voznji
Slanje zahteva za
obrazlozenjem
neizvrsene voznje
vozacu
SOFTVERSKA FUNKCIJA
ENTITETI PODMODELA
Taksi sluzba
Operater
Vozac
Mesto
TipRazlogaNerealizovaneVoznje
Slanje obrazlozenja za
neizvrsenu voznju
klijentu
Zakljuak:
Model je korektan i potpun u skladu sa primitivnim procesima i sluajevima
korienja.
Vozac
ID
PrezimeOperatera
Ime
RegistarskiBrojVozila
text <pk>
text
text
ptt = pttDestinacije
text
Mesto
ptt = pttSediste
ptt
text <pk>
Naziv text
TaksiSluzba
Operater
JMBG
OznakaTaxiSluzbe
PrezimeOperatera
ImeOperatera
text <pk>
text <fk>
text
text
Oznaka = OznakaTaxiSluzbe
Oznaka
pttSediste
Naziv
Adresa
text <pk>
text <fk>
text
text
ptt = pttPolaska
JMBG = JMBGOperatera
PotencijalnaVoznja - Poziv
IDvoznje
IDVozaca
pttPolaska
JMBGOperatera
DatumPoziva
VremePoziva
TelefonPoziva
AdresaPolaska
NajavljenPeriodStizanjaVozilaMinuta
UlozenaZalba
ObrazlozenjeRazlogaKasnjenja
IzvrsenaVoznja
ID = IDVozaca
IDvoznje = IDvoznje
bigint
text
text
text
datetime
datetime
text
text
tinyint
bit
text
bit
<pk>
<fk1>
<fk3>
<fk2>
IDvoznje = IDvoznje
IzvrsenaVoznja
IDvoznje
pttDestinacije
VremePolaska
AdresaDestinacije
VremeDolaska
NaplacenIznos
bigint
<pk,fk2>
text
<fk1>
datetime
text
datetime
float
NeizvrsenaVoznja
IDvoznje
bigint <pk,fk>
DetaljanOpisRazloga text
IDvoznje = IDvoznje
je razlog
SifraRazloga text
<pk,fk1>
IDvoznje
bigint <pk,fk2>
SifraRazloga = SifraRazloga
TipRazlogaNeizvrsavanjaVoznje
SifraRazloga text <pk>
NazivRazloga text
5. DIJAGRAM KLASA
5 a) GENERISAN DIJAGRAM KLASA NA OSNOVU KONCEPTUALNOG
DIJAGRAMA
Vozac
+
+
+
+
ID
PrezimeOperatera
Ime
RegistarskiBrojVozila
: string
: string
: string
: string
0..*
Mesto
1..1
+ ptt
: string
+ Naziv : string
TaksiSluzba
+ Oznaka : string
+ Naziv : string
+ Adresa : string
1..1
1..1
1..1
Operater
+ JMBG
: string
+ PrezimeOperatera : string
+ ImeOperatera
: string
0..*
1..1
1..1
0..*
0..*
PotencijalnaVoznja - Poziv
0..*
+
+
+
+
+
+
+
+
+
IDvoznje
DatumPoziva
VremePoziva
TelefonPoziva
AdresaPolaska
NajavljenPeriodStizanjaVozilaMinuta
UlozenaZalba
ObrazlozenjeRazlogaKasnjenja
IzvrsenaVoznja
: long
: DateTime
: DateTime
: string
: string
: byte
: bool
: string
: bool
0..*
IzvrsenaVoznja
+
+
+
+
VremePolaska
AdresaDestinacije
VremeDolaska
NaplacenIznos
: DateTime
: string
: DateTime
: float
NeizvrsenaVoznja
+ DetaljanOpisRazloga : string
0..*
1..*
TipRazlogaNeizvrsavanjaVoznje
+ SifraRazloga : string
+ NazivRazloga : string
Vozac
+
+
+
+
ID
PrezimeOperatera
Ime
RegistarskiBrojVozila
: string
: string
: string
: string
Mesto
1..1
1..1
1..1
+ ptt
: string
+ Naziv : string
0..*
TaksiSluzba
+ Oznaka : string
+ Naziv : string
+ Adresa : string
1..1
Operater
+ JMBG
: string
+ PrezimeOperatera : string
+ ImeOperatera
: string
1..1
0..*
1..1
0..*
0..*
PotencijalnaVoznja - Poziv
0..*
+
+
+
+
+
+
+
+
+
IDvoznje
DatumPoziva
VremePoziva
TelefonPoziva
AdresaPolaska
NajavljenPeriodStizanjaVozilaMinuta
UlozenaZalba
ObrazlozenjeRazlogaKasnjenja
IzvrsenaVoznja
: long
: DateTime
: DateTime
: string
: string
: byte
: bool
: string
: bool
0..*
IzvrsenaVoznja
+
+
+
+
VremePolaska
AdresaDestinacije
VremeDolaska
NaplacenIznos
: DateTime
: string
: DateTime
: float
NeizvrsenaVoznja
1..*
+ DetaljanOpisRazloga : string
0..*
TipRazlogaNeizvrsavanjaVoznje
+ SifraRazloga : string
+ NazivRazloga : string
NAPOMENE:
Korekcije:
1. Usmerenje strelice kod veze tipa asocijacije je bilo pogreno.
2. TipRazlogaNeizvrsavanjaVoznje je umesto asocijacije postavljen da bude u
odnosu agregacije prema klasi NeizvrsenaVoznja.