第一章 引 言
本章主要介紹了本文研究的背景、相關理論與技術的基本概念以及本文的研究意義和主要工作,包括軟體開發目前面臨的問題,構件、構件組裝、mda、dsm、sa、sf等基本概念,mda的侷限性,dsm的先進性,以及構件組裝的研究現狀等,同時對本文的內容與組織結構做了詳細的說明。
社會經濟迅猛發展,推動資訊化建設程序加快,對軟體的需求也迅速增長,但目前軟體生產力卻較為低下,原因多種多樣。而通常將軟體開發所面臨的問題稱為軟體危機,它是指在軟體的開發和維護過程中所遇到的一系列嚴重問題。這些問題絕不僅僅是不能正常執行的軟體才具有的,實際上,幾乎所有的軟體都不同程度地存在這些問題。
概括地說,軟體開發目前面臨的問題主要包含下述兩方面:
(1)如何開發軟體,以滿足對軟體日益增長的需求;
(2)如何維護數量不斷膨脹的已有軟體。
問題(1),主要包括如何提高軟體開發效率以及產品質量等問題。
問題(2),主要包括如何兼顧遺留系統以及遺留系統治理等問題。
傳統的軟體開發不具備工業化生產能力,而工業化生產被認為是產業工程化、工業化的必由之路。分析傳統工業及計算機硬體產業成功的模式可以發現,這些工業的發展模式均是符合標準的零部件(構件)生產以及基於標準構件的產品生產(組裝)【
1】。軟體產業要發展並形成規模經濟,標準化的構件生產與組裝是關鍵因素。構件組裝(component composition)是提高軟體開發效率與產品質量的有效途徑。
近年來,構件組裝取得長足發展,但目前構件組裝的研究主要集中在軟體體系結構sa(software architecture)與構件組裝機制上,對於如何從高層的構件組裝模型產生完整的程式**尚沒有系統化的指導方法。
傳統的軟體開發是**型的,分析、設計與實現分開進行,在分析、設計階段制定詳細的方案以指導後期的實現,試圖減少和控制開發後期變更發生的可能,但在開發後期往往會變更分析、設計階段制定的詳細方案,而變更一旦產生,則需要重新制定或修改分析、設計方案,進而修改實現、回歸測試等,開發效率與產品質量都無法得到有效的保證。
這種傳統的、**型的軟體開發方法無法解決開發中經常發生變更的難題。
模型驅動架構mda(model driven architecture)通過解耦描述業務功能的平台無關模型pim(platformindependent model)與技術實現的平台相關模型psm(platform specific model),使得因技術變化而產生的對系統開發的影響減少,在一定程度上提高了開發效率,但mda在實際應用中存在諸多問題。
作為mda的核心技術之一,統一建模語言uml(unified modeling language),已逐漸成為軟體開發中不可缺少的分析、設計工具,但隨著應用的深入,作為一種通用的建模語言,uml已逐漸顯現出無法滿足特定領域的個性化建模問題,如工作流、資料倉儲、軟體過程、工藝流程等領域都需要專門的建模工具,在這些特定領域,相比較使用uml,專門的建模工具由於使用領域專有概念,其效率要高得多。
物件導向的軟體開發方法的成功應用表明,在軟體開發的各個階段應盡量使用統一概念與描述方法,減少開發階段間的語義斷層,實現各開發階段的平滑過渡。但從uml模型到程式**的轉換存在嚴重斷層,因為uml通常只生成框架**,需要開發人員手動新增具體的業務處理**,由於這個階段的開發人員通常是水平不高的程式設計師,很難將uml模型正確的翻譯成程式**,造成知識在開發階段間傳遞轉換時丟失,更導致uml模型與**的「兩邊維護」,即uml模型與程式**分別維護並保持同步,嚴重影響開發效率以及最終產品的質量。
上述均表明,通用建模語言在特定領域建模及**生成方面都存在侷限性。
近年來,針對mda存在的問題,出現了特定領域建模dsm(domain-specific modeling),並取得了一定的發展。dsm通過特定領域構件庫、特定領域語言dsl(domain-specific language)及dsl編輯器以及特定領域**生成器自動生成100%的程式**,大大提高了軟體開發效率與產品質量。
dsm生成程式**的快速性使得傳統的**型開發方法轉變為敏捷的、適應型開發方法,使用者在開發的分析、設計階段即可看到系統外觀並可初步試用系統功能,從而有助於獲取並實現使用者的真正需求,降低開發中的變更發生的機率。
抽象程度決定著軟體生產力【
2】,但單獨的建模語言對提高軟體生產力的幫助並不明顯。dsm強調生成100%的程式**,期望通過積累形成新的程式語言,從根本上提高軟體生產力。
dsl(模型)、dsl編輯器(建模工具)、**生成(**模板)分別通過符號化、圖形化、模板化三個過程實現了抽象程度的提高。
對於構件組裝來說,由於**級構件無法直接在介面處顯式定義組裝【
4】,所以構件組裝模型是實現構件組裝顯式定義的輔助、也是必需的手段。
構件組裝與dsm存在必然且完美的結合。借助dsm可較好的解決構件組裝目前面臨的「如何從高層的構件組裝模型產生完整的程式**」的問題。
軟體架構sa(software architecture)為構件組裝提供了一種自頂向下的系統化指導方法,但它同時還提供**模板製作的基礎,樣例**(sample code)。要實現生成100%的程式**,實現從高層的構件組裝模型產生完整的程式**,必須參照完整的樣例**製作**模板,即對樣例**整體模板化。
分形理論(fractal theory)是研究非線性科學的前沿理論之一,是研究事物複雜性、從有限認識無限的特殊規律的學科,它反映了自然界中廣泛存在的一類事物的基本屬性:區域性與區域性、區域性與整體在形態、功能、資訊、時間與空間等方面具有統計意義上的自相似性。
構件是系統構成成分的標準形態,組裝是構件演化的原則與方式,以及自底向上的系統構建方法。組裝產生的構件又會被作為新的構件進行新的組裝,所以,構件組裝中存在著分形元,即具備組裝特性的構件。構件在不同粒度、不同層次上均具有同樣形態,即組裝特性。
分形理論可作為構件組裝的數學基礎。
構件組裝是提高軟體開發效率與產品質量的有效途徑,但對於如何從高層的構件組裝模型產生完整的程式**尚沒有系統化的指導方法。mda使得因技術變化而產生的對系統開發的影響一定程度上減少,但在特定領域建模以及**生成方面存在侷限性。
本文通過研究發現,模型是實現構件組裝顯式定義的輔助、也是必需的手段,而dsm強調生成100%的程式**,構件組裝與dsm存在必然且完美的結合。借助dsm可較好的解決構件組裝目前面臨的「如何從高層的構件組裝模型產生完整的程式**」的問題,從而使得構件組裝以及特定領域建模等相關技術在實際的軟體開發中可以得到順利運用,產生實效。
(1)提供了一種轉變傳統的、**型的軟體開發方法為敏捷的、適應型的軟體開發方法的相關理論以及技術上的探索,並提出了相關實現方法。深入研究了構件組裝相關理論及其數學基礎、soa相關技術標準、osgi相關技術標準、模型驅動相關技術標準、**生成相關概念與技術以及領域工程相關理論。
(2)重點分析並揭示了構件組裝的本質,以及構件組裝的數學基礎,分形理論,並提出了一種普適性的構件組裝機制,建立起了構件與連線件的元模型。
(3)提出了借助dsm來解決構件組裝目前面臨的「如何從高層的構件組裝模型產生完整的程式**」的問題,並重點總結、歸納了dsm的整體過程。
(4)提出以樣例**整體模板化來實現dsm生成100%的程式**的方法,提出基於sa與sf建立覆蓋不同業務型別的樣例**的方法與原則,提出根據特定領域元模型將樣例**製作成**模板的方法與原則。
(5)建立起乙個支援構件組裝的開發環境,mywebfw。
第一章 引言
本章主要介紹了本文研究的背景、相關理論與技術的基本概念以及本文的研究意義和主要工作,包括軟體開發目前面臨的問題,構件、構件組裝、mda、dsm、sa、sf等基本概念,mda的侷限性,dsm的先進性,以及構件組裝的研究現狀等,同時對本文的內容與組織結構做了詳細的說明。
第二章 相關理論與技術
本章主要介紹本文研究的相關理論與技術,包括構件組裝相關理論、soa相關技術標準、osgi相關技術標準、模型驅動相關技術標準、**生成相關概念與技術以及領域工程相關理論,這些理論與技術構成了本文研究的基礎。
第三章 特定領域建模與**生成
本章首先歸納總結了建立特定領域元模型及其實現的方法與原則,介紹了使用gmf通過特定領域元模型快速定製生成特定領域建模工具的過程,並提出基於sa與sf建立覆蓋不同業務型別的樣例**的方法與原則,然後總結歸納了特定領域建模與**生成的整體過程,最後提出根據特定領域元模型將樣例**製作成**模板的方法與原則,並介紹了通用**生成引擎的組成部分以及**生成的過程。本章提出的特定領域建模與**生成的方法,可生成100%的程式**,是提高軟體開發效率與產品質量的有效途徑。
第四章 模型驅動的構件組裝
本章提出一種普適性的構件組裝機制,建立起構件與連線件元模型,並對它們的性質進行了總結歸納,在此基礎上建立起構件與連線件元模型的實現。基於dsm的構件組裝,實現了從高層的構件組裝建模到程式**的完整對映。
第五章 支援構件組裝的開發環境
本章以上述相關理論與技術研究為基礎,實現了乙個支援構件組裝的開發環境,mywebfw,並詳細說明了mywebfw實現的指導思想、環境構成、關鍵技術以及開發流程等內容。mywebfw是基於dsm的支援構件組裝的開發環境,在實際應用中,可明顯的提高軟體開發效率與產品質量。
第六章 總結與展望
構件組裝 模型驅動的構件組裝
第四章 模型驅動的構件組裝 本章提出一種普適性的構件組裝機制,建立起構件與連線件元模型,並對它們的性質進行了總結歸納,在此基礎上建立起構件與連線件元模型的實現。基於dsm的構件組裝,實現了從高層的構件組裝建模到程式 的完整對映。構件通常分為原子構件與組裝產生的復合構件,但本文使用dsm快速生成完整的...
S O A 構件組裝
soa 面向不同的終端使用者 系統異構 資料異質 分布式應用。包含有 基礎設施 架構 流程 事務流程模型 服務生命週期 模型驅動軟體開發 管理。因此,soa並不是一種具體的某種技術而是一種范型 一種系統架構范型。跟oop之類的不是乙個層次的概念。oop是一種程式設計范型。構件組裝技術 軟體開發中的構...
社會軟體構件
社會性軟體是web2.0的寵兒,許多社會性軟體憑藉其獨特的特色脫穎而出,由於不同的社會性軟體其功能和特點的不同,使得人們對其定義也有較大的差別。很顯然,造成這種定義差別的原因,主要是因為人們在對其定義時只看到社會性軟體的某些方面或者只是依據某些社會性軟體的特定和功能而定義的。要對社會性軟體進行準確的...