You are on page 1of 42

PROJEKTOVANJE

INFORMACIONIH SISTEMA

MODELOM VOĐENI RAZVOJ


(ARHITEKTURA)
MODEL DRIVEN ARCHITECTURE
Agenda
2

 MDA – osnovni pojmovi

 Četvoronivojska hijerarhija meta-modela

 MDA OMG standardi

 Preslikavanje PIM  PSM


Modelom vođeni razvoj
3

Računarski
nezavisan model
Computation Independent Model – CIM – model odgovarajućeg domena, zajednički
CIM rečnik za korisnika i projektanta.

Platform Independent Model – PIM- Model IS


Platformski Model za opis nezavisan od implementacione platforme.
nezavisan model Platforme
PIM PDM Specifikacija sistema.

Platform Description Model – PDM- Model


implementacione platforme.
Transformacija

Platformski
zavisan model
Platform Specific Model- PSM- Model IS implementiran
PSM u datom okruženju.
Modelom vođeni razvoj
4

 Modelom vođeni razvoj omogućava:


 Specifikaciju sistema nezavisnu od bilo kakve
implementacije;
 Specifikaciju platforme;

 Izbor platforme za implementaciju specifikovanog


sistema;
 Transformaciju specifikacije sistema u izabranu
platformu.
Modelom vođeni razvoj
5

 Modelom vođeni razvoj, kao i svi drugi pristupi u


transformacionom razvoju softvera, nije ništa
revolucionarno novo. To je samo jedan viši nivo
kompilacije jednog jezika u drugi.

FOTRAN
FORTRAN Compiler
Izvršni kod
Program

MDA
Transformacija EJB
UML MODEL KLASA
Java kod
MDA i interoperabilnost
6

 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 (potpuna 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
7

 “Model driven” zato što se u svim fazama razvoja


(spefifikacija,projektovanje, 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 kog je moguće implementirati neki softver.
MDA - osnovni pojmovi
8

 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
Četvoronivojska hijerarhija meta-modela
9

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-model 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
Četvoronivojska hijerarhija meta-modela
10

u skladu sa u skladu sa

meta-meta-
EBNF
model
u skladu sa u skladu sa
gramatika
meta-mode
Analogija Pascala
u skladu sa u skladu sa

model sistema Pascal program

opisuje opisuje
sistem jedno izvršenje
(IS) Pascal programa
Jean Bézivin
Četvoronivojska hijerarhija meta-modela
11

 UML specifikacija je organizovana u dva dela:


 UML 2: Infrastructure
 UML 2: Superstructure

 UML Infrastructure je predstavljena sa dva paketa:


 InfrastructureLibrary
 Primitive Types

 OMG naglašava da je moguće da se model koristi i kao


meta-model, tako da se Infrastructure Library u jednom
kontekstu može koristiti kao meta-model, a u drugom kao
meta-metamodel
Četvoronivojska hijerarhija meta-modela
12
UML Infrastructure specifikacija
13

 UML specifikacija se daje preko UML metamodela.


 Jedan od osnovnih principa UML-a je proširljivost. Zbog toga
UML 2.0 Infrastructure library sadrži dva osnovna dela:
 Jezgro (Core)

 Profiles - proširenja. Profil – mehanizam prilagođavanja


modela konkretnim platformama (J2EE/EJB, .NET/COM+ i
drugim)
Odnos “Jezgra” i ostalih modela
14

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
15

PrimitiveTypes sadrže nekoliko predefinisanih


tipova potrebnih za
metamodelovanje, posebno za UML i MOF.
Abstractions sadrži nekoliko abstraktnih
metaklasa koje se višestruko
koriste(specijalizuju) u različitim metamodelima.
Basic sadrži podskup koncepata iz paketa
Constructs koji se
prvenstveno koriste za objektne jezike i XMI.
Constracts sadrži metaklase koje su konkretne
klase okrenute prema konceptima objektno-
orjentisanog modelovanja (koriste se za UML i
MOF i njihovo usaglašavanje)
Modeli i metamodeli
16

MODELI- četvoronivovska
hijerarhija
meta-modela

Kada se kaže da je
meta-model
“pojavljivanje” meta-
meta modela
podrazumeva se da
je svaki koncept
meta-modela jedno
pojavljivanje meta-
meta modela.
MDA hijerarhija modela
17

MOF
M3

EJB
M2 UML XMI CWM SSA
Metamod
.....

UML model UML model UML model SSA model


M1 Kadrovi Finansije Proizvodnja Nabavka
.......

M0 a:Radnik 01:ORGJED .......


MDA OMG standardi
18

Osnovni MDA
OMG standardi su:
• UML
• MOF
• CWM
• XMI
MDA OMG standardi
19

 XMI (XML Metadata Interchange):


 Definiše XML tagove preko kojih se može opisati
serijalizovan model baziran na MOF-u
 Služi prvenstveno za razmenu modela
 Transformacija iz jednog u drugi često se vrši i na sledeći
način:
Model1  XMI1  XSLT  XMI2  Model2

 CWM (The Common Warehouse Metamodel) definiše


metamodele koji predstavljaju stovarišta podataka (data
warehousing) i odgovarajuće OLAP analize.
 JMI (Java Metadata Interface) omogućava preslikavanje
MOF modela u Javu da bi se ostvarila mogućnost
održavavanja MOF metabaza iz Jave.
MOF (Meta object facility)
20

 MOF (Meta object facility) – standardni jezik za


specifikaciju meta modela. MOF sdarži dva osnovna dela:
 Apstrakni model generičkih objekata i njihovih asocijacija
(vrlo sličan sa UML jezgom)
 Skup pravila za preslikavanje MOF modela u jezički
nezavisne interfejse. Implementacija ovih interfejsa
omogućava pristup i ažuriranje bilo kog modela
zasnovanog na MOF-u.
 Pošto je meta-model model modela, na njega se može
primeniti isti jezik koji se koristi za izgradnju modela
nekih sistema, pod uslovom da je takav jezik refleksivan
(što praktično znači dovoljno opšt)
 UML dijagram klasa ima tu osobinu i zato je on osnova
MOF-a.
Essential MOF (EMOF)
21

 Koristi osnovne elemente iz paketa Basic i


Abstractions iz UML2 i ne dodaje svoje sopstvene
klase
 EMOF može da posluži za specifikaciju metamodela
objektnih jezika i XMI .
 Osnovni cilj je da se omogući kreiranje jednostavnih
meta-modela korišćenjem jednostavnih koncepata koji
istovremeno podržavaju proširenja za sofisticiranije
metamodelovanje kroz korišćenje CMOF-a
EMOF Merged Model

22
Complete MOF (CMOF)
23

 Koristi se za specifikaciju drugih metamodela, na


primer UML-a.
 Izgrađen je na osnovu EMOF-a i odabranih
elemenata UML metamodela
 Koriste se samo elementi za modelovanje klasa, iako
postoji još bitnih UML elemenata
Korišćeni elementi iz UML 2

24
Preslikavanje PIM PSM
25
Osnovni pojmovi
Računarski
 MDA preslikavanje definiše
nezavisan model
CIM
transformacije iz PIM u
specifičan PSM u skladu sa
odgovarajućim modelom
platforme.
Platformski
nezavisan model
Model za opis
Platforme
 Preslikavanje tipova -
PIM PDM definišu se pravila
preslikavanja u koja mogu
da budu uključene i
Transformacija
vrednosti iz pojavljivanja.
Preslikavanje na nivou
metamodela je
Platformski zavisan preslikavanje tipova.
model
PSM  Preslikavanje pojavljivanja
modela. Uvođenje oznaka.
Preslikavanje PIM PSM
26
(Osnovni pojmovi)
 Oznake (Marks) mogu da budu:
 Tipovi modela (klase, asocijacije, uloge u asocijacijama
ili drugi tipovi)
 Stereotipovi iz UML profila

 Elementi metamodela (MOF-a, na primer)

 Neki nefunkcionalni zahtevi (specifikacija kvaliteta ili


zahtevanih performansi).
 Primer: Entity oznaka se može primeniti na klasu ili
objekat u PIM-u čime se naznačava da će se na te klase
ili objekte primenti template sa nazivom Entity.
Preslikavanje PIM PSM
27
(Osnovni pojmovi)
 Template je model koji definiše transformaciju (neka vrsta
“design pattern”).
 Primer: CORBA Entity template specifikuje da se objekat iz
PIM-a označen sa Entity preslikava u CORBA PSM model u
objekat tipa HomeInterface i objekat tipa EntityComponent u
njihovu međusobnu vezu.
 Jezik za preslikavanje: prirodni jezik, neki algoritamski
jezik ili jezik za preslikavanje modela (XSLT za XMI1 
XMI2). MOF Query/View/Transformation RFP (Request
for Proposal) zahteva da se u okviru MOF-a definiše
standardni jezik za preslikavanje modela.
PIM  PSM preslikavanje tipova
28
Preslikavanje PIM  PSM preko
29
meta-modela
Preslikavanje PIM  PSM preko
30
oznaka
Preslikavanje PIM  PSM preko tipova i
predefinisanih paterna meta-modela
31
Preslikavanje PIM PSM preko UML
profila
32

Platforma

• Izgrađuje se profil platforme u


PIM
koji se PIM preslikava –
koncepti UML meta-modela ili
Pofil
Platforme
MOF-a se proširuju da bi se
(Oznake) obuhvatile specifičnosti
platforme
• Koncepti PIM modela
Označeni PIM označavaju se sa oznakama
koje odgovaraju konceptima
profila platforme
• Vrši se preslikavanje preko
pravila koja se definišu na
PSM ovako označenom PIM-u
Izgradnja PIM-a
33

 PIM se izgrađuje nekim postupkom specifikacije IS.


 Specifikacija IS preko “Sistemsko-teorijskog životnog
ciklusa:
 Identifikacija – nalaženje funkcionalnog modela
 Definisanje slučajeva korišćenja
 Definisanje sistemskih dijagrama sekvenci
 Realizacija
 Specifikacija strukturnog (konceptualnog) modela
 Specifikacija dinamike sistema (Dijagrami sekvenci,
kolaboracije, aktivnosti)
 Specifikacija konačnog objedinjenog strukturnog i dinamičkog
modela
Dijagram slučajeva korišćenja
34

SAMOPOSLUGA Kupac
Kasir
Prodaja

Logovanje
Menadžer
Vraćanje artikala

Pokretanje kase
Slučajevi korišćenja - Dijagram
35

Kasir

<<extend>> Upravljanje
Prodaja
zalihama

<<include>>
<<include>>

Registrovanje
artikala Plaćanje

Plaćanje u Plaćanje
gotovini katicom
Sistemski dijagram sekvenci
36

: K as a

: K as ir U nnes iS tavk u(Integer, D ouble)

K rajP rodaje( )

P lac anje(D ouble)


Konceptualni model
37

S pecifik acijaA rtik ala


S ta vk aP rodaj e
c ena : Integer
kolici na : In teger
k od_artikla : S tring
RbrS tavk e : Intege r
0..1 1 Naziv : S tring

1..n
1..n

1
P rodavnica
1 K atalogA rtik ala naz iv : S tring
Trans P rodaje adresa : S tring
n 1
datum : Date
RednB roj : Integer 1
Uk upno : Currenc y
n
1

1..n
K as a
1
0..1
P lacanje
Iznos : D oubl e
K us u r : Do uble
Dinamika sistema – Dijagram sekvenci
38

: K asa : : Tr ans P ro daje


K atalogA rtik ala

: K as ir U nnes iS tavk u(Integer, Dou ble)

DajA rtik al(Integer)

NapraviS tavk u(S pec ifik ac ijaA rtik ala, Integer)

K rajP rodaje( )

Uk upno( )

P lac anje(Double)

NapraviP lac anje( )


Konačni PIM
39

S pec ifik ac ijaA rtik ala


S tavk aP rodaje
c ena : Integer
k olici na : Integer
k od_artik la : S tring
RbrS ta vk e : Int eger
0..1 1 Naz iv : S tring

1..n
1..n

1
1 P rodavnic a
Trans P rodaje K atalogA rtik ala
naz iv : S t ri ng
datum : Date adres a : S tr ing
RednB roj : Integer DajA rtik al() n 1
Uk upno : Currenc y 1

NapraviS tavk u()


Uk upno() n
NapraviP lac anje()
1 1..n
K as a

1 Unnes iSt avk u()


0..1 K rajP rodaj e()
P lac anje P lac a nje( )
Iz nos : Do uble
K us ur : Double
EJB PSM
40

<<EJBHomeInterface>>
TransProdajeHome

<<EJBCreateMethod>> create()
<<EJBFinderMethod>> findByPrimaryKey()

StavkaProdaje 0..1 SpecifikacijaArtikala


1..* 1 1..*
kolicina: Integer cena: Integer
rbrStavke: Integer kodArtikla: String
<<EJBEntity>> naziv: String
TransProdajeEJB 1 1
Placanje
datum: Date 0..1
redniBroj: Integer iznos: Double KatalogArtikala
ukupno: Currency 1 kusur: Double *
context: EntityContext Prodavnica 1 dajArtikal()
napraviStavku()
naziv: String
ukupno()
adresa: String
napraviPlacanje()
<<EJBCreateMethod>> ejbCreate()
1
<<EJBCreateMethod>> ejbPostCreate() <<EJBHomeInterface>> <<EJBRemoteInterface>>
ejbActivate() KasaHome
ejbPassivate() Kasa
ejbLoad()
<<EJBCreateMethod>> create()
ejbStore() unesiStavku()
ejbRemove() * krajProdaje()
setEntityContext() placanje()
unsetEntityContext()
1..*

<<EJBSession>>
KasaEJB

1 unesiStavku()
krajProdaje()
<<EJBRemoteInterface>> placanje()
<<EJBPrimaryKey>>
TransProdajeHome <<EJBCreateMethod>> ejbCreate()
TransProdajeEJBPK ejbRemove()
napraviStavku() ejbActivate()
ukupno() ejbPassivate()
napraviPlacanje() setSessionContext()
Deo generisanog koda
41

Java Code Generation Process --

// Import Statements
import java.rmi.RemoteException;
import javax.ejb.*;

public class KasaEJB implements javax.ejb.SessionBean {


public Prodavnica theProdavnica;
public TransProdajeEJB theTransProdajeEJB;
/*
Method: Default Constructor
*/
public KasaEJB() {}
/*
Method: UnnesiStavku
*/
public Double UnnesiStavku(Integer PrKod, Double Kol) {}

/*
Method: KrajProdaje
*/
public Prodaja KrajProdaje() {}

/*
Method: Placanje
*/
public Double Placanje(Double Iznos) {}
Literatura
42

 OMG Meta Object Facility (MOF) Core Specification


 https://www.uml-diagrams.org/uml-meta-models.html

You might also like