xiaoxiaoleemin

          天道酬勤,小小加油
          posts - 19, comments - 12, trackbacks - 0, articles - 0

          GMF:基于Reference的連接

          Posted on 2007-05-06 23:15 xiaoxiaoleemin 閱讀(1203) 評論(4)  編輯  收藏 所屬分類: GMF
              GMF中的Link有兩個,分別是基于Type的和基于Reference的。對于前者,在ecore模型中有一個類對應(yīng)這個連接,創(chuàng)建一個連接即創(chuàng)建了該類的一個實例,試想,如果一個模型比較復(fù)雜,有很多連接時,這種方法要在模型中要為連接建立很多與業(yè)務(wù)無關(guān)的類,使得模型非常復(fù)雜;對于后者,沒有必要為每個連接在ecore中建立一個類,而是設(shè)置該連接對應(yīng)的Reference即可。下面用一個school的模型來說明基于Reference的連接的建立方法,這個模型非常簡單,如下圖(用gmf插件生成的對應(yīng)school.ecore的school.ecore_diagram):一個學(xué)校里邊有很多老師和學(xué)生,每個老師會指導(dǎo)多個學(xué)生,這里的指導(dǎo)關(guān)系是Teacher類的一個Reference,名字為tutoringStudents,我們打算在GMF編輯器中用Node來表示老師和學(xué)生,老師對學(xué)生的指導(dǎo)關(guān)系用Link來表示。

              該模型命名為school.ecore, 然后生成school.genmodel,再按照常規(guī)方法建立school.gmfgraph, school.gmftool.
              最后建立最關(guān)鍵的school.gmfmap,首先為mapping元素建立兩個Top Node Reference,分別對應(yīng)Teacher和School,然后建立代表老師指導(dǎo)學(xué)生關(guān)系的link mapping,其屬性頁中各項按照下圖指定值:
             
              注意,Domain meta information中前三項都空著,只在最后一項中指定代表該連接的Reference即可。Validate無錯后,生成school.gmfgen,在生成Diagram code,最后運行效果圖如下:

                看一下保存semantic model的school文件: 
          <?xml version="1.0" encoding="UTF-8"?>
          <School:School xmi:version="2.0" xmlns:xmi="http://www.omg.org/XMI" xmlns:School="http://example.School">
            
          <teachers name="ProfessorLi" tutoringStudents="//@students.0 //@students.1"/>
            
          <students name="Tom"/>
            
          <students name="Mary"/>
          </School:School>

             

          Feedback

          # re: GMF:基于Reference的連接  回復(fù)  更多評論   

          2007-05-13 19:18 by zhanglei
          謝謝lz的講解~~
          我也正在學(xué)習(xí)GMF
          現(xiàn)在做了一個UML時序圖的GMF應(yīng)用

          歡迎交流~~ 一起學(xué)習(xí)GMF

          zhanglei07@sei.pku.edu.cn

          # re: GMF:基于Reference的連接[未登錄]  回復(fù)  更多評論   

          2007-05-15 14:10 by xiaoxiaoleemin
          呵呵,四樓的

          # re: GMF:基于Reference的連接  回復(fù)  更多評論   

          2008-04-18 15:21 by start
          如果節(jié)點有3個以上,怎么可以創(chuàng)建一個連接可以連接他們中的任意兩個呢?

          # re: GMF:基于Reference的連接  回復(fù)  更多評論   

          2010-04-08 10:28 by 徐棟
          請問怎樣用gmf做一個時序圖啊,我現(xiàn)在做出一個類似的,但是生命線是斜的,怎樣能做成垂直的呢?@zhanglei

          只有注冊用戶登錄后才能發(fā)表評論。


          網(wǎng)站導(dǎo)航:
           
          主站蜘蛛池模板: 唐河县| 红安县| 临安市| 汨罗市| 涟源市| 西平县| 娱乐| 白城市| 合阳县| 龙游县| 昭平县| 资中县| 蒙自县| 麻阳| 旬邑县| 马龙县| 甘谷县| 平利县| 陕西省| 蒙山县| 临沂市| 台安县| 白河县| 电白县| 东海县| 宜良县| 通山县| 阜城县| 高要市| 军事| 平原县| 巴塘县| 灵石县| 丰顺县| 剑河县| 申扎县| 广西| 彩票| 酒泉市| 安康市| 西乡县|