周艷萍
(云南經濟管理職業學院,云南昆明,650106)
模型驅動軟件開發就是指首先要建立一個模型,在模型的可靠性、安全性、健壯性得到認可后,再進行軟件代碼或框架的開發與編寫。如果在開發與編寫軟件代碼時發現系統方面存在很多不完善或缺陷,再反回到模型建立初期,采用迭代或增量,進行模型的修改與重新定位,這就是基于正反工程的模型驅動。一般來講,模型驅動下軟件開發首先要進行建模,也就是建立相應的模型。當前計算機軟件開發領域最常使用的建模工具有RationaRose和PowerDesigner兩種,二者都十分適用于各種軟件模型的建立。
RationaRose由Rational公司研制,它一種被廣泛應用于軟件建模與公司級水平軟件應用組件構造的工具,它主要三個特點:第一,面向對象;第二,采用統一的建模語言;第三,它的建模過程是可視化的,便于模型的開發與建立。RationaRose的兩大特性使其在建模領域內得到了最廣泛的推廣與應用。第一個特性為它提供了靈活的反復式發展,既進化式發展,工程師在利用它創建新的應用時,可以將上一個反復的輸出轉變為反復的輸入,任何一個用戶都可以整個工程是如何實現并完成的;第二特性就是具有來回旅程工程的能力,就是它可以通過回溯和模型的升級其余部門的代碼使代碼的一致性得到保證。使用RationaRose建模具有如下特點:
①模型與代碼實現統一;
②適應多種開發語言;
③適用于團隊協作開發;
④適用于模型的Internet發布;
RationaRose可以為任何一個建模任務提供全面的、可靠的、靈活的實現方法與途徑。通常來講,在一個軟件開發團隊中,會有項目負責人、系統分析工程師、模塊編程人員等多種系統開發人員,這些人可以不局限于軟件系統的開發順序影響,在軟件建設過程中,可以同時將系統的體系及功能轉換為代碼,這種并行工作方式不僅節約了時間,還節省了系統開發成本,整個架構的可視化特性使上述過程更易于實現了。
根據RationaRose在不同的架構視圖中有不同的應用,其模型圖可以分為9種類別,具體分類如表1所示。

表1 Rose的模型圖
利用RationaRose進行建模主要經歷以下幾個步驟:
① 業務需求建模:在這個階段主要進行業務角色的定位,對于用例進行分析,完成用例圖的建立,通過對業務進行深入的分析,將業務執行過程中系統程序應遵守的業務規則制定出來,建立一個關系清楚、結構合理的用例結構圖,此用例結構圖通常由活動圖來進行表示,還要完成泳道的劃分,將對象流用規范的標志進行識別記錄,完成業務關系實體的分析與提取,最終實現業務對像的建立。
②系統需求建模階段:系統的需求有哪些,這些需求有哪些深層次的要求,系統的里面包含哪些角色與用例,這些分析結果都要通過用例來描述,并且用例的諸多影響關系中還有擴展、包含、泛化等,此階段還應完成用例使用規則的制定,文檔標準的制定。
③系統分析階段:使用用例完成概念模型的建立,伴隨著系統分析的深入,進一步將模型細化,將模型的外圍概念進行擴展,結合系統結構建立功能與函數調用的順序圖,還要建立每個用例的狀態圖。
④分析模型的建立:完成系統的分層,進行系統架構分析與建設,將分析類劃分為多種實體類、控制類、邊界類,完成分析類圖的建立,并且將這些分析類圖進行分包。
⑤設計階段:在分析模型的基礎上實現真實用例的建立,包括對象圖的建立,每一個類的職責需要重新進行定義,模型之間的關系需要理順,確定表達系統的行為。
⑥設計模型的建立:要模型設計完成后,將獨立的幾個模型組合到一起,組成一個大的模型。
PowerDesigne是由Sybase公司出品的建模工具,它可以高效的完成管理信息系統的分析與設計工作,并最終實現整個數據庫模型的建立。PowerDesigne最早是開發數據庫模型的,但是發展到后期,由于業務發展的需要,也嘗試著其他模型的研發。僅管PowerDesigne主要用于數據庫結構的建模,還可以與計算機軟件技術中的新興理論與方法相結合,完成業務流程模型的建立,將統一建模語言UML和數據模型實現無縫集成。
PowerDesigne的模型劃分具體情況如表2所示:
PowerDesigner建模主要有三種途徑:
①首先進行面向對象分析;第二步依次建立各種類圖;第三步,將類圖轉換成CDM、PDM。
②首先進行結構化分析;第二步產生時序圖、用例圖等;第三步,將CDM、PDM轉換為類圖;第四步,將UML補充完。
③將前兩種途徑結合到一起

表2 PowerDesigne模型種類
上面探討了RationalRose和PowerDesigner兩種常用建模工具,二者既有區別又有聯系,在實際的軟件開發過程中,采用哪一種建模工具,可以根據用戶要求與實際的系統環境來確定。本文研究的是基于反向工程的模型的開發。
采用PowerDesigner進行軟件系統的建模,采用的是上述中的第2條途徑,既先完成結構分析,建立時序圖等,然后將其轉換為類圖,最后進行對細節部位進行進一步的修改。
整個系統模型建立主要經過9個環節:第一步是需求模型的建立;第二步是概念模型的建立;第三步是面向對象模型的建立;第四步是源代碼的編寫;第五步是編碼實現與測試完成;第六步是利用反向工程再次進行面向對象模型的建立;第七步是反推概念模型;第八步是進行終極審核;第九步是實現系統的建立。
系統的功能與架構進行分析,此階段的主要任務是完成功能的類型的確定,將完成模型的分析工作;建立需求模型后,就是進行概念模型的建立,對系統中的概念進一步細化與完善,保證投入使用后的系統可以為用戶所有的需求功能;面向對象模型建立完成后,要對模型的性能進行測試,確定模型的安全可靠性,如果發現存在不完善與有缺陷的地方,應進行修改與細化;利用正向工程可以產生工程的框架的源代碼;對源代碼框架做完善處理,然后進行測試。再利用反向工程在框架下實現模型的建立,對需要進行修改的內容再添加到模型中,既反向產生面向對象的模型,再通過PowerDesigner轉換為概念模型;最后一步是進行模型審核,如果建設完成的模型達到了設計標準,與最初的預想設計是相符的,表明其是成功的,可以運用到軟件開發中,如果健壯性或安全性等沒有達到設計要求,就要再次進行修訂。
上面提到的PowerDesigner最早就是進行數據庫模型開發的,后期又在數據庫模型的基礎上進行系統模型的研究。系統模型的建立與數據庫模型的建立大同小異,主要區別就是于概念模型建成后,系統模型建設流程中,接下來是概念模型與面向對象模型的建立,而數據庫模型的建設流程則是在概念模型建立完成后,接下來是建立物理模型與生成SQL腳本。最初的概念模型的建立,發現問題時進行了迭代與增量,以及系統建設后期的測試等基本上都是相同的。
如果是一個團隊共同開發軟件系統的情況下,采用模型驅動的方式進行系統分析,可以簡化團隊內工作人員的交流,使系統的重要特性的理解更能保持一致,不發生誤解,并且,建設完成的系統易于實現升級與維護。
采用正反工程進行系統模型與數據庫模型建設時,進行的迭代可以形成一個獨立的可運行不系統,同時,每一次增量也形成了一個獨立的小系統。
模型驅動軟件開發模式是計算機技術發展的產物,它也是軟件工程技術發展的結果。將模型與數據分開處理,可以讓軟件系統的開發工作并行開展,這樣做不僅提高了工作效率,還簡化了系統開發流程。正反向工程更是使模型的開發過程中,不必一次性完成,為發現問題時提出進行補救的渠道,使系統的一致性不被破壞。建模軟件除了上述兩種常用的外,還有其他一些建模工具,不同的建模工具有細節要求上略有不同,但是大體框架上還是十分類似的。新技術推動新產業的發展,因此,建模新技術的出現也可以能模型驅動軟件系統開發模式提供新的活力與動力。
[1]宋薇.模型驅動開發方法在ATP軟件開發中的應用研究[J].硅谷.2013(14)
[2]王文全 宋科璞.王勇.謝衛.基于模型驅動的機載嵌入式軟件應用[J].計算機技術與發展.2013(8)