馬佳佳 郭曉軍
(天津職業(yè)技術(shù)師范大學(xué),天津 300222)
隨著現(xiàn)代信息技術(shù)的迅猛發(fā)展,利用計算機技術(shù)對信息進行規(guī)范化管理,己經(jīng)成為企業(yè)發(fā)展必不可少的需求。面對一系列新的業(yè)務(wù)需求和新的技術(shù)的出現(xiàn),如何采用高效,靈活的技術(shù)來適應(yīng)這些變化,是一個迫切需要解決的問題。
軟件系統(tǒng)和軟件產(chǎn)品開發(fā)一般包括:需求分析、原形設(shè)計、軟件編程、應(yīng)用測試、應(yīng)用維護等過程。其中,軟件編程、應(yīng)用維護的開發(fā)效率低與成本高一直是困擾軟件發(fā)展的技術(shù)瓶頸。IT項目實踐已證明,基于平臺化的軟件復(fù)用可提高軟件開發(fā)效率,縮短開發(fā)周期,降低開發(fā)成本,并改善軟件質(zhì)量。而模型驅(qū)動應(yīng)用開發(fā)平臺工具(MDAPT),正是通過建立面向業(yè)務(wù)總線接口的統(tǒng)一軟件架構(gòu)平臺和基于平臺的業(yè)務(wù)模型驅(qū)動生成引擎,實現(xiàn)了基于業(yè)務(wù)設(shè)計模型的無需進行程序編碼的業(yè)務(wù)應(yīng)用平臺及工具系統(tǒng)。從而徹底改變了軟件系統(tǒng)的開發(fā)方式、效率與成本,研究成果在企業(yè)信息化、政務(wù)信息化領(lǐng)域、軟件工程領(lǐng)域有廣泛應(yīng)用前景,并將取得明顯的經(jīng)濟效益。
在模型驅(qū)動中,模型是利用某種工具對同類事物或其他事物的表達方式,從建模的觀點抓住事物的主要方面忽略次要方面,而軟件系統(tǒng)就是用建模語言來表達的。模型可以分為3個層次的模塊,各模型間通過模型映射機制相互映射,以保證模型的可追溯性(圖1)。
圖1 MDA 體系結(jié)構(gòu)
(1)計算無關(guān)模型(CIM:Computational Independent Model):描述的是業(yè)務(wù)知識和業(yè)務(wù)過程,從業(yè)務(wù)角度描述這個系統(tǒng)要完成的工作;不涉及如何用軟件來實現(xiàn)業(yè)務(wù)。
(2)平臺無關(guān)模型(PIM:platform independent model):描述的是如何用軟件系統(tǒng)來實現(xiàn)業(yè)務(wù)過程與軟件系統(tǒng)的一些技術(shù)細節(jié)無關(guān)。
(3)平臺相關(guān)模型(ISM:implementationspeciifcmodel):描述某種特定技術(shù)對軟件系統(tǒng)功能的實現(xiàn),各模型之間通過映射機制相互映射,保證了模型的可追溯性。
(4)實現(xiàn)相關(guān)模型(ISM:implement ation speciifcmodel):通過編程技術(shù)來實現(xiàn)系統(tǒng)。
MDA 軟件開發(fā)與傳統(tǒng)的軟件開發(fā)有著本質(zhì)的不同(圖2),MDA 以生命周期以建模行為驅(qū)動,以模型的創(chuàng)建和變換展開。
圖2 傳統(tǒng)開發(fā)方式與MDA 開發(fā)方式對比
總得來說,MDA 的開發(fā)生命周期與傳統(tǒng)的開發(fā)生命周期沒有什么不同,他們的開發(fā)階段相同,但是各個階段的設(shè)計工作卻是不相同的,MDA 的重點是系統(tǒng)的建模,關(guān)鍵是在使用MDA 方法之后,關(guān)注的焦點就會轉(zhuǎn)移到更高的層次上:先是PSM,然后再轉(zhuǎn)移到PIM 上。
模型驅(qū)動架構(gòu)(圖3)是一種獨立于特定平臺和軟件供應(yīng)商的軟件體系結(jié)構(gòu)設(shè)計和開發(fā)方法,它適用于設(shè)計、部署、集成等軟件開發(fā)的整個生命周期。MDA 以一種全新的方式將IT技術(shù)的一系列新的趨勢性技術(shù)整合到一起。
圖3 模型驅(qū)動系統(tǒng)架構(gòu)
模型驅(qū)動開發(fā)系統(tǒng)所具有的功能:
(一)可運行的設(shè)計模型
(1)通過對象模型管理和展現(xiàn)層模型定義,實現(xiàn)業(yè)務(wù)對象的維護。(2)通過MDA 系統(tǒng)定義設(shè)計模型,數(shù)據(jù)庫表可以自動創(chuàng)建,這樣就便于維護,同時方便擴展維護邏輯及其他功能。(3)業(yè)務(wù)對象的操作可以通過動態(tài)菜單直接連接在系統(tǒng)菜單上。(4)支持遺留系統(tǒng)。系統(tǒng)有可以在一個數(shù)據(jù)庫表上生成對象的功能,因此以前開發(fā)的C/S 系統(tǒng)可以很容易地轉(zhuǎn)換為J2EE 平臺上的應(yīng)用。
(二)對象模型管理
(1)對建立UML 或其他建模工具的設(shè)計對象模型進行詳細的描述。(2)可定義1-1、1-n 的對象關(guān)系模型。(3)實現(xiàn)對象與數(shù)據(jù)庫兩者之間的映射。對象可以映射到數(shù)據(jù)庫表中,而對象屬性則可以映射到表中的某個字段。
(三)展現(xiàn)層模型定義
(1)以窗口模式界面管理模型,一個基本的窗口可以完成對對象的增,刪,查,改等基本的維護。(2)一個對象模型可以有多個窗口,每個窗口可以保持多個關(guān)聯(lián)對象,而每個對象都可以在不同的TAB 上面顯示出來。(3)實現(xiàn)布局的管理,包括Tab 和對象屬性布局。
(四)運行模型的同步
業(yè)務(wù)對象和運行系統(tǒng)將元模型描述同步,實時反映對業(yè)務(wù)對象模型的修改。
(五)實現(xiàn)通用幫助的自動化
(1)單表幫助。(2)帶有過濾條件及有數(shù)據(jù)權(quán)限的幫助。(3)多表幫助:從部門到人員,面面俱到。(4)彈出幫助、下拉框幫助。(5)結(jié)合元模型參考類型元素對實現(xiàn)復(fù)雜的界面有幫助。(6)個性化的界面組織。
(六)對象之間關(guān)聯(lián)關(guān)系維護
(1)關(guān)系注冊。(2)實現(xiàn)級聯(lián)刪除。(3)刪除時的邏輯檢查。
(七)系統(tǒng)和對象的擴展屬性以及對象自定字段的擴展,不再需要程序來完成
通過上述功能的實現(xiàn),相對于一些簡單的內(nèi)容,就不再需要程序員進行代碼的編寫,而由用戶根據(jù)自己的實際需要,開發(fā)相應(yīng)的功能。而對于特殊的業(yè)務(wù)邏輯則可以通過擴展的接口進行掛接,實現(xiàn)真正意義上的模型驅(qū)動開發(fā)。
解決傳統(tǒng)軟件開發(fā)方法中存在的需求變更適應(yīng)性差、維護困難、開發(fā)效率低、輕便性差等問題,從而提高了軟件質(zhì)量,降低了軟件開發(fā)成本,延長了軟件生命周期。
模型驅(qū)動實現(xiàn)應(yīng)用系統(tǒng)帶來的好處是顯而易見的,如果將其應(yīng)用在各種行業(yè)的業(yè)務(wù)模式上,它帶來的作用也會更大;如果引入工作流模式,并將其推廣到各種行業(yè)的系統(tǒng)定義平臺,這樣各行業(yè)專家可以通過可視化的界面來制定本行業(yè)的業(yè)務(wù)流程模型及各種規(guī)則模型,然后通過模型驅(qū)動實現(xiàn)系統(tǒng)的構(gòu)建,并及時更新和補充相關(guān)業(yè)務(wù)系統(tǒng)。
[1]郭曉軍,王太勇,秦旭達,王成恩,李海越.基于J2EE的成套電器企業(yè)集成平臺框架與應(yīng)用系統(tǒng)的研究.計算機集成制造系統(tǒng).Vo1.11 NO.7,Ju1.2 0 0 5
[2]譚云杰,Thinking in UMl,北京:中國水利水電出版社,2009.
[3]王永濤,劉勇.基于MDA 的模型轉(zhuǎn)換研究與應(yīng)用[J].計算機工程.2011(16)
[4]鄧建.業(yè)務(wù)過程軟件的模型驅(qū)動開發(fā)技術(shù)研究[D].電子科技大學(xué).2012
[5]吳明暉.面向服務(wù)的語義模型驅(qū)動企業(yè)應(yīng)用軟件開發(fā)方法及關(guān)鍵技術(shù)研究[D].浙江大學(xué).2011
[6]張麗婷.模型驅(qū)動架構(gòu)MDA 開發(fā)模式的研究與實現(xiàn)[D].北京交通大學(xué).2008