dsl ban chinh

Upload: bui-the-cuong

Post on 08-Oct-2015

40 views

Category:

Documents


0 download

DESCRIPTION

ngôn ngữ mô hình miên chuyên biệt

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