dsl ban chinh
Post on 08-Oct-2015
41 Views
Preview:
DESCRIPTION
TRANSCRIPT
-
1
Bo Bi Tp Ln
Nhm 5
Ti:
Developing domain - specifis languages using MetaEdit+
Ging Vin Hng Dn: thy ng c Hnh Sinh vin thc hin: 1, Bi Th Cng. 2, Nguyn Vn Hi. 3, Hong Th Nh.
-
2
Mc Lc Li Cm n ..................................................................................................................................... 3
Gii thiu ti ............................................................................................................................... 4
I. Domain-specific language ......................................................................................................... 5
1. Khi nim ........................................................................................................................... 5
2. nh ngha DSL .................................................................................................................. 5
3. Phn loi ............................................................................................................................. 6
4. Khi no cn dng DSL ........................................................................................................ 6
5. u im v nhc im ...................................................................................................... 6
II. Meta Edit+ ............................................................................................................................. 7
1. Gii thiu MetaEdit+ .......................................................................................................... 7
2. Mi trng pht trin .......................................................................................................... 7
3. Cng c qun l mi trng ................................................................................................ 8
4. Metamodeling vi MetaEdit+workbench ............................................................................ 8
5. Thit k d liu u ra v Exchange tool ........................................................................... 19
III. Kt lun................................................................................................................................ 27
IV. Ti liu tham kho ................................................................................................................ 28
-
3
Li Cm n
Chng em xin gi li cm n chn thnh n cc thy ng c Hnh, thy V nh Hiu, thy
Trng Ninh Thun tn tnh hng dn, cung cp cc ti liu cn thit chng em hon thnh
tt ti ny.
Ngoi ra trong qu trnh hc tp v nghin cu mn Cc Vn Hin i Ca Cng Ngh Phn
mm chng em bit c rt nhiu kin thc mi v cc phng php pht trin phn mm hin
i, xu hng pht trin phn trong tng lai. Bn cnh di s hng dn tn tnh ca cc thy
chng em cn bit thm cc cch tip cn vn khoa hc mi, cc kin thc mi, cch lm vic
nhm hiu qu, cc kin thc v trnh by mt vn bn khoa hc, cch thuyt trnh theo nhm v
nhiu kin thc b ch khc na.
-
4
Gii thiu ti
Ngnh cng ngh phn mm hin nay ang pht trin rt mnh m trn quy m rng ln, cng vi
l yu cu v cht lng sn phm phn mm cng nh cc dch v bo tr, nng cp phn mm
cng i hi nhng tin b vt bc. Nhng phng php sn xut phn mm theo cc phng
php c s dn thay i v chuyn sang nhng phng php ti u hn mt trong nhng phng
php l m hnh ho chuyn bit min (Developing domain - specifis languags vit tt l DSL).
DSL l phng php xy dng phn mm da trn cc m hnh, t cc m hnh ny s c dch
chuyn sang m chng trnh nh cc b sinh m ngun (code generator) hoc dch sang phn mm
c th s dng trc tip. DSL gip gim thi gian to ra mt sn phm phn mm, d dng trong
thay i theo yu cu khch hng, thun li cho cc cng vic bo tr v nng cp. MetaEdit + l cng c mnh m trong vic pht trin phn mm da theo cc m hnh (DSL). N
cung cp cc cng c hu ch cho vic pht trin phn mm gip ngi dng d dng xy dng cc
m hnh v t cc m hnh to ra cc phn mm hon chnh m khng cn lm vic vi bt c
dng lnh no.
-
5
I. Domain-specific language
1. Khi nim Domain-specific language(DSL) l mt ngn ng my tnh chuyn vo mt min ng
dng c th, tri ngc vi mt ngn ng mc ch chung (GPL- general-purpose
language ) p dng rng ri trn cc lnh vc, v thiu cc tnh nng chuyn bit cho
mt lnh vc c th.
DSL c chia nh:
- Domain-specific markup languages.
- Domain-specific modeling languages.
- Domain-specific programming languages
2. nh ngha DSL - Syntax and Sematic
Khi mi ngi tho lun v mt ngn ng lp trnh, thng nghe h ni v c php
v ng ngha. Syntax nm bt cc biu thc php l ca chng trnh, tt c mi th
trong DSL-syntax custom c nm bt bng ng php. Sematic ca mt chng
trnh l nhng g n lm khi n thc thi.
V d:
Parsing a DSL populates a Semantic Model
Trong v d ny , cc m hnh ng ngha l mt m hnh i tng . Mt m hnh ng
ngha cng c th c cc hnh thc khc . N c th l mt cu trc d liu n thun
vi tt c cc hnh vi trong cc chc nng ring bit .
- Code generation
S rt hu ch khi bn mun s dng DSL vi nn tng 1 ngn ng m khng c cng
c h tr cho DSL. C th lm iu ny bng vic s dng Sematic model l u vo
v to ra m m sau c th thc thi trn nn tng .
C 2 cch s dng Code generation
-
6
C1 + To ra m ri sa cha m bng tay.
C2 + To ra m nhng khng bao gi sa m bng tay, v c th ti to, ti s dng.
iu ny c bit ng vi DSL.
3. Phn loi DSL c 2 hnh thc l : External DSL v Internal DSL
+ External DSL tn ti c lp vi bt k ngn ng khc, SQL l mt v d v mt
External DSL.
+ Internal DSL tn ti bn trong mt ngn ng lp trnh khc - v d Rails l mt
Internal DSL c lu tr trong ngn ng lp trnh Ruby.
Thng thng, External DSL d dng to ra hn nhng khng linh ng bng Internal
DSL. Internal DSL khng ch trng v vic phn tch c php hoc ng php, nhng
phi ph hp vi c php hp l trong ngn ng ch (v d.M Rails phi l c php
hp l ca Ruby), ngc li mt External DSL c th c bt k c php ca ring
mnh vi mc chi ph nhiu hn vic xy dng mt phn tch c php v ng php.
4. Khi no cn dng DSL Mi ng dng c quy tc kinh doanh ring ,cn phi r rng, d c, v khai bo. Mt
DSL l mt cch l tng m hnh cc loi quy tc. N khng mt nhiu cng sc
pht trin mt DSL. Nhng cc tc ng m n c v ngi s dng c th rt ln.
Trc khi bn quyt nh,bn cn phi cn nhc nhng u v khuyt im. Nh vi
bt k cng ngh no khc, DSL c th c nhng cm by. L mt nh pht trin, bn
l ngi tt nht nh gi xem bn cn mt DSL m hnh ha cc vn hin
ti. Do , bn cn phi nhn thc c nhng u im v nhc im ca DSL.
5. u im v nhc im 5.1 u im
- DSL cho php to ra cc gii php cc gii php phi c th hin trong cc mc
tru tng ca vn trong lnh vc no . tng y l cc chuyn gia
trong linh vc c th hiu , xc nhn, v c th pht trin DSL trong lnh vc
. Tuy nhin y l trng hp him.
- DSL nng cao cht lng, nng sut, tin cy, bo tr, linh ng v c th dng
li. (d dng thay i theo yu cu ndung bng cch thay i m hnh).
- DSL ngn gn: v dsl ngn gn nn d dng trong vic quan st, qun l, v hin
th.
- DSL c thit k mc tru tng cao. DSL khng phi i ph vi cc cu
trc ngn ng thp hn, n ti u ha cu trc d liu v thc hin cc k thut
khc. Thay vo DSL thc hin trn min kin thc c mc m n c th
c m bo, xc nhn, v ti s dng d dang hn.
- DSL c kh nng m rng.
5.2 Nhc im
-
7
- Ngn ng kh thit k. DSL thc hin ngn ng thit k n l mt phc hp cc
cng vic khng c quy m c th. N nh mt ngn ng bc cao, tuy nhin n rt
phc tp v khng phi l cng vic d dng vi lp trnh vin.
- DSL cn c chi ph tr trc. mt d n da trn DSL cn c chi ph tr trc.
II. Meta Edit+
1. Gii thiu MetaEdit+
MetaEdit+ l mt ng dng da trn kho lu tr, c ngha l mt kt ni n
kho la tr phi c thit lp trong cng c. Th tc ng nhp ny c bt
u t Startup Launcher c m ra khi MetaEdit+ bt u.
Ngoi vic ng nhp, mt s chc nng khc c th c truy cp t Startup.
MetaEdit+ bo gm cc b Editor, generator, cc cng c qun l khc.
2. Mi trng pht trin
MetaEdit + to thnh mt mi trng a cng c linh hot v mnh m cho
php linh hot sng to, bo tr, x l, thu hi v i din cc thit k thng tin
gia nhiu nh pht trin. l cc tnh nng:
+ Multi-project
+ Multi-modeling language
+ Multi User
-
8
+ Multi tool
+ Multipltform
3. Cng c qun l mi trng
Metaedit+ c cc cng c qun l mi trng mnh m bm gm Startup , main
laucher, browsers, graph manager cc hp thoi ca properties
3.1 Mi trng v cng c qun l thng tin
bao gm hai Launchers cho qun l mi trng v cc cng c khc, trnh
duyt v Graph Manager duyt cc thng tin c lu tr trong cc
Object Repository, hp thoi ti sn xem v chnh sa thng tin v cc
yu t thit k duy nht, v Info Tools cho mi lin kt xem gia cc th,
ti s dng cc mu thit k, v kha thng tin (trong phin bn a ngi
dng)
3.2 Editor
l nhng cng c xem, chnh sa v qun l d liu thit k.
MetaEdit+ bao gm mt Diagram Editor, Matrix Editor, v Table Editor.
3.3 Generator v intergration
Bao gm c Generator chuyn i d liu kho lu tr cc nh dng u
ra khc nhau, cc cng c import v Export cc nh ngha ngn ng v
thit k d liu gia cc kho, cng c API v cc hot ng dng lnh.
3.4 Cng c pht trin ngn ng
hnh thnh nn mt phn metaCASE ca mi trng cho php ngi dng
thay i mi trng. Cc cng c pht trin c m t trong mt hng
dn ring bit MetaEdit+ Workbench Users Guide
4. Metamodeling vi MetaEdit+workbench
4.1 Cc khi nim c bn
4.1.1.1 GOPPRR
Graph
Mt graph l tp hp cc i tng (object), quan h (relationship), vai
tr (roles), cc rng buc( bindings) th hin mi quan h gia cc
i tng. mt graph cng cha cc thng tin v cc th thnh phn
ca n.
Object
Mt object l thnh phn ca mt graph. V d nh buttong, trng thi
hay mt hnh ng no . Tt c cc trng ca object u c th ti
s dng
-
9
Relationship
Mt relationship l mt th hin r rng s kt ni gia hai hoc nhiu
i tng.
Role
Mt role xc nh vai tr ca mt i tng trong mi quan h.
Port
L mt c im k thut bt buc trong mt object. thng thng role
m bo vic kt ni gia cc i tng v ng ngha ca vic kt ni ;
trong khi c c mt role nht nh kt ni n nhiu ni
khc nhau trn mt i tng vi cc ng ngha khc nhau ta s dng
port.
Property
L mt m t cc thuc tnh hoc iu kin kt ni vi cc loi khc.
4.1.1.2 Properties (cc thuc tnh)
Properties gm hai thnh phn l kiu d liu v gi tr ca n. Cc
kiu d liu c bn : String, number, text, bool
4.1.1.3 Bindings (cc rng buc)
Cc thng tin v object(i tng), port(cng), role (vai tr), v
relationship (quan h) trong mt graph c kt ni vi nhau nh th
no c lu di dng bindings. Mi binding cha mt quan h v
hoc nhiu kt ni gm mt role, mt object v ty chn mt port.
4.1.1.4 Cu trc phn tch
Ty thuc vo phng php s dng mi i tng c th chia ra thnh
cc graph mi.
4.1.1.5 Cu trc n
Khc vi cu trc phn tch cu trc n cho php cc object,
relationship hoc role trong mt graph c th kt ni vi cc graph
khc. Cu trc n cho php chn mt i tng trong graph v kt ni
ti graph mi.
4.2 Cc cng c trong metamodeling
4.2.1.1 Graph tool
Cung cp cc chc nng truy cp, xem v chnh sa cc thng s k
thut ca ngn ng m hnh cp biu .
-
10
Hnh : graph tool
Cc thnh phn ca graph tool:
Basics
Dng xc lp cc thng tin c bn ca graph nh: tn, thuc tnh,
m t.
Types
Xc nh cc thnh phn non-properties ca graph.
Bindings
Khai bo cc cu trc binding.
Subgraph
Khai bo cc cu trc nh : cu trc phn tch, cu trc n.
Contraints
B sung cc quy tc cho th.
4.2.1.1.1.1 nh ngha mt graph
T thanh cng c ca metaedit+ chn Metamodel| graph
tool. Nu c graph t trc ta chn nt open trn thanh
cng c n s hin ra danh sch cc graph cho ta chn.
nu cha c graph ta hon thnh cc thng tin cho graph
mi nh sau.
Bc 1: t tn cho graph ti name.
Bc 2: nh ngha object, relationship, v role ti tab
Types.
Bc 3: nh ngha binding cho cc thnh phn ti tab
Bindings.
Bc 4: nh cc cu trc ti tab subgraph.
4.2.1.1.1.2 Thay i v chnh sa graph c
-
11
M graph c ta chn Graph |open mt danh sch cc
graph s hin ra ta c th chn graph cn chnh sa
thay i tt c cc thuc tnh ca n.
4.2.1.1.1.3 Types tab
Dng la chn cc Object, Relationship, v Role ca
modeling language. N cha danh sch Objects,
Relationships, Roles, vi mi danh sch ny ta c thm,
xa cc i tng bn trong n.
4.2.1.1.1.4 Bindings tab
xc nh cc Relationship, roles, port v object c
kt ni vi nhau th no. Ti tab ny n s hin th cc
thnh phn ca graph c kt ni vi nhau th no ng
thi n cho php ta nh ngha cc kt ni .
nh ngha mt kt ni ta lm nh sau:
Bc 1: chn mt Relationship ti Relationship
-
12
Bc 2: chn mt role ti role
Bc 3: chn cng kt ni ti Ports
Bc 4: chn i tng ti Objects
C rt nhiu trng hp mt object c th kt ni vi
nhiu i tng khc nhau m ta iu ny ti roles ta
chn chut phi ln mt role c nhiu kt ni n object
khc tip theo cn Cardinality, hp thoi Cardinality hin
ra cho php ta ty chnh s lng kt ni:
Ta in cc ch s vo minimum v maximum.
4.2.1.2 Object tool
Cung cp cc chc nng to, sa, xem cc object trong h thng.
4.2.1.2.1.1 Khai bo mt object mi
m object tool chn Metamodel | Object tool. Ca s
object tool hin ra.
Ti y ta c th to mt object mi:
-
13
Bc 1: t tn cho object ti name
Bc 2: thm cc thuc tnh cho object ti properties
bng cch chn chut phi ln vng trng ta c th thm
mi hoc thm cc thuc tnh c.
Bc 3: thm m t ti Description.
Bc 4: lu cc thng tin li bng cch chn nt save trn
thanh cng c.
Ngoi ra ta c th chnh sa object sn c bng cch chn
nt open trn thanh c c sau chn object cn chnh
sa.
4.2.1.3 Relationship tool
Relationship tool cho php bn to mi, xem, chnh sa cc loi
relationship.
-
14
4.2.1.4 Role tool
Role tool dng xc nh thnh phn cui cng trong mi quan h
gia cc i tng.
4.2.1.5 Port tool
Port tool c s dng xc nh cng nh l mt phn ca object
sysbols v chn vai tr ng vi n. N cho php b sung hoc hn ch
cc ng ngha cch cc i tng kt ni.
-
15
4.2.1.6 Property tool
Tt c cc thnh phn ca graph (gm c graph) c cc thuc tnh gn
lin vi chng. Property tool cho php vic khai bo cng nh chnh
sa cc thuc tnh ny.
4.3 Symbol Editor
Symbol Editor l mt loi ca cng c v c bit cho cho cc cng vic vi cc
biu tng ca object, role hay relationship c hin th trong Diagram Editor v
Maxtrix Editor. Cc biu tng c to ra t cc khi hnh, mu sc, cc text.
Cc gi tr ca properties cng c nh ngha hon ton bi symbol. Symbol
tool cho php bn ly nhng biu tng t th vin gip d dng s dng.
4.3.1.1 Lm vic vi symbol Editor.
m symbol editor ta chn nt Sysbol trm thanh cng c cc tool
object, relationship hay role. Ta c giao din ca sysmbol Editor:
-
16
4.3.1.1.1.1 To symbol mi
Chn symbol|new. sau khi hon thnh cc thao tc vi
symbol ny ta chon symbol|save hon tt.
4.3.1.1.1.2 Import symbol t th vin
import cc symbol sn c ta chn symbol|import from
library ri chn symbol thch hp.
4.3.1.2 To cc i tng cho sysbol
4.3.1.2.1.1 Cc khi hnh
Sau khi to mt symbol mi ta bt u xy dng cc biu
tng cn thit to symbol th hin c cc thuc
tnh ca object, relationship hoc role c chn.
Trn thanh cng c ta thy cc khi hnh ta c th la
chn khi hnh bt k bng cch chn nt tng ng vi
khi hnh trn thanh cng c v khi hnh ln vng
editor. Sau khi v xong ta c th t cc thuc tnh tng
ng cho cc thnh phn bng cch click p ln thnh
phn hp thoi format hin ra:
-
17
Chn property tng ng cho biu tng .
4.3.1.2.1.2 Connectable
Conectable l dng symbol c bit n c to ra trong
vng ca symbol cho php s kt ni gia hai i tng.
Cc to connectable:
Bc 1: chn Connectable trn thanh cng c
Bc 2: ko th chut dc theo mt cnh ca symbol.
Bc 3: click p chut hon tt to connectable.
4.3.1.2.1.3 Connectable v ports
Object symbols c th c nhiu kt ni tc l cn c nhiu
connectable, thc hin iu ny ta c th to cng cho
mi kt ni.
Yu cu cho vic ny l mi connectable c mt cng
ring. Mi connectable s c v nn cnh ca khi
hnh.
Cc bc to port v connectable:
Bc 1 : v connectable ln cnh ca symbol
Bc 2 : chut phi ln conectable chn format, hp
thoi cng hin ra.
Bc 3 : chn Add nu mun thm cng mi , hoc Add
Exiting thm cng c.
Ngoi ra symbol Editor cn cung cp cc ty chn khc gip ngi
dng d dng trong qu trnh s dng.
4.4 Editors
Editor trong MetaEdit+ l ni to, xem v chnh sa cc thng tin thit k.
C ba loi l: Diagram Editor, Maxtrix Editor v Table Editor.
Trong ti liu ny chng ti gii thiu v trnh by Diagram Editor.
4.4.1.1 Diagram Editor
Diagram Editor l cng c c chc nng to, qun l v duy tr graph
di dng diagram. Vi diagram chng ta c th xem, chnh sa graph
to cc cu trc lin kt gia cc graph.
Diagram editor cho php cc cng vic nh copy, cut, delete, paste,
print, generate cc thnh phn ca graph.
4.4.1.2 Diagrams
Cc thao tc vi mt diagram:
M mt diagram ta thc hin cc bc sau:
-
18
Bc 1: chn Edit|Diagram Editor
Bc 2: chn graph cn m.
Bc 3: bn c th chn xem graph c hoc to graph mi.
Qun l Diagram:
Metaedit+ cho php ta qun l diagram rt chi tit : n cho php thc
hin cc cng vic nh to mi, m, v chnh sa v xem graph.
Ngoi ra Diagram cn cung cp nhiu tnh nng khc h tr ngi dng
ti a.
4.4.1.3 Object
Diagram cung cp cc thao tc vi object nh thm object mi, thm
object c, chn object, thay i object, hoc chnh sa mt object.
4.4.1.4 Relationships v Roles
To Relationship gia hai object
Bc 1: chn loi relationship t thanh cng c
Bc 2: di chuyn chut n object u tin khi no object c t
sng ta click chut tri.
Bc 3: di chuyn n object th 2 tng t click chut hai ln hon
tt.
To Relationship gia nhiu object
Bc 1: chn loi relationship t thanh cng c
Bc 2: di chuyn chut n object u tin khi no object c t
sng ta click chut tri.
Bc 3: di chuyn chut ti khong trng v click chut tri to
im r nhnh.
Bc 4: di chuyn n object th 2 tng t click chut hai ln hon
tt.
Bc 5: di chuyn n object tip theo v click chut tri to
relationship.
Ngoi ra Diagram cn cung cp cc chc nng khc cho php thao tc
vi relationship v role nh: xa mt relationship, chnh sa cc role, di
chuyn relationship.
4.4.1.5 Ports
Sc mnh ca cng l lm ni bt vai tr ca cc kt ni trong rng
buc ca i tng. c hai loi cng l:
Static ports
L cng c nh c duy tr trn cc i tng, cc i tng cng loi
c cng mt cng.
Dynamic ports
-
19
Dynamic port c ly ti thi gian chy v chng c th c to t
nhiu ngun khc nhau (c th l trong thuc tnh ca object hoc l t
subgraph).
Dynamic ports c xem nh connectables trong vic to ra cc
relationship v cc role trong trng hp ny n tng t nh static port
v n cung cp nhng cc tng t m rng ng ngha cc rng
buc. tuy nhin dynamic port c nhng im khc bit so vi static port
l thay v gn b gn vo mt object c nh n c th di chuyn,
di chuyn n ta chn cc roler gn liu vi n v ko th theo mong
mun.
4.4.1.6 Subgraph
m mt subgraph ta chn mt i tng gi ctrl+double ln i
tng .
5. Thit k d liu u ra v Exchange tool
5.1 In
Meta edit+ cho php in cc biu Diagram Editor, Maxtrix Editor, Table Editor.
Chn File | print m cng c in:
Print setting cho php chnh sa chiu rng, chiu di, phng to thu nh khi
chnh xong cc ty chn chon OK in.
5.2 Generator
Cc cng vic sinh ra ma ngun, sinh ti liu , kim tra bo co u c Meta
edit+ thc hin bi Generator.
a. Generating
-
20
Meta edit+ cung cp cc Generator cho cc cng vic check, review hoc thit
k ti liu. Cc b Generator ny l c lp chng gm c:
- Check dng lit k cc i tng c mi quan h vi cc i tng khc,
v tt c cc mi quan h lin quan ti chng.
- Dictionary : dng in ra tt c cc i tng v cc ti liu lin quan.
- Export graph hierachy to HTML: to ra tp tin di dng html c th m
bng cc trnh duyt. N hin th mt th y cc thnh phn gm cc
i tng, mi quan h gia cc i tng , cc ti liu lin quan n i
tng. . .
- Export graph hieararchy to Word: tng t nh khi export ra tp tin html
meta edit+ cng export y cc thng tin ra tp tin di dng word.
- Export graph to HTML: meta edit+ export cc thnh phn ca Graph di
dng HTML nhng khng bao gm cc subgraph.
- Export graph to Word: meta edit+ export cc thnh phn ca Graph di dng
Word nhng khng bao gm cc subgraph.
- Metric : thc hin cc tnh ton v bo co s lng cc i tng, s lng
cc i tng theo loi, s lng cc mi quan h
- Object Connections : hin th cc i tng khc nhau c lin quan n nhau
nh th no.
- Object list: m t tt c cc i tng trong graph.
- Object Nesting: nhn thng tin v cc i tng lng nhau trong mt s
m ha chng ln nhau.
- Property List: m t cc thuc tnh ca mi i tng.
- XML : xut cc thng tin ca graph di dng XML.
Thc hin Generator
u tin chn project cn generate tip theo chn graph bm chut phi ln
graph , mt menu hin ra tip theo chon Generate thc hin:
-
21
Hnh 2: thc hin generator
b. To ti liu (Documentation generation)
Cc thng tin thit k c Meta edit+ cung cp cho php ngi dng c th
xem li thit k v cc ti liu ca d n. Meta edit cung cp ti liu di
dng HML hoc .DOC hoc .RTF.
- Ti liu Graph
Ti liu cho graph l c sn cho tt c cc th. Generator s to ra mt file
duy ti liu v graph , n bao gm cc thnh phn: cc thng tin v graph nh
tn, trng thi, nhng ngi lm vic trn graph; Mi i tng s c to
mt bng gm cc thng tin v i tng ; M t v mi i tng gm
tn, mi quan h, subgraph ca n.
Thc hin to ti liu cho graph :
Bc 1 : chn graph cn sinh ti liu
Bc 2 : Chut phi ln graph chn generate
Bc 3: chn Export graph to HTML hoc Export graph to Word
- Ti liu Project
Ngoi ti liu cho tng Graph ring chng ta c th to ti liu cho ton b d
n. to c ti liu cho d n chng ta phi kt hp cc Graph con theo
m hnh ca d n.
Ti liu d n bao gm :
- tn v miu t ca d n, trng thi hin ti, ngi qun l, cc thnh vin
thc hin d n vi cc thng tin lin h.
-
22
- cc biu diagram, cc hnh nh ca diagram.
Ti liu d n khng sinh t ng m phi to th cng. Cc bc sinh ti
liu cho d n:
Bc 1: to mt Project Model graph
Bc 2: nhp cc thng tin v d n.
Bc 3: m Project Model vi mt diagram
Bc 4: thm cc graph mi vo d n.
Bc 5: sinh ti liu cho d n chng ta c th to ti liu di dng HTML
hoc Word.
c. Sinh m ngun (code generating)
- Meta edit+ c th sinh ra cc loi m ngun khc nhau ty thuc vo m hnh
n th hin c th l:
- UML: sinh ra m ngun c++, java, Delphi
- Entiy-relationship Diagram: SQL.
- nh ngha cc khi nim truy vn:
Property: n c nh ngha bi tn ca n bt u bng u :.
truy cp n cc thnh phn bn trong mt property ta s dng c php :
property tn property; cc thuc tnh con 1; thuc tnh con 2.
Object type: n c nh ngha bi tn bt u bng du ..
Relationship type: c nh ngha bng tn bt u bi du >.
Role type: c nh ngha bt u bng du ~.
Port type: c nh ngha bt u bng du #.
- Cc bc sinh code:
Bc 1: chn Graph cn generating sau chn Metamodel | Generator
Editor. Ta c giao din:
-
23
Hnh : generator
Vng 1: Generator box cha danh sch cc generator. to mi chn
biu tng new trn thanh cng c.
Vng 2: Concerpt box : dng la chn cc thnh phn cn hin th
cho vng 3.
Vng 3: Choice box: hin th cc la chn ca vng 2 cho ngi dng
chn cc thnh phn .
Vng 4: Editing area : nh ngha code cho generator.
Bc 2: To b generator mi
T thanh cng c chn biu tng new.
Bc 3: Ci t cho u ra
Ti vng s 4 xut hin cu lnh:
Report GraphName
Foreach type{
}EndReport
Trong vng foreach ta dng cc cu lnh c c u ra theo ca
mnh.
- Nh vy chng ta thy Meta edit+ c kh nng ty bin to ra cc loi m
ngun khc nhau.
d. Cc cu lnh
i, lnh if else
cc ton t:
=: dng so snh chui v s
-
24
=~: tng t nh = nhng n ph hp hn vi vic so snh mt tp
thng qua cc k t i din nh du * (t 0 n n), # (1 nhn vt)
v bn phi.
=/ : ph hp vi biu thc chnh quy.
: ph nh ca =.
< and and >=: ln hn hoc bng.
C php ca if:
If :property = value then
/*cu lnh*/
Else
/*cu lnh*/
endif
ii, lnh lp foreach
l cu trc chnh trong Generator. N ch cho php lp vi object, role,
relationships. C php ca foreach
foreach .objType{
}
iii, lnh lp do v dowhile
lch foreach ch duyt qua cc thnh phn ca th n c yu cu
duyt, cn do v dowhile duyt vo thnh phn con ca vng lp
foreach. Dowhile l bin th ca do ch khc l n b i cc du cu
hoc newline trong ln lp cui cng ca n.
V d cho do v dowhile:
Do .Process {id , } produces 1.0, 1.1, 1.2,
Dowhile .Process {id , } produces 1.0, 1.1, 1.2,
iv, vng lp c b lc v vng lp sp sp
L vng lp foreach c thm cc tham s nh where , orderby, unique.
V d:
Foreach .objType; where : proName = value{ /*cu lnh*/}
v, lp thng qua explosions
cc lin kt gia cc i tng, relationship, hoc role bn trong cc .
subgraph c th c theo di thng qua t kha Explosion.
Do explosions {
id
newline}
5.3 Thit k d liu cho export v import
-
25
Meta edit+ cung cp cc cng c thc hin vic export cng nh import
gia Meta edit+ repositories v cc API hoc workbench. N cng c th
exporting v import c hai loi metamodel v instance (m hnh) phn cp d
liu. Meta edit+ cung cp hai nh dng cho vic thay i d liu: mt l nh
dng nh phn cho nh dng export / import gia metamodel repositorise v
m mt XML da trn cng c tch hp m rng.
a. Exporting graphs
Bc 1: m project cha graphs cn export.
Bc 2: trong meta edit+ , tt c vic export c kch hot trong Graph
Manager. m Graph manager chng ta chn nt Export trn thanh cng
c hoc chn Browsers| Graph Manager.
Bc 3: trong Graph Manager chn gaph cn export. Chng ta c th chn
/hy chn mt hoc tt c cc graph bng cc nt bn di.
Hnh : Graph Manager
Bc 4: Thm cc thnh phn vo Graph. Danh sch bn tri l cc thnh
phn ca graph c chn, danh sch bn phi l cc thnh phn s c
export. thm vo danh sch bn phi ta chn mt / tt c thnh phn bn
tri ri chn mi tn gia hai danh sch.
Bc 5: Export : chn save Path hoc chn Export to XML. Vic save as
patch s to ra mt file nh phn vi phn m rng l .mec; khi chn
Export to XML s to ra file nh phn vi phn m rng l .mxm.
b. Importing metamodels v models
import metamodel hoc model ta thc hin cc bc sau:
Bc 1: chn Respository|Import t thanh cng c
-
26
Bc 2: trong hp thoi ny , chn binary hoc XML import. Vi
ngi dng n Meta edit c th import cc tp tin di dng: .mxt, .met,
.mxm, .mxs , .mec. vi mi trng nhiu ngi dng th ch c th import
file di dng .mxm
Bc 3: Chn nt Commit trn thanh cng c.
5.4 API
API cung cp cho ngi dng cch thit k d liu v cc hm vi cng c
ring ca h. API trong meta edit+ c thc hin trn SOAP l mt Web
Service server.
a. MetaEdit+ API tool
s dng API :
Bc 1: t thanh cng c chn: Repository|API tool
Hinh: API tool
Bc 2: ty chnh thng s
Trong mc Server Setting bn c th ty chn thng s v tn host v cng .
vi ngi dng bnh thng th khng cn chnh sa g thm.
Bc 3: bt u server API bng cch click vo nt Start Server.
Bc 4: thc hin cc cc ng dng bn ngoi c s dng API.
Bc 5: dng phin lm vic vi API click vo nt Stop server.
-
27
III. Kt lun
Thng qua vic tm hiu ti Developing domain - specifis languages using MetaEdit+, chng em bit thm rt nhiu kin thc b ch v domain - specifis languages(DSL) v cng c MetaEdit+.
Vi phng php DSL cho php m hnh ha cc yu cu thuc min v sinh m ngun t cc m hnh. iu ny lm tng tnh t ng trong pht trin phn mm. Vi phng php DSL th giai on u cn pht trin mt ngn ng m hnh ha chuyn bit min. Pht trin hng m hnh c bit ph hp vi cc sn phm phn mm cng dng hoc cc kha cnh ngang trong pht trin phn mm. DSL gip tng cht lng nng sut trong vic sn sut phn mm.
MetaEdit+ l cng c mnh m gip ngi lp trnh thc hin DSL. Vi nhng tnh nng u vit Meta Edit+ gip ngi dng d dng qun l xy dng, qun l cc project ca mnh tng nng sut v hiu qu lm vic.
-
28
IV. Ti liu tham kho
1. http://www.metacase.com/support/51/manuals/meplus/Mp.html
2. http://www.metacase.com/support/51/manuals/mwb/Mw.html
3. DSLs in action Jonas Boner
top related