構件組裝-引言

第一章 引 言

本章主要介紹了本文研究的背景、相關理論與技術的基本概念以及本文的研究意義和主要工作,包括軟件開發目前面臨的問題,構件、構件組裝、MDA、DSM、SA、SF等基本概念,MDA的侷限性,DSM的先進性,以及構件組裝的研究現狀等,同時對本文的內容與組織結構做了詳細的說明。

1.1軟件開發目前面臨的問題

社會經濟迅猛發展,推動信息化建設進程加快,對軟件的需求也迅速增長,但目前軟件生產力卻較爲低下,原因多種多樣。而通常將軟件開發所面臨的問題稱爲軟件危機,它是指在軟件的開發和維護過程中所遇到的一系列嚴重問題。這些問題絕不僅僅是不能正常運行的軟件才具有的,實際上,幾乎所有的軟件都不同程度地存在這些問題。

概括地說,軟件開發目前面臨的問題主要包含下述兩方面:

(1)如何開發軟件,以滿足對軟件日益增長的需求;

(2)如何維護數量不斷膨脹的已有軟件。

問題(1),主要包括如何提高軟件開發效率以及產品質量等問題。

問題(2),主要包括如何兼顧遺留系統以及遺留系統治理等問題。

1.2傳統軟件開發的生產能力

傳統的軟件開發不具備工業化生產能力,而工業化生產被認爲是產業工程化、工業化的必由之路。分析傳統工業及計算機硬件產業成功的模式可以發現,這些工業的發展模式均是符合標準的零部件(構件)生產以及基於標準構件的產品生產(組裝)1。軟件產業要發展並形成規模經濟,標準化的構件生產與組裝是關鍵因素。構件組裝(Component Composition)是提高軟件開發效率與產品質量的有效途徑。

近年來,構件組裝取得長足發展,但目前構件組裝的研究主要集中在軟件體系結構SA(Software Architecture)與構件組裝機制上,對於如何從高層的構件組裝模型產生完整的程序代碼尚沒有系統化的指導方法。

1.3傳統軟件開發是預測型的

傳統的軟件開發是預測型的,分析、設計與實現分開進行,在分析、設計階段制定詳細的方案以指導後期的實現,試圖減少和控制開發後期變更發生的可能,但在開發後期往往會變更分析、設計階段制定的詳細方案,而變更一旦產生,則需要重新制定或修改分析、設計方案,進而修改實現、迴歸測試等,開發效率與產品質量都無法得到有效的保證。

這種傳統的、預測型的軟件開發方法無法解決開發中經常發生變更的難題。

1.4 MDA存在的問題

模型驅動架構MDA(Model Driven Architecture)通過解耦描述業務功能的平臺無關模型PIM(PlatformIndependent Model)與技術實現的平臺相關模型PSM(Platform Specific Model),使得因技術變化而產生的對系統開發的影響減少,在一定程度上提高了開發效率,但MDA在實際應用中存在諸多問題。

1.4.1 UML特定領域建模的侷限性

作爲MDA的核心技術之一,統一建模語言UML(Unified Modeling Language),已逐漸成爲軟件開發中不可缺少的分析、設計工具,但隨着應用的深入,作爲一種通用的建模語言,UML已逐漸顯現出無法滿足特定領域的個性化建模問題,如工作流、數據倉庫、軟件過程、工藝流程等領域都需要專門的建模工具,在這些特定領域,相比較使用UML,專門的建模工具由於使用領域專有概念,其效率要高得多。

1.4.2 UML模型與代碼“兩邊維護”

面向對象的軟件開發方法的成功應用表明,在軟件開發的各個階段應儘量使用統一概念與描述方法,減少開發階段間的語義斷層,實現各開發階段的平滑過渡。但從UML模型到程序代碼的轉換存在嚴重斷層,因爲UML通常只生成框架代碼,需要開發人員手動添加具體的業務處理代碼,由於這個階段的開發人員通常是水平不高的程序員,很難將UML模型正確的翻譯成程序代碼,造成知識在開發階段間傳遞轉換時丟失,更導致UML模型與代碼的“兩邊維護”,即UML模型與程序代碼分別維護並保持同步,嚴重影響開發效率以及最終產品的質量。

上述均表明,通用建模語言在特定領域建模及代碼生成方面都存在侷限性。

1.5 DSM由MDA發展而來

近年來,針對MDA存在的問題,出現了特定領域建模DSM(Domain-Specific Modeling),並取得了一定的發展。DSM通過特定領域構件庫、特定領域語言DSL(Domain-Specific Language)及DSL編輯器以及特定領域代碼生成器自動生成100%的程序代碼,大大提高了軟件開發效率與產品質量。

DSM生成程序代碼的快速性使得傳統的預測型開發方法轉變爲敏捷的、適應型開發方法,用戶在開發的分析、設計階段即可看到系統外觀並可初步試用系統功能,從而有助於獲取並實現用戶的真正需求,降低開發中的變更發生的機率。

1.6構件組裝與DSM的結合

抽象程度決定着軟件生產力2,但單獨的建模語言對提高軟件生產力的幫助並不明顯。DSM強調生成100%的程序代碼,期望通過積累形成新的程序語言,從根本上提高軟件生產力。

DSL(模型)、DSL編輯器(建模工具)、代碼生成(代碼模板)分別通過符號化、圖形化、模板化三個過程實現了抽象程度的提高。

對於構件組裝來說,由於代碼級構件無法直接在接口處顯式定義組裝4,所以構件組裝模型是實現構件組裝顯式定義的輔助、也是必需的手段。

構件組裝與DSM存在必然且完美的結合。藉助DSM可較好的解決構件組裝目前面臨的“如何從高層的構件組裝模型產生完整的程序代碼”的問題。

1.7構件組裝與SA及SF

軟件架構SA(Software Architecture)爲構件組裝提供了一種自頂向下的系統化指導方法,但它同時還提供代碼模板製作的基礎,樣例代碼(Sample Code)。要實現生成100%的程序代碼,實現從高層的構件組裝模型產生完整的程序代碼,必須參照完整的樣例代碼製作代碼模板,即對樣例代碼整體模板化。

樣例代碼是面向業務、以SA爲指導、以軟件框架SF(Software Framework)爲基礎建立的完整可運行的程序代碼。SF通常指系統底層API(Application Programming Interface)。

1.8構件組裝與分形理論

分形理論(Fractal Theory)是研究非線性科學的前沿理論之一,是研究事物複雜性、從有限認識無限的特殊規律的學科,它反映了自然界中廣泛存在的一類事物的基本屬性:局部與局部、局部與整體在形態、功能、信息、時間與空間等方面具有統計意義上的自相似性。

構件是系統構成成分的標準形態,組裝是構件演化的原則與方式,以及自底向上的系統構建方法。組裝產生的構件又會被作爲新的構件進行新的組裝,所以,構件組裝中存在着分形元,即具備組裝特性的構件。構件在不同粒度、不同層次上均具有同樣形態,即組裝特性。

分形理論可作爲構件組裝的數學基礎。

1.9本文的研究意義

構件組裝是提高軟件開發效率與產品質量的有效途徑,但對於如何從高層的構件組裝模型產生完整的程序代碼尚沒有系統化的指導方法。MDA使得因技術變化而產生的對系統開發的影響一定程度上減少,但在特定領域建模以及代碼生成方面存在侷限性。

本文通過研究發現,模型是實現構件組裝顯式定義的輔助、也是必需的手段,而DSM強調生成100%的程序代碼,構件組裝與DSM存在必然且完美的結合。藉助DSM可較好的解決構件組裝目前面臨的“如何從高層的構件組裝模型產生完整的程序代碼”的問題,從而使得構件組裝以及特定領域建模等相關技術在實際的軟件開發中可以得到順利運用,產生實效。

1.10本文的主要工作

本文的主要工作如下所示:

(1)提供了一種轉變傳統的、預測型的軟件開發方法爲敏捷的、適應型的軟件開發方法的相關理論以及技術上的探索,並提出了相關實現方法。深入研究了構件組裝相關理論及其數學基礎、SOA相關技術標準、OSGi相關技術標準、模型驅動相關技術標準、代碼生成相關概念與技術以及領域工程相關理論。

(2)重點分析並揭示了構件組裝的本質,以及構件組裝的數學基礎,分形理論,並提出了一種普適性的構件組裝機制,建立起了構件與連接件的元模型。

(3)提出了藉助DSM來解決構件組裝目前面臨的“如何從高層的構件組裝模型產生完整的程序代碼”的問題,並重點總結、歸納了DSM的整體過程。

(4)提出以樣例代碼整體模板化來實現DSM生成100%的程序代碼的方法,提出基於SA與SF創建覆蓋不同業務類型的樣例代碼的方法與原則,提出根據特定領域元模型將樣例代碼製作成代碼模板的方法與原則。

(5)建立起一個支持構件組裝的開發環境,MyWebFw。

1.11本文的組織結構

本文的內容共分爲六章,組織結構以及各章內容安排如下:

第一章  引言

本章主要介紹了本文研究的背景、相關理論與技術的基本概念以及本文的研究意義和主要工作,包括軟件開發目前面臨的問題,構件、構件組裝、MDA、DSM、SA、SF等基本概念,MDA的侷限性,DSM的先進性,以及構件組裝的研究現狀等,同時對本文的內容與組織結構做了詳細的說明。

第二章  相關理論與技術

本章主要介紹本文研究的相關理論與技術,包括構件組裝相關理論、SOA相關技術標準、OSGi相關技術標準、模型驅動相關技術標準、代碼生成相關概念與技術以及領域工程相關理論,這些理論與技術構成了本文研究的基礎。

第三章  特定領域建模與代碼生成

本章首先歸納總結了創建特定領域元模型及其實現的方法與原則,介紹了使用GMF通過特定領域元模型快速定製生成特定領域建模工具的過程,並提出基於SA與SF創建覆蓋不同業務類型的樣例代碼的方法與原則,然後總結歸納了特定領域建模與代碼生成的整體過程,最後提出根據特定領域元模型將樣例代碼製作成代碼模板的方法與原則,並介紹了通用代碼生成引擎的組成部分以及代碼生成的過程。本章提出的特定領域建模與代碼生成的方法,可生成100%的程序代碼,是提高軟件開發效率與產品質量的有效途徑。

第四章  模型驅動的構件組裝

本章提出一種普適性的構件組裝機制,建立起構件與連接件元模型,並對它們的性質進行了總結歸納,在此基礎上建立起構件與連接件元模型的實現。基於DSM的構件組裝,實現了從高層的構件組裝建模到程序代碼的完整映射。

第五章  支持構件組裝的開發環境

本章以上述相關理論與技術研究爲基礎,實現了一個支持構件組裝的開發環境,MyWebFw,並詳細說明了MyWebFw實現的指導思想、環境構成、關鍵技術以及開發流程等內容。MyWebFw是基於DSM的支持構件組裝的開發環境,在實際應用中,可明顯的提高軟件開發效率與產品質量。

第六章  總結與展望


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章