摘要:隨著UML的流行,掀起了人們對于元建模研究的熱潮,UML是一種標(biāo)準(zhǔn)的圖形化建模語言,但是人為的為不同的軟件開發(fā)不同的建模語言費時費力,而元建模的誕生解決了這個問題。本文以UML功用和特點,元建模各個模塊之間的關(guān)系做了淺顯的分析和理解。
關(guān)鍵詞:統(tǒng)一建模語言UML(Unified Modeling Language);元模型Metamodel;元建模Metamodeling
中圖分類號:TP311 文獻(xiàn)標(biāo)識碼:A 文章編號:1007-9599 (2012) 17-0000-02
70年代到90年代,正是軟件科學(xué)發(fā)展的時期,人們?yōu)榱瞬煌念I(lǐng)域設(shè)計軟件,各種不同的建模語言應(yīng)運而生,但是人們因為它的數(shù)量龐大,根本沒有能力區(qū)別各種建模語言的差別,并不能為自己找到合適的,而各種建模語言的細(xì)微差別也妨礙了用戶之間的交流,經(jīng)過Booch、Rumbaugh和Jacobson三人的共同努力,于1996年發(fā)布了UML(Unified Modeling Language)。1997年11月17日,OMG采納UML 1.1作為基于面向?qū)ο蠹夹g(shù)的標(biāo)準(zhǔn)建模語言。
1 UML
UML用圖形來表達(dá)思想,避免了因語言二義性引起的干擾,定義良好,易于表達(dá),支持從需求分析開始的軟件開發(fā)的全過程,但是因為是通用的建模語言,它的概念大都來自面向?qū)ο螅皇莵碜阅硞€具體領(lǐng)域,所以生成的都還只是程序的框架,但是不同的領(lǐng)域需要不同的建模語言,所以需要為適合各個領(lǐng)域的建模語言分別開發(fā)建模工具,從而生成了元建模技術(shù)。
2 元建模技術(shù)過程
元建模是一種通過建立元模型來刻畫語言,并定義建模語言的一種活動,提供(通過配置或直接開發(fā))支持這種語言的建模工具。
元建模的過程:由專家通過通用建模工具生成元模型,這種模型用來制造某種語言(比如UML),又從建立好的元模型重新改造通用建模工具,使之能夠支持元模型開發(fā)的某種語言,再應(yīng)用到實際用途當(dāng)中。最近興起的另一種方式,不通過通用建模工具而是使用建模工具生成器,使生成的建模工具能直接支持開發(fā)的語言。迄今為止,應(yīng)用于元建模構(gòu)建的工具有很多。其中,比較有名的工具有Metaedit+、GME、DOME、EMF、GMF五種。下面給出這五種工具的優(yōu)缺點,Metaedit+有利于多建模方法的集成,缺點是集成模型中,無法在不同領(lǐng)域的對象之間建立關(guān)聯(lián),因為在元建模層上沒有定義相應(yīng)元模型元素之間的關(guān)系。GME,以位圖來表示建模元素,缺點是位圖與元素的屬性和表示法不能綁定。DOME,可以最大程度的復(fù)用已有的建模工具,可以用不同的建模工具建立系統(tǒng)的不同視圖,但需要增加一個元模型來刻畫系統(tǒng)的不同模塊只見的關(guān)系。而且這種方法尚不成熟,還有許多問題需要解決。其中包括關(guān)系模型、元模型、元模型轉(zhuǎn)換和代碼生成等。EMF,給用戶提供一個獨立的工具,有利于對建模工具的定制、修改和提高,但這種定制和提高在通用建模工具中是難以實現(xiàn)的。GMF,是EMF上的升級,提供表示法描述機(jī)制,GMF的表示描述還沒有比較直觀的GUI支持工具,而只能以樹狀結(jié)點的形式描述,遺憾的是當(dāng)前的所有元建模工具都還無法表示不同元素的表示法之間的復(fù)雜關(guān)系。
3 元模型
模型是對現(xiàn)實的抽象,或者是對這個抽象的描述,而元模型也是模型,它描述的對象是“模型中的元素,元素之間的關(guān)系,以及表示法”,也就是說元模型是創(chuàng)造富含語義的模型和所需構(gòu)造的元素并且精確定義了規(guī)則的模型。而元建模就是一種定義建模語言的活動,通過配置或者開發(fā)支持該建模語言的建模工具。就好比建樓房,有商場的模型,寫字樓的模型,教學(xué)樓的模型,它們都是獨立存在的,而元模型就是一個統(tǒng)一的模型,它既可以描述商場,寫字樓,也可以描述教學(xué)樓,食堂,它是一切樓模型的模型。
4 元元模型
元元模型是定義用于規(guī)定元模型的語言,形成元模型層次結(jié)構(gòu)的基礎(chǔ)。元元模型比它要描述的元模型要簡潔,可以定義幾個元模型。舉個例子來說明他們之間的關(guān)系,元元模型就相當(dāng)于古詩,元模型就相當(dāng)于律詩,模型相當(dāng)于七言律詩,越往上越是一個不斷抽象的過程,而元建模就是定義律詩的過程,押韻對仗平仄,是五律還是七律。
5 類圖
因為Uml是可視化的建模語言,有很多圖表表示法,而其中類圖用來表示具體語法。類圖是用來表示類與類之間的關(guān)系,而類是具有相同的結(jié)構(gòu),行為和關(guān)系的一組對象的描述符。比如哺乳類,靈長類。在計算機(jī)圖形中,類是由類名,屬性和操作組成的,其中屬性即為特性,描述該類包含的信息,操作即是方法,是類所提供的服務(wù)。
讀類圖:先看清有哪些類,看清類之間存在的關(guān)系(關(guān)聯(lián),聚合,組合,范化,依賴),再結(jié)合多重性來理解類圖的結(jié)構(gòu)特點以及各個屬性方法的含義。圖1是元模型的類圖。
由圖1可知,左邊是類的抽象,由右邊屬性和操作構(gòu)成,自身關(guān)聯(lián),也就是在自己的內(nèi)部有著一個自身的引用。類包容了屬性和操作,使之不能夠離開類而獨立存在。
6 元建模技術(shù)的應(yīng)用前景
Uml提供了一種profile擴(kuò)展機(jī)制(profile機(jī)制為uml添加一組新的語義通過通用機(jī)制完成)這組新的語義與uml模型元素結(jié)合就可以生成新的模型元素,新的模型元素是對某個應(yīng)用領(lǐng)域的擴(kuò)展,這樣就使得UML具有更強(qiáng)的廣泛性,可以支持更多的領(lǐng)域建模。同時profile擴(kuò)展機(jī)制在模型驅(qū)動方面具有很重要的作用,運用uml的profile機(jī)制能夠創(chuàng)建一個平臺無關(guān)性模型,再通過一定條件的映射規(guī)則可以將平臺無關(guān)型模型轉(zhuǎn)換為平臺相關(guān)型模型,最后直接將平臺相關(guān)型模型直接翻譯為代碼,這里的代碼不僅是一個系統(tǒng)的整體框架而且是實實在在能夠?qū)崿F(xiàn)具體功能的。這可以讓程序員省去了繁瑣,乏味的寫重復(fù)代碼,把主要的精力集中在模型的創(chuàng)作上來,在代碼的重用的問題上也提供了一個很好的解決辦法,直接采用模型重用省去了代碼重用相當(dāng)繁瑣的過程,為以后的系統(tǒng)創(chuàng)建開辟了一條新的道路。