專利名稱:建模語言圖形表示法的生成方法和裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種建模語言表示法的生成方法和裝置,尤其是一種建模語 言圖形表示法的生成方法和裝置。
背景技術(shù):
沖莫型驅(qū)動的體系結(jié)構(gòu)(Model Driven Architecture,簡稱MDA)是國際對 象管理組織提出的一套以模型為核心的軟件開發(fā)技術(shù)和方法。當前,MDA在 產(chǎn)業(yè)界已經(jīng)得到極大的關(guān)注,并有一些產(chǎn)品出現(xiàn)。在MDA中,模型取代代碼 成為軟件開發(fā)的核心制品,軟件開發(fā)的整個過程都是以模型為指導(dǎo)進行的。 在應(yīng)用MDA進行軟件開發(fā)的過程中,建模是一項非常重要的活動。建模是一 項對現(xiàn)實世界進行抽象、建立相應(yīng)模型的活動。要進行軟件開發(fā),首先要在 不同的抽象層次上建立各種模型,然后通過相應(yīng)的技術(shù)對模型進行各種變換 和調(diào)整,直到最終產(chǎn)生源代碼。鑒于上述情況,需要不斷地生成一系列的針 對特定領(lǐng)域的建模語言,并產(chǎn)生相應(yīng)的建模工具。 一些通用的建模語言,例 如統(tǒng)一建模語言(Unified Modeling Language,簡稱UML)在一定程度上可以 滿足建模需求,然而,在一些領(lǐng)域中還存在大量無法滿足的建模需求,特別 是,領(lǐng)域不斷地發(fā)展變化,所需要的建模語言隨之也不斷地變化。然而,生 成建模語言和產(chǎn)生建模工具是非常復(fù)雜的工作,需要消耗大量的人力和時間。 為了提升生成建模語言和產(chǎn)生建模工具的效率,人們提出了元建模技術(shù)。元建模是一項生成建模語言并產(chǎn)生建模工具的活動,即為建模語言建模的活動。 圖11為現(xiàn)有技術(shù)中元建模流程圖,如圖11所示,具體可以包括如下步驟 步驟111、利用工具中提供的元建模語言信息生成目標建模語言的抽象
語法信息;
步驟112、生成目標建模語言的具體語法信息; 步驟113、描述目標語言的語義信息; 步驟114、生成相關(guān)的工具配置信息,設(shè)置一些選項信息; 步驟115、根據(jù)上述信息,利用代碼生成技術(shù)或其他方式,生成目標建 模工具。
其中,步驟111 113用于生成目標語言本身,步驟114 115用于生成 相應(yīng)的建模工具。
在元建模的過程中,生成目標建模語言的抽象語法和具體語法是非常重 要的步驟。目標建模語言的抽象語法規(guī)定了這種語言的抽象結(jié)構(gòu),通常使用 元類和它們之間的關(guān)系表示抽象語法。目標建模語言的具體語法規(guī)定了這種 語言的具體表現(xiàn)形式,也稱為表示法。具體語法可以是文字式的,也可以是 圖形化的。圖形化的具體語法稱為圖形表示法。
近年來,圖形建模語言成為發(fā)展的主流,如何在元建模過程中更好地生 成圖形表示法成為了一個重要的問題。生成建模語言的圖形表示法不是一個 簡單的繪圖過程。 一方面,建才莫語言的圖形表示法是一種圖形化的語法,包 括一定的規(guī)則和語義;另一方面,表示法和抽象語法之間存在緊密的聯(lián)系, 需要建立表示法和抽象語法之間的映射。在生成抽象語法時,目前已有一些 可以參考的標準和規(guī)范,然而,如何生成表示法,目前沒有一個統(tǒng)一的標準 或方法。較為常見的生成圖形表示法的一種方法是使用位圖。在這種方法中,元 建模人員使用位圖生成表示法,即為每個建模元素指定一個位圖文件,用位 圖文件中的圖片作為建模元素的圖形符號信息,使用線條表示建模元素之間
的關(guān)系信息。例如,The Generic Modeling Environment (簡稱GME)是一凍欠 較為成熟的元建模工具,可以通過導(dǎo)入位圖來生成表示法,除此之外,還可 以生成某些圖形符號之間的嵌套關(guān)系。然而,發(fā)明人在本發(fā)明過程中發(fā)現(xiàn), 使用位圖的表示法生成圖形表示法存在一些不足。位圖雖然可以由元建才莫人 員創(chuàng)建和修改,但是位圖畢竟是一種靜態(tài)資源,使得建模工具無法通過這種 靜態(tài)資源反應(yīng)更多的模型信息。例如,在GME中,建模元素的圖形符號除了 能夠通過位圖的種類反映建模元素的類型和通過在位圖下方增加一行文字反 映建模元素的名字之外,無法提供更多的建模信息。
生成圖形表示法的另外一種方法是利用筒單的繪圖工具生成表示法,指 的是,元建模工具中集成一個簡單的繪圖工具,元建模人員可以使用這個工 具來手工繪制建模元素的圖形符號。由于所有的圖形符號都是在建模工具中 繪制出來的,所以在繪制過程中可以將建模元素的某些信息綁定到圖形符號 上。此時,建模工具記錄的不是繪圖的結(jié)果,而是繪圖過程,也稱這種圖為 矢量圖。在建模工具中,這些繪制過程會被重視,而那些綁定的信息會根據(jù) 具體的實例被動態(tài)地顯示出來。例如,MetaEdit+是一款元建模工具,它使用 了一個簡單的繪圖工具來生成表示法。在構(gòu)建表示法后,MetaEdit+導(dǎo)入目標
建模語言的信息,把二者結(jié)合起來,使用表示法進行圖形化建模。然而,發(fā) 明人在本發(fā)明過程中發(fā)現(xiàn),這種方案存在一些缺點,由于繪圖的過程依賴個 人的喜好和繪畫水平,想繪制出人們慣用的圖形符號需要較高的技巧,而且, 這種方法不利于產(chǎn)生相應(yīng)的建模工具。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是為每個建模元素分別生成自己的圖形符 號;生成不同建模元素的圖形符號之間的各種位置關(guān)系;將圖形符號以及圖形 符號之間的位置關(guān)系映射到建模語言的抽象語法上。
一種建模語言圖形表示法的生成方法包括
統(tǒng)計圖形化建才莫語言中的圖形符號中的形狀出現(xiàn)的頻率和數(shù)量信息,得 到基本圖元信息;
將所述基本圖元信息通過布局策略處理得到建模元素的圖形符號信息;
將所述圖形符號信息和圖形符號之間的基本位置關(guān)系信息,通過抽象語 法橋的語法映射處理,得到建模語言的抽象語法信息。
所述基本圖元信息具體可以包括幾何圖形信息,或文本對象信息,或 圖片對象信息。
所述布局策略處理具體包括
容器模式布局策略處理,將一個塊狀基本圖元作為容器,即父圖元,子 圖元在容器中按一定順序排列;
或者關(guān)聯(lián)模式布局策略處理,將線狀父圖元與其他形狀子圖元組合在一
起;
或者矢量圖才莫式布局策略處理,將子圖元^t耍照各自的邏輯位置和尺寸分 布在父圖元內(nèi)部,父圖元按照自己的實際位置和尺寸以及子圖元的邏輯位置
和尺寸計算子圖元的實際位置和尺寸,計算公式為
少=W + p/z x cy …(2) A = pA x c/ …(4)其中,x,y是子圖元的實際坐標,w,h是子圖元的實際寬度和高度;px, py 父圖元的實際坐標,pw,ph是父圖元的實際寬度和高度;cx,cy是子圖元的邏 輯坐標,cw, ch是子圖元的邏輯寬度和高度。
所述按一定順序排列具體包括按從上而下排列,或者從左到右依次排 列,或者依方向順序依次排列。
所述將線狀父圖元與其他形狀子圖元組合在一起具體包括將子圖元作 為線端點的修飾與線狀父圖元組合在一起,或者將其他形狀子圖元排列在線 狀父圖元的周圍。
所述布局策略處理依據(jù)各種參數(shù)計算子圖元的位置和大小。
所述圖形符號之間的基本位置關(guān)系信息具體包括
嵌套位置關(guān)系,用于表示塊狀圖形符號嵌套在另 一個塊狀圖形符號內(nèi)部, 內(nèi)層圖形符號隨著外層圖形符號的移動而移動,但不會隨著外層圖形符號的 變形而變形;
或者連接位置關(guān)系,用于表示線狀圖形符號的附著端附著在一個塊狀圖 形符號的邊界上,其一端隨著塊狀圖形符號的移動和變形而移動,另一端不 變化;
或者端口附著位置關(guān)系,用于表示一個塊狀圖形符號附著在另 一個塊狀 圖形符號的邊界上,而且附著的塊狀圖形符號在被附著的塊狀圖形符號的邊 界上移動,隨著被附著的塊狀圖形符號的移動和變形而移動,附著的塊狀圖 形符號的大小不隨著被附著塊狀圖形符號的大小變化而變化;
或者結(jié)點附著位置關(guān)系,用于表示塊狀圖形符號附著在水平或者垂直的 線狀圖形符號上,塊狀圖形符號只能在線狀圖形符號上移動,線狀圖形符號 的延展不會影響塊狀圖形符號的大小,但會導(dǎo)致塊狀圖形符號的移動;或者線端點附著位置關(guān)系,用于表示線狀圖形符號的一端附著在另一個 線狀圖形符號上,附著的線狀圖形符號的附著端在被附著的線狀圖形符號上 移動。
所述抽象語法橋的語法映射處理具體包括
元素映射處理,將源端的一個圖形符號映射到目的端的目標語言的某個
建模元素;
或者屬性映射處理,將源端的一個圖形符號映射到目的端的建模元素的 某個屬性值;
或者關(guān)系映射處理,將源端的圖形符號之間的基本位置關(guān)系映射到目的 端的建模元素之間的關(guān)系。
所述屬性映射處理隸屬于所述元素映射處理,限定在屬性映射處理中出
現(xiàn)的建模元素和圖形符號。
一種建模語言圖形表示法的生成裝置,包括
基本圖元處理模塊,用于統(tǒng)計圖形化建模語言中的圖形符號中的形狀出 現(xiàn)的頻率和數(shù)量信息,得到基本圖元信息;
布局策略處理模塊,用于對所述基本圖元信息通過布局策略處理得到圖 形符號信息;
語法映射處理模塊,用于根據(jù)所述圖形符號信息和圖形符號之間的基本 位置關(guān)系信息,通過抽象語法橋的語法映射處理,得到抽象語法信息。
采用本發(fā)明描述的建模元素的圖形符號更具有針對性,因為本發(fā)明使用 的基本圖元和布局策略都是根據(jù)真實的建模語言圖形表示法生成的,因此本 發(fā)明能夠用于生成絕大部分的圖形符號,同時使得基本圖元和布局策略比較 精簡,方便工具的實現(xiàn);進一步地,本發(fā)明中的基本位置關(guān)系包括了建模語言中最常見的五種位置關(guān)系,能夠滿足復(fù)雜建模語言的需要,而其他技術(shù)目
前無法支持全部的五種位置關(guān)系;再一步地,本發(fā)明的語法映射處理可以明 確地表示出表示法和抽象語法之間的三種映射關(guān)系,其他技術(shù)目前也無法描 述全部的映射關(guān)系;最后,本發(fā)明將建模語言的表示法描述成模型,可以更 好地生成建模工具的代碼。
下面通過附圖和實施例,對本發(fā)明的技術(shù)方案做進一步的詳細描述。
圖1為本發(fā)明建模語言圖形表示法的生成方法實施例的流程圖2A、圖2B和圖2C為本發(fā)明建才莫語言圖形表示法的生成方法實施例中
容器模式布局策略處理示意圖3A和圖3B為本發(fā)明建模語言圖形表示法的生成方法實施例中關(guān)聯(lián)模 式布局策略處理示意圖4為本發(fā)明建模語言圖形表示法的生成方法實施例中矢量圖模式布局 策略處理示意圖5為本發(fā)明建模語言圖形表示法的生成方法實施例中基本圖元和布局 策略的元才莫型結(jié)構(gòu)圖6A、圖6B、圖6C、圖6D和圖6E為本發(fā)明建模語言圖形表示法的生 成方法實施例中基本位置關(guān)系示意圖7為本發(fā)明建模語言圖形表示法的生成方法實施例中圖形符號之間的 基本位置關(guān)系的元模型結(jié)構(gòu)圖8為本發(fā)明建才莫語言圖形表示法的生成方法實施例中抽象語法橋的元 模型結(jié)構(gòu)圖;圖9為本發(fā)明建模語言圖形表示法的生成方法實施例中生成建模語言圖
形表示法的元模型各個部分之間的關(guān)系示意圖10為本發(fā)明建模語言圖形表示法的生成方法裝置實施例結(jié)構(gòu)圖; 圖11為現(xiàn)有技術(shù)中元建模流程圖。
具體實施例方式
建模語言圖形表示法的生成方法實施例
圖1為本發(fā)明建模語言圖形表示法的生成方法實施例的流程圖,如圖1 所示,具體可以包括如下步驟
步驟11 、統(tǒng)計圖形化建模語言中的圖形符號中的形狀出現(xiàn)的頻率和數(shù)量 信息,得到基本圖元信息;
步驟12、對所述基本圖元信息通過布局策略處理得到建模元素的圖形符 號信息;
步驟13、將所述圖形符號信息和圖形符號之間的基本位置關(guān)系信息,通 過抽象語法橋的語法映射處理,得到建模語言的抽象語法信息。
采用圖l所示的技術(shù)方案,首先根據(jù)圖形化建模語言中的圖形符號中的 形狀出現(xiàn)的頻率和數(shù)量信息得到基本圖元信息,然后對所述基本圖元信息進 行布局策略處理得到圖形符號信息,將所述圖形符號信息和圖形符號之間的 基本位置關(guān)系信息通過語法映射處理映射到抽象語法信息。
在步驟ll中,基本圖元是一些常見的簡單圖形的抽象,是構(gòu)造圖形符號 的最基本的元素。選取基本圖元需要一定的策略,如果選取的圖元數(shù)量過多, 會造成整個元模型的規(guī)模過于龐大,增加工具實現(xiàn)和用戶使用的難度;如果 選取的圖元數(shù)量過少,則導(dǎo)致用戶無法生成足夠的圖形符號。所以統(tǒng)計圖形化建模語言中的圖形符號中的形狀出現(xiàn)的頻率和數(shù)量信息,得到基本圖元信 息。該基本圖元信息具體可以包括幾何圖形信息,或文本對象信息,或圖 片對象信息。
采用步驟11所述的技術(shù)方案生成的基本圖元信息是根據(jù)真實的建模語 言圖形表示法生成的,因此,能夠用于生成絕大部分的圖形符號,而且基本 圖元比較精筒,方便建模工具實現(xiàn)。
在步驟12中,為了構(gòu)造更加復(fù)雜的建模語言的圖形符號,需要將基本圖 元組合起來,即布局策略處理。布局策略處理反映了基本圖元之間的一種組 合處理,多個基本圖元按照一定的方式組合起來形成復(fù)雜的圖形符號,參與
組合的基本圖元可以分為兩種父圖元和子圖元。 一個父圖元可以和多個子 圖元組合在一起,父圖元依據(jù)不同的布局策略確定子圖元的位置和尺寸。布 局策略處理具體可以包括
容器模式布局策略處理,圖2A、圖2B和圖2C為本發(fā)明建模語言圖形表 示法的生成方法實施例中容器模式布局策略處理示意圖,如圖2A、圖2B和 圖2C所示,將一個塊狀圖元作為容器,即父圖元,子圖元在容器中按一定順 序排列。所述按一定順序排列具體可以包括如圖2A所示,子圖元在容器中 按照從上到下的順序排列,或者如圖2B所示,子圖元在容器中按照從左到右 的順序排列,或者如圖2C所示,子圖元在容器中按照方向順序依次排列。
或關(guān)聯(lián)模式布局策略處理,圖3A和圖3B為本發(fā)明建模語言圖形表示法 的生成方法實施例中關(guān)聯(lián)模式處理示意圖,如圖3A和圖3B所示,將線狀圖 元作為父圖元,和其他形狀子圖元組合在一起。所述將線狀父圖元與其他形 狀子圖元組合在一起具體可以包括如圖3A所示,將一個圖元作為線端的修 飾和線狀圖元組合在一起,或者如圖3B所示,將其他形狀圖元排列在線狀圖元的周圍。
或矢量圖模式布局策略處理,圖4為本發(fā)明建模語言圖形表示法的生成
方法實施例中矢量圖模式處理示意圖,如圖4所示,將子圖元按照各自的邏
輯位置和尺寸分布在父圖元內(nèi)部,父圖元按照自己的實際位置和尺寸以及子
圖元的邏輯位置和尺寸計算子圖元的實際位置和尺寸,計算公式為
_y =+/ A x qy …(2) w = /rwxcw …(3) =x c/ …(4)
其中,x,y是子圖元的實際坐標,w,h是子圖元的實際寬度和高度;px, py父 圖元的實際坐標,pw, ph是父圖元的實際寬度和高度;cx,cy是子圖元的邏輯 坐標,cw,ch是子圖元的邏輯寬度和高度。
采用步驟12所述的技術(shù)方案,布局策略處理比較精簡,方便建模工具的 實現(xiàn)。
圖5為本發(fā)明建模語言圖形表示法的生成方法實施例中基本圖元和布局 策略的元才莫型,如圖5所示,圖中抽象類Figure (基本圖元)51是基本圖元 的抽象父類。Figure 51下有五個子類Polygon (多邊形)512、 Ellipse (橢 圓形)513、 Arc (弧形)514、 Image0bject511 (圖片對象)和TextObject (文本對象)515。 Polygon 512表示多邊形的基本圖元;Ellipse 513表示 橢圓形的基本圖元;Arc 514表示弧線型的基本圖元;Image0bject 511表示 圖片對象,該元素用于表示一個外部的圖片資源;TextObject 5"表示文本 對象,該元素用于表示圖形符號中的一段文字。Polygon 512又有三個子類 Triangle (三角形)5121、 Diamond (菱形)5122和Rectangle (矩形)5123。 Triangle 5121表示三角形的基本圖元;Diamond 5122表示菱形的基本圖元;Rectangle 5123表示矩形的基本圖元。其中,Rectangle 5123又有兩個子類 CorneredRectangle(4斤角矩形)51231和RoundRectangle(圓角矩形)51232。 CorneredRectangle 51231表示一個4斤角殺巨開j的基本圖元,RoundRectangle 51232表示一個圓角矩形的基本圖元。Ellipse 513包含一個子類,即Circle
(正圓形)5131,表示正圓形的基本圖元。Arc 514也只包含一個子類,即 Line(直線形)5141,表示直線形的基本圖元。圖中的另 一個抽象類Layout
(布局策略)52是所有布局策略處理的抽象父類,它包含三個子類抽象類 ContainerLayout (容器模式布局策略)521、抽象類LineLayout (關(guān)聯(lián)模式 布局策略)522和類VectorGraphLayout (矢量圖才莫式布局策略)523。 ContainerLayout 521用于表示容器模式下的幾種布局策略處理;LineLayout 522用于表示關(guān)聯(lián)模式下的幾種布局策略處理;VectorGraphLayout 523用于 表示向量圖才莫式的布局策略處理。ContainerLayout 521有兩個子類 FlowLayout (流程布局策略)5211和BorderLayout (邊界布局策略)5212。 FlowLayout 5211用于表示子圖元按從上而下或從左到右依次排列; BorderLayout 5212用于表示子圖元依方向順序依次排列。LineLayout522 也有兩個子類DecorationLayout (修飾布局策略)5221和RoleLayout (排 列布局策略)5222。 DecorationLayout 5221表示將子圖元作為線端點的修 飾與線狀父圖元組合在一起,RoleLayout 5"2表示將其他子圖元排列在線 狀父圖元的周圍。圖6A、圖6B、圖6C、圖6D和圖6E為本發(fā)明建模語言圖 形表示法的生成方法實施例中基本位置關(guān)系示意圖,如圖6A、圖6B、圖6C、 圖6D和圖6E所示,圖形符號之間的基本位置關(guān)系信息具體可以包括
嵌套位置關(guān)系,如圖6A所示,用于表示塊狀圖形符號嵌套在另一個塊狀 圖形符號內(nèi)部,內(nèi)層圖形符號隨著外層圖形符號的移動而移動,但不會隨著外層圖形符號的變形而變形;例如麗L類圖中類的表示法之間的嵌套;
或連接位置關(guān)系,如圖6B所示,用于表示線狀圖形符號的附著端附著在 一個塊狀圖形符號的邊界上,其一端隨著塊狀圖形符號的移動和變形而移動, 另 一端不變化;例如UML類中關(guān)系的表示法對類的附著;
或端口附著位置關(guān)系,如圖6C所示,用于表示一個塊狀圖形符號附著在 另一個塊狀圖形符號的邊界上,而且附著的塊狀圖形符號只能在被附著的塊 狀圖形符號的邊界上移動,隨著被附著的塊狀圖形符號的移動和變形而移動, 附著的塊狀圖形符號的大小不隨著被附著塊狀圖形符號的大小變化而變化; 例如UML中端口 (port)的畫法;
或結(jié)點附著位置關(guān)系,如圖6D所示,用于表示塊狀圖形符號附著在水平 或者垂直的直線線狀圖形符號上,塊狀圖形符號在線狀圖形符號上移動,線 狀圖形符號的延展不會影響塊狀圖形符號的大小,但會導(dǎo)致塊狀圖形符號的 移動;例如麗L順序圖中生命線(Lifel ine)和執(zhí)行^見約(Execute Specification)的畫法;
或線端點附著位置關(guān)系,如圖6E所示,用于表示線狀圖形符號的一端附 著在另一個線狀圖形符號上,附著的線狀圖形符號的附著端在被附著的線狀 圖形符號上移動;例如麗L消息和生命線的畫法。
本發(fā)明圖形表示法的生成方法實施例中的基本位置關(guān)系包括了建模語言 中最常見的五種位置關(guān)系,能夠滿足復(fù)雜建模語言的需要。
圖7為本發(fā)明建模語言圖形表示法的生成方法實施例中圖形符號之間的 基本位置關(guān)系的元^^莫型結(jié)構(gòu)圖,如圖7所示,圖中抽象類LocationRelation (位置關(guān)系)71是基本位置關(guān)系的抽象父類。LocationRelation 71下有五 個子類NestedUcation (嵌套位置關(guān)系)711、 NodeAUachedLocation (結(jié)點附著位置關(guān)系)712、 ConnectionLocation (連接位置關(guān)系)713、 EndAttachedLocation (線端點附著位置關(guān)系)714和PortLocation (端口 附著位置關(guān)系)715。 NestedLocation 711表示塊狀圖形符號之間的嵌套的 位置關(guān)系;ConnectionLocation 713表示線狀圖形符號附著在塊狀圖形符號 上的位置關(guān)系;PortLocation 715表示一個塊狀圖形符號附著在另一個塊狀 圖形符號的邊界上的位置關(guān)系;NodeAttachedLocation 712表示一個塊狀圖 形符號附著在一個線狀圖形符號上的位置關(guān)系;EndAUachedLocation 714 表示一個線狀圖形符號的端點附著在另一個線狀圖形符號上的位置關(guān)系。
建模語言的表示法和普通圖形的最大區(qū)別在于它本身具有特定的約束和 語義,因此在生成表示法的時候必須能夠指明它所對應(yīng)的抽象語法。在本發(fā) 明圖形表示法的生成方法實施例中,使用抽象語法橋來描述這種關(guān)系,抽象 語法橋的語法映射處理具體可以包括
元素映射處理,將源端的一個圖形符號映射到目的端的目標語言的某個 建模元素;
或者屬性映射處理,將源端的一個圖形符號映射到目的端的建模元素的 某個屬性值;
或者關(guān)系映射處理,將源端的圖形符號之間的基本位置關(guān)系映射到目的 端的建模元素之間的關(guān)系。
其中,所述屬性映射處理隸屬于所述元素映射處理,限定在屬性映射處 理中出現(xiàn)的建模元素和圖形符號。
本發(fā)明圖形表示法的生成方法實施例中的語法映射處理可以明確地表示 出表示法和抽象語法之間的三種映射關(guān)系。
圖8為本發(fā)明建模語言圖形表示法的生成方法實施例中抽象語法橋的元模型結(jié)構(gòu)圖,如圖8所示,圖中抽象類Bridge (語法映射橋)81是所有抽象 語法橋的抽象父類。Bridge 81下有三個子類ElementMapping (元素映射) 811,用于表示元素映射處理;AttributeMapping (屬性映射)812,用于表 示屬性映射處理;RelationshipMapping (關(guān)系映射)813,用于表示關(guān)系映 射處理。
圖9為本發(fā)明建模語言圖形表示法的生成方法實施例中生成建模語言圖形 表示法的元模型各個部分之間的關(guān)系示意圖,如圖9所示,表示布局策略的抽 象類Layout 52和表示基本圖元的抽象類Figure 51之間存在一個組合關(guān)系, 這表示父圖元使用的布局策略。Figure 51到自身存在一個組合關(guān)系,這表示 圖元之間的組合關(guān)系。LayoutContraint 92和Layout 52之間存在一個關(guān)聯(lián), 抽象類LayoutContraint (參數(shù)限制)92表示Layout 52使用的各種參數(shù),包 括子圖元的"對齊方式"(靠左,靠右,靠上,靠下,居中),"填充方 式"(不填充,橫向填充,縱向填充,全部填充),"排列方向"(橫向, 縱向),"放置位置"(東,南,西,北,中),"首選尺寸,,,"附著端點" (源端,目標端),"接近端點"(源端,中點,目標端,自定義點),"邏 輯位置","邏輯尺寸",Layout 52以此來計算子圖元的位置和大小。抽象 類LocationRelation (基本位置關(guān)系)71表示圖形符號模型之間的基本位置 關(guān)系,因此LocationRelation 71和Figure 51之間存在兩個關(guān)聯(lián),分別表示 基本位置關(guān)系的源和目標。Figure 51和LocationRelation 71都是抽象類 ConcreteSyntax (具體語法)93的子類,ConcreteSyntax 93表示具體語法中 的元素,抽象類AbstractSyntax (抽象語法)91表示抽象語法的元素。表示 抽象語法橋的Bridge 81定義了具體語法和抽象語法之間的映射,因此Bridge 81分別與ConcreteSyntax 93和AbstractSyntax 91之間存在一個關(guān)聯(lián)。本發(fā)明建模語言圖形表示法的生成方法實施例將建模語言的表示法描述 成模型,可以更好地生成建模工具的代碼。 建模語言圖形表示法的生成裝置實施例
圖1 0為本發(fā)明建模語言圖形表示法的生成裝置實施例結(jié)構(gòu)圖,如圖1 0所
示,具體可以包括基本圖元處理模塊101、布局策略處理模塊102和語法映射 處理模塊103。其中,所述基本圖元處理模塊IOI,用于統(tǒng)計圖形化建模語言 中的圖形符號中的形狀出現(xiàn)的頻率和數(shù)量信息,得到基本圖元信息;所述布 局策略處理模塊102,與所述基本圖元處理模塊101連接,用于對所述基本圖 元信息通過布局策略處理得到圖形符號信息;所述語法映射處理模塊103,與 所述布局策略處理模塊102連接,用于根據(jù)所述圖形符號信息和圖形符號之間 的基本位置關(guān)系信息,通過抽象語法橋的語法映射處理,得到抽象語法信息。
最后應(yīng)說明的是以上實施例僅用以說明本發(fā)明的技術(shù)方案而非限制, 盡管參照較佳實施例對本發(fā)明進行了詳細說明,本領(lǐng)域的普通技術(shù)人員應(yīng)當 理解,可以對本發(fā)明的技術(shù)方案進行修改或者等同替換,而不脫離本發(fā)明技 術(shù)方案的精神和范圍。
權(quán)利要求
1、一種建模語言圖形表示法的生成方法,其特征在于,包括統(tǒng)計圖形化建模語言中的圖形符號中的形狀出現(xiàn)的頻率和數(shù)量信息,得到基本圖元信息;將所述基本圖元信息通過布局策略處理得到建模元素的圖形符號信息;將所述圖形符號信息和圖形符號之間的基本位置關(guān)系信息,通過抽象語法橋的語法映射處理,得到建模語言的抽象語法信息。
2、 根據(jù)權(quán)利要求l所述的建模語言圖形表示法的生成方法,其特征在于, 所述基本圖元信息具體包括幾何圖形信息,或文本對象信息,或圖片對象4呂息。
3、 根據(jù)權(quán)利要求l所述的建模語言圖形表示法的生成方法,其特征在于, 所述布局策略處理具體包括容器模式布局策略處理,將一個塊狀基本圖元作為容器,即父圖元,子 圖元在容器中按一定順序排列;或者關(guān)聯(lián)模式布局策略處理,將線狀父圖元與其他形狀子圖元組合在一起;或者矢量圖模式布局策略處理,將子圖元按照各自的邏輯位置和尺寸分 布在父圖元內(nèi)部,父圖元按照自己的實際位置和尺寸以及子圖元的邏輯位置和尺寸計算子圖元的實際位置和尺寸,計算公式為<formula>formula see original document page 2</formula>其中,x,y是子圖元的實際坐標,w,h是子圖元的實際寬度和高度;px,py是父圖元的實際坐標,pw,ph是父圖元的實際寬度和高度;cx,cy是子圖元的邏輯 坐標,cw,ch是子圖元的邏輯寬度和高度。
4、 根據(jù)權(quán)利要求3所述的建模語言圖形表示法的生成方法,其特征在于, 所述按一定順序排列具體包括按從上而下排列,或者從左到右依次排列, 或者依方向順序依次排列。
5、 根據(jù)權(quán)利要求3所述的建模語言圖形表示法的生成方法,其特征在于, 所述將線狀父圖元與其他形狀子圖元組合在一起具體包括將子圖元作為線 端點的修飾與線狀父圖元組合在一起,或者將其他形狀子圖元排列在線狀父 圖元的周圍。
6、 根據(jù)權(quán)利要求3所述的建模語言圖形表示法的生成方法,其特征在于, 所述布局策略處理依據(jù)各種參數(shù)計算子圖元的位置和大小。
7、 根據(jù)權(quán)利要求l所述的建模語言圖形表示法的生成方法,其特征在于, 所述圖形符號之間的基本位置關(guān)系信息具體包括嵌套位置關(guān)系,用于表示塊狀圖形符號嵌套在另一個塊狀圖形符號內(nèi)部, 內(nèi)層圖形符號隨著外層圖形符號的移動而移動,但不會隨著外層圖形符號的 變形而變形;或者連接位置關(guān)系,用于表示線狀圖形符號的附著端附著在一個塊狀圖 形符號的邊界上,其一端隨著塊狀圖形符號的移動和變形而移動,另一端不 變化;或者端口附著位置關(guān)系,用于表示一個塊狀圖形符號附著在另 一個塊狀 圖形符號的邊界上,而且附著的塊狀圖形符號在被附著的塊狀圖形符號的邊 界上移動,隨著被附著的塊狀圖形符號的移動和變形而移動,附著的塊狀圖 形符號的大小不隨著被附著塊狀圖形符號的大小變化而變化;或者結(jié)點附著位置關(guān)系,用于表示塊狀圖形符號附著在水平或者垂直的 線狀圖形符號上,塊狀圖形符號只能在線狀圖形符號上移動,線狀圖形符號的延展不會影響塊狀圖形符號的大小,但會導(dǎo)致塊狀圖形符號的移動;或者線端點附著位置關(guān)系,用于表示線狀圖形符號的一端附著在另一個 線狀圖形符號上,附著的線狀圖形符號的附著端在被附著的線狀圖形符號上 移動。
8、 根據(jù)權(quán)利要求l所述的建模語言圖形表示法的生成方法,其特征在于, 所述抽象語法橋的語法映射處理具體包括元素映射處理,將源端的一個圖形符號映射到目的端的目標語言的某個 建模元素;或者屬性映射處理,將源端的一個圖形符號映射到目的端的建模元素的 某個屬性值;或者關(guān)系映射處理,將源端的圖形符號之間的基本位置關(guān)系映射到目的 端的建模元素之間的關(guān)系。
9、 沖艮據(jù)權(quán)利要求8所述的建模語言圖形表示法的生成方法,其特征在于, 所述屬性映射處理隸屬于所述元素映射處理,限定在屬性映射處理中出現(xiàn)的 建模元素和圖形符號。
10、 一種建模語言圖形表示法的生成裝置,其特征在于,包括基本圖元處理模塊,用于統(tǒng)計圖形化建模語言中的圖形符號中的形狀出 現(xiàn)的頻率和數(shù)量信息,得到基本圖元信息;布局策略處理模塊,用于對所述基本圖元信息通過布局策略處理得到圖 形符號信息;語法映射處理模塊,用于根據(jù)所述圖形符號信息和圖形符號之間的基本 位置關(guān)系信息,通過抽象語法橋的語法映射處理,得到抽象語法信息。
全文摘要
本發(fā)明涉及一種建模語言圖形表示法的生成方法和裝置,統(tǒng)計圖形化建模語言中的圖形符號中的形狀出現(xiàn)的頻率和數(shù)量信息,得到基本圖元信息;對所述基本圖元信息通過布局策略處理得到建模元素的圖形符號信息;將所述圖形符號信息和圖形符號之間的基本位置關(guān)系信息,通過抽象語法橋的語法映射處理,得到建模語言的抽象語法信息,從而可以有效地為每個建模元素分別生成自己的圖形符號;生成不同建模元素的圖形符號之間的各種位置關(guān)系;將圖形符號以及圖形符號之間的位置關(guān)系映射到建模語言的抽象語法上。
文檔編號G06F9/44GK101303649SQ20081011531
公開日2008年11月12日 申請日期2008年6月20日 優(yōu)先權(quán)日2008年6月20日
發(fā)明者嘯 何, 輝 劉, 宏 梅, 冰 謝, 麻志毅 申請人:北京大學