Professional Documents
Culture Documents
PIS01 - IstorijaRazvojaMetoda&Alata (12 Files Merged) PDF
PIS01 - IstorijaRazvojaMetoda&Alata (12 Files Merged) PDF
HARDVER
80
RAZVOJ
SOFTVERA
od1985. razvijaju se različite formalne metode, alati i
60 metodologije kako bi se poboljšalo upravljanje kvalitetom
softvera.
40
ODR@AVANJE
SOFTVERA
20
Adaptivno održavanje - modifikacija sofverskog proizvoda da bi se sačuvala upotrebna verdnost u promenljivoj sredini
Perfektivno održavanje - modifikacija softverskog proizvoda radi unapredjenja performansi ili održivosti
Korektivno održavanje – modifikacija sofverskog proizvoda radi popravke otkrivenih grešaka
quantitative
approaches
STRUKTURNE METODE
1) TIPOVI
PODATAKA (PROGRAMSKO-JEZIČKI, VIRTUELNI TIPOVI). POD TIPOM
PODATKA SE PODRAZUMEVA SKUP VREDNOST I SKUP OPERACIJA NAD NJIMA:
ATOMSKI TIPOVI
AGREGIRANI TIPOVI - STRUKTURE PODATAKA
1965 - 1980
NAJVEĆA (GOTOVO JEDINA) PAŽNJA U POČETNOM PERIODU RAZVOJA
SOFTVERSKOG INŽENJERSTVA POSVEĆIVALA SE KONTROLNIM STRUKTURAMA
(ALGORITAMSKE APSTRAKCIJE):
1) STRUKTUIRNO PROGRAMIRANJE:
REŠAVANJE SINDROMA “ŠPAGETI KODA”
DOBRO DEFINISANE STRUKRURE PROGRAMA
PROGRAMIRANJE BEZ ILI SA KONTROLISANOM PRIMENOM “GO TO” NAREDNE. “Go to
considers harmful”
SKLADP_1 SKLADP_2
TO KP_3
TO KP_2 TO KP_5
SPO LJNI_ PRO C_B PRO C_C
O BJEKAT _2 2. 3.
TO KP_3 NIVO II
PRO C_BA
2.1
TO KP_2a
Ukupna suma
plata
Izra~unati i
{tampati
prose~nu platu
Prose~na
plata
Plata
[tampati
^itati platu prose~nu
platu
PRAVILA STRUKTURNOG PROJEKTOVANJA
Enterprise Architect
Visual Paradigm
Rational Rose
Mnogi drugi
IZLAZNA IZLAZI
ULAZ STANJE
TRANSFORM.
REAL NI SIST EM
PODACI O ULAZU
E.F. Codd: “The Relational model for Database management”, Version 2, Addisov -Weseley, 1990.
IPAK NEDOVOLJNO SEMANTIČKI BOGATI:
NE POSTOJE MEHANIZMI ZA IMPLEMENTACIJU APSTRAKCIJA AGREGACIJE I GENERALIZACIJE
NE POSTOJI MOGUĆNOST DEFINISANJA APSTRAKTNOG TIPA KAO DOMENA
MODEL OBJEKTI - VEZE
REGBR
[N
KOLA MARKA NASTAVNIK
IMEN
BOJA
(1,1) (0,1)
BI
PARKIRA [P PREDAJE
IME
NAZP
DATUM OCENA
(0,1) SEM B^ (0,M)
(0,M) (0,M)
STUDENT POLO@IO PREDMET
(1,M)
(0,M)
(0,M) (1,1)
Vrste (0,1)
IMA SLU[A
S PRIPADA
RODITELJ KATEDRA
VANREDAN
RADI U^ESTVUJE
(0,M) (0,M)
[PROJ
POSAO PROJEKAT
NAZPROJ
(1,M)
[POS NAZPOS
[ZAD
ZADATAK OPISZAD
NAZZAD
PROMENE U ŽIVOTNOM CIKLUSU
OBJEKTNI JEZICI
“ SEMANTIČKA PRAZNINA”
Pod objektom se podrazumeva entitet koji je sposoban da ~uva svoja stanja i koji
stavlja na raspolaganje okolini skup operacija preko kojih se ta stanja prikazuju ili
menjaju.
Aca
Oper acij e
Zapamti
starost
Prika` i starost
Kora~aj
I graj
Ska~i
U složenom sistemu postojaće mnoštvo objekata, pa bi i njihov direktan opis bio
veoma složen. Zbog toga je neophodno uvesti apstrakcije klasifikacije i generalizacije.
.....................
Svaka operacija ima “pozvani” objekat kao implicitni argument. Ponašanje operacije zavisi od
klase kojoj “pozavni” objekat pripada. Objekat “zna” svoju klasu, pa samim tim i način
implementacije posmatrane operacije. Osobina da objekat poziva neku operaciju drugog objekta
ne znajući kojoj klasi ovaj objekat pripada naziva se polimorfizam.
U OBJEKTNIM PRISTUPIMA JASNO SE RAZDVAJAJU MODELI I METODOLOGIJA
UML
Unified Modeling Language
Rational Software Corporation
1. G. Booch, J. Rumbaugh, I. Jackobson: "Unified Modeling Language User Guide, Addison Weseley", 1998
2. J. Rumbaugh, G. Booch, I. Jackobson: "Unified Modeling Language Reference Manual", Addison Weseley,
1998
3. I. Jackobson, G. Booch, J. Rumbaugh: "The Ojectory Software Development Process", Addison Weseley,
1998
MODELI
Podizanje novca
Komitent
Ulaganje
Ra~unar
banke
Prenos
Operater
Administracija
PRIMER DIJAGRAMA KLASA
Osoba Preduze}e
ime
naziv
adresa 1+ adresap
telefon
mtbr najva`niji proizvod
obra~unaj_vreme zaposli
zaradi_platu otpusti
polo`aj nazivo
vrsta_posla
Rukovodi
Radnik Menad`er Odelenje
Projekat Proizvod
naziv_proj naziv
bud`et cena
prioritet te`ina
{najva`nijii_proizvod=Proizvod.naziv
za max (proizvod.cena) }
PRIMER DIJAGRAMA SEKVENCI Objekti
Trans
OPIS [ef obrade Radnik ^ek Izve{taj
plata
plata
Granica Aktivacija
sistema Korisni~ki interfejs Doga|aj
PRIMER DIJAGRAMA KOLABORACIJE
formiraj ( )
Narud`benica
1. Dodaj ima
za
StavkaNar Artikal
1.1 proveri(StavkaNar)
1.2 izuzmi (StavkaNar.kol)
Narud`benica
Narbr
...
Formiraj ( )
ima
StavkaNar Artikal
za
RbrSt ArtId
Kol KolSklad
Dodaj ( ) Proveri(StavkaNar)
Izuzmi(StavkaNar.kol)
DOGADJAJ 1 (argument)
STANJE 1 [uslov 1 ] / akcija 1 STANJE 2
do: AKTIVNOST 1 do: AKTIVNOST 2
DOGADJAJ 1 (argument)
[uslov 2 ] / akcija 2
STANJE 3
do: AKTIVNOST 3
PRIMER IMPLEMENTACIONOG DIJAGRAMA
Monty Server : Ra~unarServer
"baza_podataka"
sastanciDB
Rasporedjivanje rezervacija
Branov Ra~unar : PC
Planer
METODOLOGIJA
IDENTIFIKACIJA SISTEMA
Definisanje funkcionalnog modela preko SSA
Definisanje Slučajeva korišćenja iz primitivnih funkcija SSA
REALIZACIJA SISTEMA
Definisanje strukture objektnog modela (ili Modela objekti veze)
Opis dinamike svakog Slučaja korišćenja
Definisanje potpunog dijagrama fundamentalnih klasa
PROJEKTOVANJE
Definisanje klasa baze podataka
Definisanje interfejs klasa
IMPLEMENTACIJA
PRIMER DEFINISANJA OPERACIJA ZA
DIJAGRAM KLASA
Narud`benica Stavka Artikal
Formiraj
Dodaj Proveri
Izuzmi
Narud`benica
Formiraj ( )
Stavka
Artikal
Dodaj ( )
Proveri ( )
Izuzmi ( )
POTPUNO ODVAJANJE SPECIFIKACIJE I
IMPLEMENTACIJE - TROSLOJNA
ARHITEKTURA SOFTERA
I NTERFEJS K ONTROL NE K L A SE BA Z E
K L A SE (POSL OV NE PODA TA K A
K L A SE)
Enterprise Architect
Visual Paradigm
Rational Rose
Projektovanje informacionih sistema
“Fontana” model
Spralni model
(Iterativno) Inkrementalni pristup
KONVENCIONALNI "VODOPAD" ŽIVOTNI CIKLUS
PLANIRANJE
RAZVOJA
ANALIZA I
SPECIFIKACIJA
ZAHTEVA
PROJEKTO-
VANJE
IMPLEMENTA-
CIJA (kodiranje
i testiranje)
ODRŽAVANJE
KONVENCIONALNI ŽIVOTNI CIKLUS – STRUKURNI
PRISTUP
1. PLANIRANJE – BSP METODA
2. ANALIZA I SPECIFIKACIJA ZAHTEVA
STRUKTURNA SISTEMSKA ANALIZA NALAŽENJE SKUPA
“ATOMSKIH” FUNDAMENTALNIH FUNKCIJA SISTEMA,
NJIHOVIH ULAZA I IZLAZA
OPIS ULAZA, IZLAZA I SKLADI[TA PREKO RE^NIKA SSA.
OPIS POJEDINA^NIH ATOMSKIH FUNKCIJA PREKO
PSEUDOKODA
KONVENCIONALNI ŽIVOTNI CIKLUS – STRUKURNI
PRISTUP
2. PROJEKTOVANJE
Logičko projektovanje
Izgradnja odgovarajućeg modela podataka (model objekti-veze)
Transformacija modela objekti veze u normalizovan relacioni model.
Projektovanje strukturnih programa
Fizičko projektovanje
Fizičko projektovanje baza podataka
Projektovanje korisničkog interfejsa
Dodavanje “fižičkih elemenata” strukturnim programima.
KONVENCIONALNI ŽIVOTNI CIKLUS – STRUKURNI
PRISTUP
4. Implementacija
Kodiranje u nekom strukturnom jeziku i testiranje ili
Primena generatora aplikacija (jezika četvrte generacije)
Relacione baze podataka i dvoslojna klijent-server arhitektura.
KLIJENT
(Forme, kod
aplik.)
SERVER BAZE
P ODAT AKA
(Struktura baze i
dinami~ka pravila
integr) .
KONVENCIONALNI ŽIVOTNI CIKLUS – OBJEKTNI
PRISTUP
1. PLANIRANJE – Ništa specifično
2. ANALIZA I SPECIFIKACIJA ZAHTEVA
• Izrada Slučajeva korišćenja: Dijagram slučajeva korišćenja i
verbalni opis svakog SK
• Izrada sistemskih dijsgrama sekvenci
Opis SK:
<<extend>> Upravljanje 1. Učesnici
Prodaja
zalihama
2. Namena
<<include>>
<<include>
>
3. Kratak opis
4. Pre i Post uslovi
Registrovanje 5. Opis osnovnog toka
artikala Placanje
događaja
6. Opis alternativnog
toka događaja
Placanje u Placanje
gotovom katicom
KASIR
:System
placanje (iznos)
KONVENCIONALNI ŽIVOTNI CIKLUS – OBJEKTNI
PRISTUP
3. PROJEKTOVANJE
Logičko projektovanje
Izrada konceptualnog modela (dijagrama klasa bez operacija)
Izgradnja dijagrama sekvenci, dijagrama kolaboracije ili dijagrama
aktivnosti za opis dinamike sistema (logike aplikacije)
Izgradnja kompletnog logičkog modela sistema (dijagram klasa sa
operacijama definisanim preko dijagrama sekvenci kolaboracije ili
aktivnosti)
KONVENCIONALNI ŽIVOTNI CIKLUS – OBJEKTNI
PRISTUP
4. PROJEKTOVANJE
Fizičko projektovanje (zavisno od konkretnog okruženja)
Projektovanje baze podataka
Projektovanje korisničkog interfejsa
Dodavanje novih klasa na osnovu odgovarajućih uzora (pattern-a): MVC
patern, Perzistentni brokeri i mnogi drugi
Izgradnja kompletnog fizičkog modela sistema
KONVENCIONALNI ŽIVOTNI CIKLUS – OBJEKTNI
PRISTUP
5. IMLEMENTACIJA
Raspoređivanje delova modela na pojedine elemente višeslojne arhitekture,
Transformacija fizičkog modela u konkretno implenemtaciono okruženje
Dodatno kodiranje
Testiranje
KONVENCIONALNI ŽIVOTNI CIKLUS – NEDOSTACI
PLANIRANJE
RAZVOJA
ANALIZA I
SPECIFIKACIJA
ZAHTEVA
PROJEKTO-
VANJE
IMPLEMENTA-
CIJA (kodiranje
i testiranje)
ANALIZA I
SPECIFIKACIJA
ZAHTEVA
PROJEKTO-
VANJE
IMPLEMENTA-
CIJA (kodiranje
i testiranje)
Problemi održavanja:
ODRŽAVANJE
Requirements
An iteration in the
elaboration phase
Analysis
Design
Implementation
Test
Specifikacija
arhitekture sistema Specifikacija Evaluacija
Izrada prototipa
(baze podataka i aplikacije prototipa
skupa aplikacija)
Projektovanje i
izgradnja konačne
aplikacije
Transformacija
Analiza Formalna
specifikacije u Radni sistem
zahteva specifikacija
implementaciju
Transformacija
Analiza Formalna
specifikacije u Radni sistem
zahteva specifikacija
implementaciju
S
X
U U x X --> X U x X --> Y Y
Prelazna funkcija Izlazna
stanja trasformacija Kutija
stanja
S u12 y12
U Y
u11 y11
u13 y13
Prozračna
kutija
Transformacioni razvoj:”Sistemsko-
teorijski životni ciklus” – FON kraj prošlog
veka
1. Identifikacija sistema: nalaženje funkcionalnog modela sistema, na osnovu
nekog posmatranja (analize):
S:šFa : T x U ---> Y, a e A}
2. Realizacija sistema: nalaženje modela sistema u izabranom prostoru stanja.
: U x X X (Funkcija prelaza stanja)
= U x X Y (Izlazna transformacija)
3. Implementacija: kodiranje i testiranje
Transformacioni razvoj:”Sistemsko-
teorijski životni ciklus” – FON kraj prošlog
veka
Identifikacija sistema – skup funkcija (bilo koji alat za funkcionalnu
specifikaciju sistema, Dijagrami tokova podataka, najbolje, a mogu i
Slučajevi korišćenja)
Realizacija sistema:
Izbor najpovoljnijeg modela za realizaciju
funkcija
Nalaženje minimalne realizacije u okviru
izabranog modela.
SISTEMSKO-TEORIJSKI “ŽIVOTNI CIKLUS”
4. Sinteza upravljanja
O B JE K T N I M O D E L • Omogućeno upravljanje
SK U P M E \ U SO B N O P O V E Z A N I H pojedinačnim funkcijama
O B JE K A T A
• Savremeni menadžment je
orjentisan prema upravljanju
procesima koji predstavljaju
F3 F4 F5
orkestraciju funkcija u cilju
obavljanja nekog zadatka.
K o r i sn i k K o r i sn i k
( A k ter ) ( A k ter )
Upravljanje procesima- Modeli procesa
Danas postoji gotovo opšta saglasnost da je upravljanje međusobno
povezanim i međusobno zavisnim poslovnim procesima ("process
centered management approach") osnova uspešnog funkcionisanja
bilo koje organizacije
Reinženjering Razvoj
Upravljanje
poslovnih ..... informacionih
kvalitetom
procesa sistema
Modeli (poslovnih)
procesa
Standardi i
modeliranje
UPRAVLJAČKI INFORMACIONI SISTEMI
P R O C E SO R 1
Praćenje realizacije
F1 F2
nekog ugovora,
Praćenje realizacije
U P R A V L JA ^ K I
M E H A N IZ A M
"W F E N G IN E "
M O D E L PO D A T A K A
O B JE K T N I M O D E L
narudžbenice kupca,
Sprovođenje nekog
F3 F4 F5 upravnog postupka i
slično.
P R O C E SO R 2 P R O C E SO R 3
Platformski zavisan
model Platform Specific Model- PSM
PSM
Model IS implementiran u datom
okruženju.
Modelom vođeni razvoj
Modelom vođeni razvoj omogućava:
Specifikaciju sistema nezavisnu od bilo
kakve implementacije;
Specifikaciju platforme;
Izbor platforme za implementaciju
specifikaovanog sistema;
Transformaciju specifikacije sistema u
izabranu platformu.
Reference: Osnovne
1. G.Booch, J.Rambaugh, I Jacobson, The Unified
Modeling Language – User Guide,Addison
Weseley,1999,
2. J.Rambaugh, I Jacobson, G.Booch, The Unified
Modeling Language – Reference Manual,Addison
Weseley,1999,
3. I Jacobson, G.Booch, J.Rambaugh, The Unified
Software Development Process, Addison
Weseley,1999,
4. Larman, G., Applying UML and Patterns, Prentice
Hall, 1998.
5. Gamma, E., Helm, R., Johnson, R., Vlissider, J.,
Design Patterns, Addison-Weseley, 1995.
6. Fowler, M., Analysis Patterns, Addison –Weseley,
Reference: Dati materijali
4. OMG, UML 2.0 Infrastructure Specification
5. OMG, UML 2.0 Superstructur Specification
6. OMG, MDA Guide Version 1.0.1
7. OMG, Meta Object Facility (MOF) 2.0 Core
Proposal
8. OMG, MetaObjectFacility(MOF)Specification
9. Rational Software Corporation, UML Profile For
EJB
10. J.Bezevin, Model Engineering for Software
Modernization
Reference: Dati materijali
11. L.Fernández, and A.Moreno, An Introduction to UML
Profles
12. Jean Bezivin, Applying MDA Approach to B2B
Applications: A Road Map
13. John D. Poole, Model-Driven Architecture: Vision,
Standards and Emerging Technologies
Projektovanje informacionih sistema
ANALIZA ZAHTEVA I
SPECIFIKACIJA IS
MODELI I MODELOVANJE
Scenario State
Scenario
Diagrams State
Diagrams
Dijagrami
Diagrams Dijagrami
Diagrams
kolaboracije Modeli komponenti
Scenario Component
Scenario Component
Diagrams
Diagrams
Dijagrami Dijagrami
Diagrams
Diagrams Rasporeda
prelaza stanja Dijagrami
aktivnosti
ASPEKT SLUČAJEVA KORIŠĆENJA
Y 1 U 1
U 2 Y 2 U 3 Y 3
“atomskih transakcija”,
“slučajeva korišćenja”) - SSA
R1 R2
Y 3
softverskog sistema - SK
komuniciraju samo preko stanja sistema
MODEL SLUČAJEVA KORIŠĆENJA
Pod terminom “slučaj korišćenja” podrazumeva se
jedan specifičan način korišćenja IS, jedna “atomska”
funkcija IS. Preko “slučaja korišćenja” opisuje se interakcija
nekog objekta van sistema sa samim IS. Skup “slučajeva
korišćenja” predstavlja sve pretpostavljene načine korišćenja
sistema.
POD 7 8 9
ULAG 4 5 6
PRENOS 1 2 3
PREKID 0
Kada dva aktera imaju slične uloge u odnosu na sistem oni mogu
naslediti zajedničkog apstraktnog aktera. Ako se isti slučaj
korišćenja može povezati sa različitim akterima, pogodno je
definisati apstraktnog aktera i opisati samo jedan slučaj
korišćenja. Koncept apstraktnog aktera je takođe koristan za
opisivanje privilegija u korišćenju nekog sistema.
Primalac izveštaja
o ukupnom
prometu
Komitent Administrator
KOLABORACIJA I SLUČAJ KORIŠĆENJA
Kolaboracija "Sistem za automatske
transakcije sa novcem" implementira
(realizuje) SK "Podizanje".
Kolaboracija je asocijacija elemenata
koji u međusobnoj saradnji realizuju
neki zahtev. (Navedene klase
"učesnici")
SPOLJNI_ TOK_PODATAKA_1
OBJEKAT_1
TOK_PODATAKA_6
SPOLJNI_
PROCES_A
OBJEKAT_2
1.
TOK_PODATAKA_2
TOK_PODATAKA_3
TOK_PODATAKA_5
TOK_PODATAKA_4
PROCES_B
2.
SKLADI[TE_PODATAKA
HIJERARHISKA DEKOMPOZICIJA PROCESA
NIVO I
SKLADP_1 SKLADP_2
TOKP_3
TOKP_2 TOKP_5
SPOLJNI_ PROC_B PROC_C
OBJEKAT_2 2. 3.
TOKP_3 NIVO II
PROC_BA
2.1
TOKP_2a
KOMITENT
BANKOVNI
Dijagram AUTOMAT
konteksta
BAZA PODATAKA
RAČUNARA BANKE
PRIMER SSA- BANKOVNI AUTOMAT
KOMITENT
Račun
Podaci za
ulaganje Račun Podaci za
Račun Podaci za
podizanje prenos
[]
BANKOVNI AUTOMAT
KONCEPTUALNO
MODELOVANJE
Konceputulani model
Konceptualni model predstavlja
suštinske karakteristike sistema za koji
se projektuje baza podataka.
Opisuje se na visokom nivou apstrakcije,
preko modela podataka.
Predstavlja celokupan mogući
informacioni sadržaj baze podataka,
nezavisno od toga koji je deo tog sadržaja
i kako implementiran.
Konstruisanje konceptulanog
modela
Koriste se intelektualni alati kao što su model
podataka ‘ PMOV, )DEF1X, Dijagram klasa,
Postupak modelovanja je uvek veština , zavisi od
sposobnosti, znanja i iskustva analitičara.
Ne mogu se dati neka stroga pravila modelovanja
koja bi, bez obzira na to ko modelovanje vrši, vodila
do jedinstvenog modela složenog realnog sistema.
Mogu se dati samo opšte metodološke preporuke,
opšti metodološki pristupi, kao pomoć u ovom
složenom poslu..
Pristupi konceptualnom
modelovanju
Postoji više metodoloških pristupa
konceptualnommodelovanju, a u razvoju modela nekog
konkretnog sistema oni se gotovo uvek kombinuju.
Integracija podmodela;
Direktno modelovanje na bazi verbalnog opisa sistema;
Konkretizacija opštih generičkih modela, odnosno
korišćenje uzora paterna ;
Normalizacija relacija; - (specifican za relacioni model)
Transformacija jednog modela u drugi direktno i
inverzno inženjerstvo .
PROJEKTOVANJE RELACIONIH BAZA
PODATAKA
MLB*
NAD POD
STRUK
IMER R,C R,C
ZANIMANJE
SASTAV PRIMENA
[IFOD NAZOD (0,M) (0,M)
STAROST
C,C C,C
R,C R,C
ZAPO[LJAVA (1,M) R,C C,C
RADI (1,1) (1,M) (0,M)
RADNIK ZAPOS ODELENJE PROIZVODI PROIZVOD
DATUM IZNOS
MA[INA MATERIJAL
PRIMER
Na osnovu pravila P1 dobija se:
PROIZVODI(ŠIFOD,ŠIFPRO)
STRUKT(ŠIFPRONAD, ŠIFPROPOD, UGRKOL)
A B C
A B C
SINTEZA RELACIJA NA OSNOVU TEORIJE
FUNKCIONALNIH ZAVISNOSTI
[DOB,
[DOB 0 0 [KUP
[KUP
ELIMINISANJE
NEPOTPUNE
A B C FUNKCIONAL.
ZAVISNOSTI NA ZKUP
ELIMINISANJE TRANZITIVNE
ZAVISNOSTI
[DOB,
[DOB 0 0 [KUP
[KUP
A B C
NA ZKUP
SINTEZA RELACIJA NA OSNOVU TEORIJE
FUNKCIONALNIH ZAVISNOSTI
Prethodni grafovi ukazuju na mogućnost definisanja postupka za
sintezu relacija na osnovu zadatog skupa atributa i njihovih
međusobnih funkcionalnih zavisnosti Da bi se ovaj problem formalno
definisao uvedimo i sledeće definicije:
Zatvaranje skupa funkcionalnih zavisnosti F je skup F+svih
funkcionalnih zavisnosti koje se mogu dedukovati iz F, preko negog
skupa pravila zaključivanja.
Posmatrajmo dva skupa funkcionalnih zavisnosti F i G. Kaže se da je
skup G prekrivanje skupa F ako je G+ = F+, tj ako su im zatvaranja
ista. U tom slučaju se, kaže da su skupovi G i F ekvivalentni.
SINTEZA RELACIJA NA OSNOVU TEORIJE
FUNKCIONALNIH ZAVISNOSTI
Formalno se problem projektovanja baze podataka može definisati na
sledeći način:
Za skup funkcionalnih zavisnosti definisan modelom
sistema naći minimalno prekrivanje i implementirati
ga preko odgovarajućeg skupa relacija
•PRAVILA ZAKLJUČIVANJA ZA IZVOĐENJE
ZATVARANJA FUNKCIONALNIH ZAVISNOSTI?
Korak 0:
f1: X1X2 ---> A f5: AX1 ---> B
f2: X1X2 ---> D f6: BX2 ---> C
f3: CD ---> X1 f7: C ---> A
f4: CD ---> X2
PRIMER BERNSTEIN-ovog ALGORITMA
R1(X1, X2, C, D)
R2(A, X1, B)
R3(B, X2, C)
R4(C, A)
FIZIČKO PROJEKTOVANJE RELACIONIH BAZA
PODATAKA
F)Z)ČKO PROJEKTOVANJE BAZA PODATAKA SE
VRŠ) NAKON POTPUNOG LOG)ČKOG
PROJEKTOVANJA, NA OSNOVU JASNE LOG)ČKE
STRUKTURE BAZE PODATAKA.
F)Z)ČKO PROJEKTOVANJE BAZA PODATAKA
VEOMA JE ZAVISNO OD KONKRETNOG SUBP.
N)JE UOB)ČAJENO DA SE VRŠE NEK) DETALJN)
F)Z)ČK) PRORAČUN) , RAD)JE SE PR)MENJUJU
EKSPERTSKA ZNANJA ) KASN)JE PODEŠAVANJE
F)Z)ČKE STRUKTURE.
FIZIČKO PROJEKTOVANJE RELACIONIH BAZA
PODATAKA - KORACI:
KONCEPTUALNO
MODELOVANJE 2
METODOLOGIJA MODELOVANJA
1. INTEGRISANJE PODMODELA
2. DIREKTNO MODELIRANJE
3. KOMBINOVANI METOD
INTEGRACIJA PODMODELA
Postupak integracija podmodela podrazumeva:
KATALOG
OTPREMDOB NABAVKA
DOBAVLJA^ NARKUP
FAKTURA
1.
PRODAJA
PLA]ANJA
2.
PROIZVODI
RA^UN
OTPREMKUP KUPAC
OTPREMNICE I
PRIJEMNICE
NARUD@BKUP
DATDOB
OTPREMNICE
SKLADI[TENJENE
3.
DTP ZA FUNKCIJU “NABAVKA”
OTPRDOB
DATDOB
NARU^IVANJE
PRIHVATANJE
NARDOB
1.2
KATALOG 1.3
DOBAVLJA^
OBRADA
OSNOV.
PODATAKA
1.1
DATOB DATPRO
OTPREMNICE I
PRIJEMNICE
PLA]ANJE
1.4
DTP ZA FUNKCIJU “PRODAJA”
PLA]ANJA
NARKUP
RA^UN
KUPAC
OTPREMKUP
OBRADA
PORUD@BINA
2.1
KUPCI
PROIZVODI
PROIZVODI OTPREMA
2.2
NARUD@BKUP
OTPREMNICE
UPLATE
KUPCI
NAPLATA
2.3
STRUKTURA TOKOVA I SKLADIŠTA
Sif_dob N aziv _d o b A d r e sa _ d o b
D o b av lja~
1,M
B r o j_o tp r D atu m _o tp r
O t p r e m n i ca D o b a v
1,M
Sif_p r o izv N aziv _p r o izv
O tp r _k o l V r e d n o st
1,1 0,M
R ed _b r St a v k a O t p r e m n i ce Za P r o i zv o d
STRUKTURA TOKOVA I SKLADIŠTA
D o b av lja~ PODMODEL ZA
0,M
NARUD@BENICU
B r o j_n ar U p u } en a D atu m _n ar
DOBAVLJA^A
1,1
N a r u d ` b e n i ca D o b
1,1 0,M
R ed _b r St a v k a O t p r e m n i ce Za P r o i zv o d
INTEGRACIJA PRETHODNA DVA PODMODELA
0,M
D o b av lja~ O t p r e m n i ca D o b a v
0,M 1,M
D atu m _n ar O tp r _k o l
B r o j_n ar U p u } en a V r e d n o st
R ed _b r
1,1
St a v k a O t p r e m n i ce
N a r u d ` b e n i ca D o b
1,1
O p is 1,M Za
N ar _k o l
0,M
1,1 0,M
R ed _b r St a v k a O t p r e m n i ce Za P r o i zv o d
Sif_p r o izv
N aziv _p r o izv
(1,1) VIRMAN
UPLA]EN
(0,M) (1,M)
(0,M) (0,M)
(0,M)
STAVKA_KAT
STAVKA_PRIJ
KONA^NI
STAVKA_OTPRDOB
(0,M)
(1,1) MODEL
(1,1)
POSLATA
SADR@I
OPISUJE
(0,M)
(1,1) (0,M)
(0,M) (1,1)
PROIZVOD POPRIJ
NARDOB
(0,M) (1,1)
OTPRPRO SATVKA_OTPRK
(0,M)
NARPRO
(1,M) (0,M)
(1,1) RA^UN
PORA^ OTPRKUP
STAVKA_NARD (0,M)
STAVKA_NK (0,M)
(1,M)
(1,M)
(1,M) NO
(1,M)
ZAOTPR
(0,M)
UPLATAK
NARKUP
OTPROOB
(0,M)
(0,M)
(0,M)
SADR@I
KUPAC
Međusobno nekonzistentni podmodeli
A D
VrstaF (0,1)
S
B C
Podmodel (a)
A H
Podmodel (b)
Uzor za konstruisanje model
podataka u poslovnim sistemima
Strukture tokova i skladišta podataka su osnova za nalaženja modela.
Delovi navedenog primera mogu se uopštiti, odnosno poslužiti kao
uzor:
Neki tok ili skladište podataka se sastoji od jednog ili više poslovnih dokumenata.
Jedan poslovni dokument prikazuje neki skup povezanih objekata. Neophodno je
identifikovati te objekte, utvrditi koja polja dokumenta predstavljaju njihove
atribute i razlučiti veze objekata koje su na njemu prikazane.
Može se konstatovati da, najčešće, poslovni dokumenti imaju jednu od sledeća
dva tipa struktura: (1) “ravni dokumenat” u kome se sva polja pojavljuju samo
jednom (Faktura, UplataDob) i (2) “dokumenat sa stavkom” u kome postoje
stavke (tabele), odnosno skup polja koje se višestruko ponavljaju
(NarudžbenicaDob, Otremnica, Katalog). Pogodno je stavke tretirati kao posebne
“slabe” objekte u modelu. Isto tako je pogodno pretpostaviti da stavke imaju
redne brojeve.
Dokumenta koja se primaju iz “okoline” treba tretirati kao “slabe objekte”, sa
njihovim pošiljaocima kao nadređenim objektom (Otpremnica, Faktura, Katalog).
Očigledno je da BrojDokumenta ne može biti njihov jedinstveni identifikator, već
se identifikacija mora proširiti i sa identifikatorom pošiljaoca.
DIREKTNO MODELOVANJE
Registrovanje Registrovanje
novih novih
video traka ~lanova
Registrovanje članova
1. Formiraju se podaci o članu (broj lične karte, ime, prezime, adresa,
telefon).
2. Podaci o članu se unose u bazu.
Iznajmljivanje traka
1. Član bira jednu ili više traka koje želi da iznajmi.
2. Formira se dokumenat Izdatnica u koga se unose podaci o članu, a kao
posebne stavke izdatnice unose se podaci o iznajmljenim trakama. Unosi
se i datum izdavanja i predviđen datum vraćanja traka.
3. Na osnovu podataka o dnevnoj renti traka, sračunava se i ukupan iznos
koji član treba da plati, ako trake vrati na vreme.
4. Član potpisuje izdatnicu, dobija njenu kopiju i odnosi trake.
Vraćanje traka
1. Član vraća trake.
2. U izdatnicu se unosi datum kada su trake vraćene i ukupna cena
iznajmljivanja.
3. Član plaća iznajmljivanje.
Konceptualni model “Video kluba”
Izdatnica
^ lan
Broj
BrLK Datum
Ime 0..* Izdata 1..1 PredvDatumVra}
Prezime Zadu` enje
Adresa DatumVra} anja
Telefon Obra~unIznajm
Uplata
1..*
Ima
1..1
Traka
Dobavlja~
Stavka izdatnice
Dobavio IdTrake Za
IdDobavlj
NazivTrake IznosPoTraci
NazivDobavlj 1..* 1..1 0..* 1..1
VrstaTrake
AdresaDobavlj
BrojKopija
DnevnaRenta
VERZIJE MOV-a: IDEF1x standard
Veze po PMOV sintaksi
Veze po IDEF1x i IE standardu
VERZIJE MOV-a: IDEF1x standard
VERZIJE MOV-a: IDEF1x standard
a) jedan:vise identifikujuca veza
b) jedan:vise neidentifikujuca veza
c) nespecificirana veza
Objekti po PMOV sintaksi
Objekti po IDEF1x standardu
Atributi i domeni
Viseznacni atributi
Viseznacni atributi
Viseznacni atributi
Viseznacni atributi
Primer 1: Avionska karta za jednu standardnu avio-liniju može biti sastavljena od više
kupona. Jedna linija može da uključi više letova na relaciji izmedju mesta polaska i mesta
krajnjeg odredišta. Svaki avion obično ima nekoliko letova u toku dana (let je
identifikovan preko datuma i vremena poletanja aviona). Karta sadrži podatke o avionskoj
liniji, prezimenu i imenu putnika, mestu polazišta, mestu krajnjeg odredišta, datumu
izdavanja, roku važenja i ceni. Kuponi karte sadrže identične podatke i podatke o
pojedinačnim letovima izmedu polazišta i krajnjeg odredišta: mesto poletanja, mesto
sletanja, osnovni podaci o avionu. broj leta, klasa sedišta, datum i vreme poletanja.
Generalizacija i specijalizacija
VERZIJE MOV-a: IDEF1x standard
VERZIJE MOV-a: IDEF1x standard
Agregacija
VERZIJE MOV-a: IDEF1x standard
Projektovanje informacionih sistema
UML Modeli
- Aspekt projektovanja -
(statički opis strukture sistema)
ASPEKTI MODELA U UML-U
Za svaki aspekt daje se statički i dinamički opis sistema
ASPEKT ASPEKT
PROJEKTOVANJA IMPLEMENTACIJE
ASPEKT ASPEKT
PROCESA RAZME[TANJA
Modeli i dijagrami
Model je potpun opis sistema
sa neke tačke gledišta
State
State
Diagrams
Dijagrami
Diagrams
Use Case kalsa
Use Case
Dijagrami
Diagrams State
Use Case Diagrams State
Diagrams
Use Case slučajeva Dijagrami
Diagrams
Diagrams
Dijagrami korišćenja objekata
Diagrams
sekvenci
Scenario State
Scenario
Diagrams State
Diagrams
Dijagrami
Diagrams Dijagrami
Diagrams
kolaboracije Modeli komponenti
Scenario Component
Scenario Component
Diagrams
Diagrams
Dijagrami Dijagrami
Diagrams
Diagrams Rasporeda
prelaza stanja Dijagrami
aktivnosti
ASPEKT PROJEKTOVANJA
Aspekt projektovanja pretstavlja realizaciju sistema u "objektnom
prostoru stanja".
PRIMER
Odelenje Kancelarija
DIJAGRAMA
naziv:Imena
* Lokacija adresa: String
KLASA
0..1 telefon:Broj
*
* *
{podskup}
Lice Centrala
ime:Imena
radnikId:Integer
zavanje:String
dajFoto(p:Foto) Podaci_o_Ug
dajGlas() adresa:String
dajUgovor()
dajDosije()
Li~ni dosije
pla}enPorez
radnaIstorija
plata
ITajniPodaci
kolaboracija
Razmena poruka
izme|u ~vorova
TransportniAgent
po{iljalac
primalac
IDistribucija
po{aljiPoruku()
* DIJAGRAM KLASA
KAO STATIČKI OPIS
KOLABORACIJE
*
sandu~e
Red Poruka
ID
dodajPoruku() zaglavlje
izbaciPoruku telo
ra~un()
UlazniRed IzlazniRed
PRIMER DIJAGRAMA KLASA KAO
LOGIČKE ŠEME BAZE PODATAKA
Student
{persistent} Radnik
{persistent}
0 .. * broj_ind mtbr
Slu{aju ime ime
registrovanje_za_kurs zaposli_se
ispi{i_se otpusti_se
0 .. * Upisan
Sekcija
Predmet Asistent Nastavnik
Sadr`i {persistent}
{persistent} 0 .. * {persistent} {persistent}
idesek
ime je_sek Rang
opis
idpr
Zahtevan
dr`i_se 0 .. * 0 .. * 0 .. * 0 .. *
0 .. * Ve`be dr`i_ve`be
izostavljen
0 .. * predaje dr`i_predavanje
Zahtevase_prethodno
Definisanje Klase
Klasa je okvir (template) tj.specifikacija
za kolekciju objekata koji deli isti skup atributa i operacija.
Nastavnik
Klasa atributi
operacije
Objekti
• Veze - Relationships
Veza je ono sto klasa ili neki objekat zna o
durgoj klasi ili objektu.
Klasa
CLAN
mlb
{
prezime
ime
atributi telefon
adresa
grad
itd...
proveriIzdatCD
operacije
{ proveriVraceneCD
kupiCD
itd...
UML Class Diagram Notation 2 of 2
Class
Generalization
Relationship
Object Object
Aggregation Composition
Object Association Association Association
n n 1..* 1
0..* 0..*
<<abstract>>
ULOGA
atributi
operacije
Osoba
atributi
operacije
Žensko
uloga
<<abstract>> Medicinska
Osoba Sestra
Pol
Muško {complete} pacijent
Fizio-
#1 terapeut
Pacijent
#3
#2
Kardinalnosti
1
Klasa tačno jedan
0..* više
Klasa (nula ili više)
0..1 opciono
Klasa
(nula ili jedan)
m..n tačno definisan
Klasa brojni opseg
Primer:
0..*
Preduzeće Radnik
1
Aggregation Composition
Nastavnik Porudžbenica
1..* 1
0..* 1..*
Predmet StavkaPorudžbenice
*
Elemenat modela 0..1 * VrednostEtikete
etiketa:Naziv
1..* vrednost:String
*
Ograni~enje
*
*
or
Generalizuju}i
elemenat
Stereotip
* 1
icona:Geometrija
osnovnaKlasa:Naziv 0..1
*
Dijagram klasa (Stereotipi)
Važni stereotipi:
<<interface>> specificira kolekciju operacija za specifikaciju
servisa
<<type>> specificira strukturu i ponašanje (ne implementaciju)
<<enumeration>> specificira predefinisane vrednosti
<<implementationClass>> pomoćna klasa kreirani u detaljnom diza
Položio
Datum
Ocena
Association
Class
DIJAGRAM OBJEKATA
(POJAVLJIVANJA)
Dijagram objekata pokazuje skup objekata i njihovih veza u jednom trenutku
vremena.
Dijagrami objekata modeliraju stanje sistema u jednom trenutku vremena,
odnosno daju zamrznutu sliku sistema u jednom trenutku vremena.
Dijagrami objekata daju statičku strukturu za opis dinamičkog ponašanja sistema
preko dijagrama interakcije. Oni su pojavljivanje odgovarajućeg dijagrama klasa i
statički deo dijagrama interakcije
Pretstavljaju skup objekata i pojavljivanja veza, mogu da sadr`e i komentare i
ograničenja, da budu podeljeni u pakete i podsisteme.
NAČIN OZNAČAVANJA OBJEKATA (POJAVLJIVANJA)
Radnik:Ana
Eksplicitno prikazivanje
[na godi{njem odmoru ] stanja objekta
:Transakcija
PRIMER DIJAGRAMA OBJEKATA
r:Robot
[uPokretu ]
<<globalni>>
a1:Povr{ina a2:Povr{ina
Lice
1..* poslodavac
Preduze}e
+sra~Platu(d:Danrada)
+rasporedi(o:Odel) radnik *
rasporedi(erc)
l:Lice :Preduze}e
UML Modeli
- Aspekt projektovanja -
(dinamički opis sistema)
ASPEKT PROJEKTOVANJA
Aspekt projektovanja predstavlja realizaciju
sistema u "objektnom prostoru stanja".
novaOtp(br,kup)
novaStavka(prkod,kol)
provera(prkod,kol)
potvrda(kol)
:stavkaNar
novaStavkaNar(prkod,kol)
krajOtpr(br,kup)
Dijagram sekvenci (Sequence diagram)
Actor
Object
pressButton1() blinkHours()
pressButton1() blinkMinutes()
Activation Lifeline
selectZone()
lookupPrice(selection)
price
displayPrice(price)
Dataflow
…to be continued...
*insertChange(coin) lookupCoin(coin)
price
Iteration displayPrice(owedAmount)
[owedAmount<0] returnChange(-owedAmount)
Condition
…to be continued...
ChangeProcessor
Passenger
Creation
createTicket(selection)
Ticket
print()
free()
Destruction
1: prepare ( )
2: process order ( )
:Order
1.1: prepare ( )
(cena)
(ukcena)
zapamti( )
(narudz br)
SISTEMSKI DIJAGRAM SEKVENCI
UnosUDelovodnik(Godina, Vrsta)
s : System
Pisar
SISTEMSKI DIJAGRAM SEKVENCI
UnosUDelovodnik(Godina, Vrsta)
PostojeciPredmet(RedniBroj)
ZavediAkt(VrstaAkta, Podnosilac,
Predmet)
Pisar s : System
Delovodnik
Vrsta
Godina
*
0..1 * * Pripada
Klasifikacija Predmet Organizaciona
Jedinica
Sifra RedniBroj
Naziv NazivPredmeta Sifra
Naziv
1..*
Akt
Podbroj
Predmet
DatumPrijema
VrstaAkta
Podnosilac
UnosUDelovodnik(Godina, Vrsta)
d=DajDelovodnik(Godina, Vrsta)
create()
TekuciDelovodnik(d)
Pisar p : Pisarnica
u : Unos tekPred :
d : Delovodnik Predmet
PRIMER DIJAGRAMA KOLABORACIJE
NaUnos
:IzborDelovodnika
1: UnosUDelovodnik(Godina, Vrsta)
1.2: create
1.3: TekuciDelovodnik(d)
:FormaUnos
PRIMER DIJAGRAMA KOLABORACIJE
unesiStavku(prkod,kol)
1:[ nova prodaja ]kreiraj()
3:napraviStavkuPr(spec,kol)
:Kasa :Prodaja
2: spec : = specifik(prkod)
1.1:napravi() 3:napravi(spec,kol)
:Katalog
artikala sl: Stavka
prodaje
2.1: spec : = nadji(prkod)
3.2: dodaj(sl)
:Specifik. :Stavka
arikala prodaje
DIJAGRAMI PROMENE(PRELAZA)
STANJA
Pri opisivanju dinamike sistema preko dijagrama prelaza stanja
koriste se sledeći pojmovi:
SAGLASNOST
POTEZ POTEZ
REMI
CRNOG BELOG
SAGLASNOST
BELI
CRNI NA POTEZU POBEDJUJE
MAT
DIJAGRAMI PROMENE STANJA
Akcija se mo`e obaviti i pri prelazu iz jednog u drugo stanje Na tranziciji akcije se
iskazuju uz naziv događaja, iza uslova i oznake "/".
(9) Aktivnosti. Kada je objekat (ili deo sistema) u
nekom stanju, on je bilo neaktivan ili obavlja neku
aktivnost dok ga događaj ne prevede u neko
drugo stanje.Drugim rečima, dok obavlja
određenu aktivnost, sistem je u datom stanju. Na
dijagramu prelaza stanja aktivnosti se definišu
nazivom iza ključne reči DO, u okviru stanja
(čvora).
DIJAGRAMI PROMENE STANJA
DOGADJAJ 1 (argument)
[uslov 2 = "Fals e" ] / akcija 2
STANJE 3
do: AKTIV NOST 3
DIJAGRAMI PROMENE STANJA
EMITOVANJE
UZET KE[
DO: DAJ KE[
SPREMAN SPREMAN ZA
POSTAVLJANJE RESET
DO: DAJ KARTICU UZETA
KARTICA
DIJAGRAMI PROMENE STANJA
PRIMA NOVAC
SLOBODNA
UBACIVANJE (koli~)/dodaj na saldo
poni{ti/vrati lovu
(a)
ru~ica spremna
do: POMERI RU^ICU do: POMERI RU^ICU
NA VRSTU NA KOLONU
ru~ica spremna
do: PREUZMI
PROIZVOD SA POLICE
MENJAČ
(automatski)
PRITISNI LER
LER PRITISNI RIKVERC RIKVERC
PRITISNI PRITISNI
NAPRED LER
NAPRED
PALJENJE
PRENOS
(MENJAČ)
KOLA
KOČNICA
UBRZANJE
(GAS)
PRENOS
MENJAČ
PRITISNI LER
LER PRITISNI RIKVERC RIKVERC
PRITISNI PRITISNI
NAPRED LER
NAPRED
UBRZANJE
GAS
PRITISNI
ISKLJUČEN OTPUSTI
UKLJUČEN
KOČNICA
PRITISNI
ISKLJUČEN OTPUSTI
UKLJUČEN
Početak
Kreiraj stak
DIJAGRAM PROMENE
STANJA ZA STAK Prazan
pop
Greška 1
push pop [prazan] do: prikaži
grešku 1
pop
[NOT prazan] U punjenju
pop
push [NOT pun]
push [pun]
Pun
push
Greška 2
do:prikaži grešku
2
DIJAGRAMI PROMENE STANJA OBRADU PREDMETA
H
Otvaranje
NoviPredmet(...) predmeta
Iniciran unos
DO: NoviPredmet(...)
KrajUnosa PostojeciPredmet(RedniBroj)
NoviPredmet(...)
PostojeciPredmet(RedniBroj)
ZavediAkt(...)
KrajUnosa
H
odgovor mreže
Prekid
čekanje na
do: poruka o
odgovor mreže
poništenju
poništi
unešena tajna šifra
ubačena kartica
Glavni ekran [čitljiva] do:provera
do:zahtev za
do:prikaz
tajnom šiform autorizacije
glavnog ekrana
unešen
tip
Kraj do:zahtev za
do:poruka o
do:štampaj unosom sume
lošem računu
račun
kraj unešena
nastavi suma
uspešna
Preuzet novac transakcija do:obrad
do:zahtev za do:isplati sumu novca;
novčane
nastavkom zahtev zapreuzimanje
transakcije
neuspešna
transakcija
do:poruka o
greški
poništi
State Chart Diagrams
Event Initial state State
[button2Pressed]
Transition
[button1&2Pressed]
BlinkHours IncrementHrs
[button1Pressed]
[button1&2Pressed] [button2Pressed]
BlinkMinutes IncrementMin.
[button1Pressed]
[button1&2Pressed] [button2Pressed]
BlinkSeconds IncrementSec.
Kraće iteracije
Iteracija se tretira isključivo kao definisano
vreme, a ne kao cilj koji treba ostvariti
Poređenje sa “vodopad”
modelom
MDA
Transformacija EJB
UML MODEL KLASA
Java kod
MDA i interoperabilnost
Sa tačke gledišta korisnika heterogeni
distribuirani računarski sistem treba da se
posmatra kao jedinstveni svet , bez ikakvih
platformski specifičnih barijera .
Broj različitih platformi stalno raste i ne može se
očekivati standardizacija ptpuna unificiranost
na tom nivou.
Preostaje da se standardizacija ostvari na nivo
specifikacije, odnosno modela i da se preko tih
opštih modela ostvari interoperabilnost delova
sistema realizovanih na različitim platformama.
MDA- osnovni pojmovi
Model driven zato što se u svim fazama razvoja
(spefifikacija,projrktovanje, implementacija,
održavanje koriste modeli.
Arhitektura . Arhitektura nekog sistema,
uopšte, je specifikacija njegovih delova i pravila
koja definišu način komunikacije između delova.
U MDA pristupu definišu se modeli koji se koriste
u razvoju softvera i pravila njihovog povezivanja.
Platforma je sistem sa definisanim skupom
funkcija (bez detaljne specifikacije njihove
implementacije preko koji je moguće
implementirati neki softver.
MDA- osnovni pojmovi
Vrste platformi:
Generičke:Objektna, Batch, Tok podataka
Specifične tehnologije: CORBA, J2EE
Tehnologije pojedinih proizvođača: CORBA:
Borland VisiBroker;J2EEs: IBM WebSphere,
Oracle;Microsoft .NET.
Simbol za platformu
MODELI- četvoro ovoska
hijerarhija meta-modela
u skladu sa
Meta-meta model je model meta-
M3 meta-meta- modela. On definiše pravila za
model izgradnju pravila za formiranje
konstrukcija u nekom modelu (MOF).
u skladu sa
Meta-model je model modela.
On definiše pravila
M2
meta-mode za formiranje konstrukcija u modelu
(Pravila za formiranje nekog UML
modela - UML meta-model)
u skladu sa
M1 Model IS
model sistema (UML model)
opisuje
sistem Informacioni
M0
sistem koji se
(IS) modeluje
MODELI- četvoro ovoska
hijerarhija meta-modela
u skladu sa u skladu sa
meta-meta-
EBNF
model
u skladu sa u skladu sa
gramatica
meta-mode
Pascala
Analogija
u skladu sa u skladu sa
opisuje opisuje
sistem jedno izvršenje
Jean Bézivin
(IS) Pascal programa
MODELI I METAMODELI
MOF
meta
izvor
meta
Klasa ponor Asocijacija
UML meta-model
meta
meta
1 *
Klasa Atribut
UML model
meta meta
Student
Ime:String
MODELI-
četvoronovoska
hijerarhija
meta-modela
EJB
M2 UML XMI CWM SSA
Metamod
.....
Jezgro se koristi za
definisanje
drugih metamodela i
kreiranje drugih jezika
preko koncepta profila.
Jezgro je praktično
zajednički deo za sve
ove modele.
Paketi u UML
jezgru
To znači da ako se za
neko pojavljivanje
klase
generalization
zatheva
target dobiće se
instanca asocijacije
general.
Primeri koncepata UML met-modela
mer generalizacione hijerarhije
ojmova u UML meta-modelu
Core::Basics::P
Core::Constructs::StructuralFeature
Core::Constructs::Property
Basic – specifikacija klase
Constructions – specifikacija
Dijagrama klasa
Višestruke asocijacije
Lo go vanje
Menager
V ra}anje artikala
Po kretanje kasa
“lučajevi korišće ja - Dijagram
Kasir
<<extend>> Upravljanje
Prodaja
zalihama
<<include>
<<include>> >
Registrovanje
artikala Placanje
Placanje u Placanje
gotovom katicom
Sistemski dijagram sekvenci
: Kasa
KrajProdaje( )
Placanje(Double)
Konceptualni model
Dinamika sistema – Dijagram sekvenci
: Kasa : : TransProdaje
KatalogArtikala
DajArtikal(Integer)
NapraviStavku(SpecifikacijaArtikala, Integer)
KrajProdaje( )
Ukupno( )
Placanje(Double)
NapraviPlacanje( )
Ko ač i PIM
EJB PSM
Deo generisanog koda
Java Code Generation Process --
// Import Statements
import java.rmi.RemoteException;
import javax.ejb.*;
/*
Method: KrajProdaje
*/
public Prodaja KrajProdaje() {}
/*
Method: Placanje
*/
public Double Placanje(Double Iznos) {}
Projektovanje informacionih sistema
UML Profili
UML profil
<<Stereotype>>
Remote
<<Streotype>> <<Streotype>>
EntityBean SesionBean
Stanje:VrstaStanja
<<Enumeration>>
VrstaStanja
Stateless
Stateful
EJB PSM
Deo generisanog koda
Java Code Generation Process --
// Import Statements
import java.rmi.RemoteException;
import javax.ejb.*;
/*
Method: KrajProdaje
*/
public Prodaja KrajProdaje() {}
/*
Method: Placanje
*/
public Double Placanje(Double Iznos) {}
Projektovanje informacionih sistema
context PlatnaKartica
inv : DatumDo > DatumOd
context PlatnaKartica
inv : self.DatumDo > self.DatumOd
context PlatnaKartica
inv datumOgraničenje: self.DatumDo > self.DatumOd
Osnove OCL – a: Precondition
Ograničenje koje se odnosi na operaciju
klase u UML class diagramu.
Ograničenje koje mora biti zadovoljeno u
trenutku izvršavanja operacije.
Označava se klauzulom pre.
Sintaksa:
context <classifier> :: <operacija>(<parametri>)
pre[<naziv ograničenja>]: <Boolean OCL izraz>
Osnove OCL – a: Precondition
Primer: može se proveriti raspoloživost
sredstava za uneti iznos, ako je prethodno
uneti PIN odgovarajući
context Transakcija :: proveraSume(i : Double)
pre : self.uspesnoLogovanje=true
result klauzula
odnosi se na rezultat (povratnu vrednost)
operacije nad kojom je definisano Postcondition
ograničenje.
Osnove OCL – a: Postcondition
Primer: stanje na računu posle podizanja
novca biće jednako početnom stanju
umanjenom za podignutu sumu
context Racun:: umanjiZaSumu(s:Integer):void
post: stanje = stanjet@pre - s
@pre klauzula
odnosi se na vrednost atributa pre izvršenja operacije
(npr. stanje@pre).
npr. stanje se odnosi na vrednost posle izvršenja
operacije
@pre klauzula može se koristi isključivo u postcondition
ograničenjima.
OCL navigacija
Nazivi uloga (preslikavanja) koriste se za
pristup odgovarajućim objektima preko
međusobne veze.
ukoliko naziv uloge nije definisan, koristi se naziv klase
sa malim početnim slovom.
U kontekstu instance x klase C1:
C2 C3
r2 1 r3 0..1
x.r2 je tipa C2
x.r3 je tipa C3 C1
Operacija Opis
union(s: Set(T)): Set(T) Unija seta nad kojim se poziva operacija i
seta s.
intersection(b: Bag(T)): Set(T) Presek seta nad kojim se poziva operacija i
bag – a b.
including(object: T): Set(T) Vraća originalni set uklju ujući element
object.
excluding(object: T): Set(T) Vraća originalni set isklju ujući element
object.
asOrderedSet(): OrderedSet(T) Vraća originalni set kao OrderedSet.
asSequence(): Sequence(T) Vraća originalni set kao Sequence.
asBag(): Bag(T) Vraća originalni set kao Bag.
Bag(T) operacije
Operacija Opis
union(b: Bag(T)): Bag(T) Unija bag-a nad kojim se poziva operacija i
bag-a b.
intersection(s: Set(T)): Set(T) Presek bag-a nad kojim se poziva operacija i
set-a s.
including(object: T): Bag(T) Vraća originalni bag uklju ujući element
object.
excluding(object: T): Bag(T) Vraća originalni bag isklju ujući element
object.
asSequence(): Sequence(T) Vraća originalni bag kao Sequence.
asSet(): Set(T) Vraća originalni bag kao Set.
asOrderedSet(): OrderedSet(T) Vraća originalni bag kao OrderedSet.
Sequence(T) operacije
Operacija Opis
at(i : Integer) : T Vraća i-ti element sekvence (1<=i<=size).
indexOf(object : T) : Integer Vraća indeks elementa object u sekvenci.
first() : T Vraća prvi element sekvence.
last() : T Vraća poslednji element sekvence.
asBag(): Bag(T) Vraća originalnu sekvencu kao Bag.
asSet(): Set(T) Vraća originalnu sekvencu kao Set.
asOrderedSet(): OrderedSet(T) Vraća originalnu sekvencu kao OrderedSet.
append(object: T): “Lepi” element object na kraj originalne
Sequence(T) sekvence.
prepend(obj: T): Sequence(T) “Lepi” element object na po etak originalne
sekvence.
insertAt(i : Integer, object : T) Dodaje element object na i-to mesto u
: Sequence(T) skevenci(1<=index<=size+1).
OrderedSet(T) operacije
Operacija Opis
at(i : Integer) : T Vraća i-ti element uređenog seta(1<=i<=size).
indexOf(object : T) : Integer Vraća indeks elementa object u uređenom setu.
first() : T Vraća prvi element uređenog seta.
last() : T Vraća poslednji element uređenog seta.
append(object: T): “Lepi” element object na kraj originalnog
OrderedSet(T) uređenog seta.
prepend(obj: T): OrderedSet (T) “Lepi” element object na po etak originalnog
uređenog seta.
insertAt(i : Integer, object : T) : Dodaje element object na i-to mesto u
OrderedSet (T) uređenom setu(1<=index<=size+1).
Pozivanje OCL operacija
context Komitent
inv : self.poseduje -> size() >= 1
OCL alati
Dresden OCL Toolkit
Eclipse MDT/OCL
Incremental OCL
Kent OCL Library
OCLE
OSLO – Open Source Library for OCL
................
Projektovanje informacionih sistema
QVT (Query/View/transformation)
“adržaj
Uvod
Relations jezik
Operational Mapping jezik
Kritike QVT – a
QVT alati i implementacije
Uvod
QVT predstavlja standard za transformacije
modela definisan od strane OMG – a
(Object Management Group).
Trenutna verzija standarda je QVT 1.1. (2011)
QVT specifikacija je hibridne
deklarativno/imperativne prirode.
Deklarativni deo je podeljen na dva nivoa.
Uvod – QVT arhitektura
Uvod – Relations jezik
Deklarati a spe ifika ija eza iz eđu MOF
modela.
Podrža a
Kompleksne paterne mapiranja objekata.
Implicitno kreiranje trace klasa i njihovih
i sta i, radi praće ja iz rše ja tra sfor a ije.
Poseduje i grafičku si taksu.
Uvod – Core jezik
Deklarativan jezik.
Mali odel/jezik koji podrža a apira ja
eđu pro e lji i kroz e alua iju uslo a
definisanih nad ovim promenljivim u odnosu
na skup modela.
Jednake ekspresivnosti kao i Relations jezik, sa
jednostavnijom semantikom.
Trace modeli se moraju definisati eksplicitno,
isu iz ede i iz sa e tra sfor a ije, kao što je
slučaj sa Relatio s jeziko .
Uvod – Operational Mappings jezik
Operational Mappings jezik je imperativan
jezik koji proširuje Relatio s i Core jezike.
Oslanja se na OCL.
“i taksa Operatio al Mappi gs jezika sadrži
standardne imperativne konstrukcije (npr.
različite rste petlji .
Operational mapiranje podrazumeva
mapiranje u potpunosti definisano
upotrebom Operational Mappings – a.
Uvod – Black Box implementacija
relation PackageToSchema{
domain uml p:Package {name=pn}
domain rdbms s:Schema {name=pn}
}
Relations jezik – Checkonly i Enforce
domeni
Kada se rela ija iz rša a u s eru checkonly
do e a, rši se pro era da li u to do e u
postoji element koji zadovoljava relaciju.
relation PackageToSchema{
checkonly domain uml p:Package {name=pn}
enforce domain rdbms s:Schema {name=pn}
}
Relations jezik - Patern
Vezuje se za domen.
Template izraz koji se koristi da bi povezao
ele e te odela uključe e u tra sfor a iju
sa promenljivama definisanim u okviru
domena.
Primer:
domain uml c:Class {
namespace = p:Package {},
kind='Persistent',
name=cn
}
Relations jezik – When i Where
klauzule
When klauzula defi iše uslo e pod koji a
relacija mora da bude zadovoljena.
relation ClassToTable{
domain uml c:Class {...}
domain rdbms t:Table {...}
when {
PackageToSchema(p, s);
}
where{
AttributeToColumn(c, t);
}
Relations jezik – graficka notacija
Relations jezik – Top-level
relacije
U iz rša a ju tra sfor a ije, s e top-level
relacije moraju biti zadovoljene.
Ostale relacije moraju biti zadovoljene samo
ako su pozvane iz where klauzule neke druge
relacije.
Primer:
transformation umlRdbms (uml : SimpleUML, rdbms :
SimpleRDBMS) {
top relation PackageToSchema {…}
top relation ClassToTable {…}
relation AttributeToColumn {…}
}
Operational Mapping jezik
Operational Mapping jezik omoguća a:
Definisanje transformacija upotrebom potpuno
imperativnog pristupa (operational
transformacije)
Dopunu relacionih transformacija
imperativnim operacijama koje implementiraju
relacije (hibridni pristup)
Operational Mapping jezik –
Operational transformacije
Operational transformacija predstavlja
definiciju jednosmerne transformacije koja
je izraže a a i perati a ači .
U svom potpisu definiše odele uključe e
u tra sfor a iju i ulaz u tačku
transformacije (main).
Kao i klasa, operational transformacija
ože se i sta irati zajed o sa s oji
propertijima i operacijama.
Operational Mapping jezik –
Operational transformacije
Primer:
..........
http://www.omg.org/spec/QVT/20091201/QV
TBase.xml
http://www.omg.org/spec/QVT/20091201/QV
TCore.xml
http://www.omg.org/spec/QVT/20091201/QV
TOperational.xml
http://www.omg.org/spec/QVT/20091201/QV
TRelation.xml