孔祥艷
(中國電子科技集團公司第五十四研究所,河北石家莊050081)
當前,企業信息系統需求呈井噴狀態,軟件規模越來越大,而人們對于軟件開發周期的要求卻越來越短。使用傳統的信息系統開發方法,大量的重復勞動導致開發效率的降低。而使用構件化技術開發信息系統不僅能顯著提高軟件的質量,降低開發人員的勞動強度,而且能隨著系統業務流程的變化而變化。因此,基于構件技術開發企業信息化系統方法受到了業內人士的普遍關注。
軟件構件是指具有相對獨立功能和可復用價值的軟件成分,是粗粒度、相對獨立、可替換的軟件系統組成部分,能夠完成明晰功能的軟件實體,可獨立部署并易于第三方組裝。它的使用同開發、生產無關,構件其實就是對一組類的組合進行封裝,并完成1個或多個功能,為用戶提供多個接口。整個構件隱藏了具體的實現,只通過接口對外提供服務。
信息系統是穩定性和可變性相統一的實體。其穩定性特征表明,大部分信息系統在信息模型和功能上有類似之處,盡管不同領域對信息系統的功能需求各異,但在一定范圍內系統所處理的信息結構是相對穩定的,變化的只是其內容;同時,信息系統所涉及到的業務種類有限,處理過程也具有相似性,不同的只是其運作和控制方式上的差異。正是基于信息系統的穩定性和基礎業務的相似性,從而可以將相同的操作進行抽象,將實體信息及其處理處理過程封裝在不同的構件中。
基于構件的信息系統開發與傳統開發方式不同之處在于分析、設計和實現等各個階段中所充實的工作不再是從零開始,而是從開發轉變為系統集成,可以看成是一個以組裝構件為主的軟件開發過程。一種可行的構件化企業信息系統開發框架如圖1所示。
上述方法可以快速建立信息系統,其核心部分是構件。根據構件處理信息的不同,可將其分為3類:
①通用基本構件:是特定于計算機系統的構成成分,如基本的數據結構、用戶界面元素等;

圖1 企業信息系統的構件化開發框架
②領域共性構件:是企業信息系統所屬領域的共性構成成分,它們存在于該領域的各個應用系統中;
③應用專用構件:是每個應用系統的特有構成成分。信息系統開發中的重復勞動主要指前兩類構成成分的重復開發。
因此,通過凝結共性,通用基本構件和領域共性構件將具有良好的可復用性,由此可將開發者的主要精力聚集在系統專用構件的開發及各構件的組裝工作中。
企業信息系統的構件化方法摒棄“一切從零開始”的開發模式,而是以已有工作為基礎,充分利用積累的知識和經驗,通過用戶需求和問題域的詳細分析發掘可重用的成分,在舊系統中提煉或新開發通用基本構件和領域共性構件。開發者的精力投入專屬新系統功能的構件開發過程。所有構件經過測試、標準化、描述和分類后導入構件庫,從而新系統的開發是構件開發、組裝和系統測試的過程。
在實際的開發中,軟件的復用程度并不理想。基于構件的軟件開發將開發的重點由原來的軟件編程轉變為利用已有構件組合集成新的軟件系統。由于建立一個應用需要復用很多已有的軟件構件,這些構件可能是在不同的時間、由不同的人員開發的,并且有不同的用途,因此需要將它們組裝在一起。除了良好的軟件架構和合理的軟件開發過程指導外,程序員對構件的正確理解和準確利用至關重要。軟件復用面臨一個矛盾:一方面存在大量的可復用構件,另一方面程序員很難找到真正需要的構件。要解決這個問題,就需要對構件的靜態特性和動態行為做出準確、全面的描述,并建立構件庫對構件進行合理的分類和組織,提供良好的檢索方法支持。
基于上述軟件復用中的實際問題可以看出,構件的描述技術作為構件化軟件設計中的關鍵技術之一,在基于構件軟件開發(CBSD)的應用實踐中占有重要地位。構件描述是指以構件模型為基礎,解決構件的精確描述、理解及組裝的問題。它規定了一個軟構件所需的結構和內容,不僅用于指導軟件構件的設計、開發、管理、組裝和測試等活動,而且可用于構件庫的組織、存儲、檢索和瀏覽。
面向對象基于Web的.NET技術是企業信息系統開發中經常采用的開發平臺。.NET平臺非常適合于構件化布署,采用構件化工程方法,將代碼與邏輯和業務對象的剝離能夠實現軟件復用。一個.NET平臺下采用C#語言提煉、開發和加工構件的過程示意圖如圖2所示。C#是面向構件的編程語言,對構件開發有很好的支持。XML描述能嵌入C#構件注釋中。傳統構件描述中采用數學符號(難以理解、實現、維護及推廣)或直接使用自然語言(很難保證構件質量),而XML具有良好的擴展性和自描述性,因此可將XML作為構件描述語言。

圖2 .NET平臺下C#語言構件開發過程
用C#等語言開發的源代碼,構成各個功能模塊。將能夠復用的功能模塊提取出來,通過標準的接口定義,解耦合(構件與數據庫、應用環境等分離,真正意義上實現獨立,以適用于其他應用系統),并通過XML描述對構件進行良好的注釋。VSTS(Visual Studio Team System,Microsoft開發工具)編譯源碼后,生成2個文件,DLL程序集(構件)和含有構件描述數據的XML文檔。通過XML構件描述解析工具的解析將XML文檔轉換為構件描述元數據,最后,構件源碼、程序集和構件描述元數據3類形式的文件通過構件入庫管理系統一起入構件庫。
這樣,使用者在構件庫中搜索到所需構件時,通過閱讀詳細的描述信息能夠清楚地了解構件的基本功能,正確地應用于企業信息系統的開發,而且當構件升級為新版本時,其描述信息也能隨之更新,避免了描述與實體的脫節。
企業信息系統構件化開發方法的框架具有通用意義,可用于基于構件開發軟件的過程中。上述提出的.NET平臺下C#語言開發構件的過程已應用于工程實踐中,構件的XML描述能夠自動載入構件庫,實現了構件體與描述的一體化,提高了構件的精確描述度和理解力。
[1]楊芙清,梅 宏.構件化軟件設計與實現[M].北京:清華大學出版社,2008.
[2]王志堅,費玉奎,婁淵清.軟件構件技術及應用[M].北京:科學出版社,2005.
[3]LOWY J.Programming.NET Components[M].Gravenstein Highway North Sebastopol:O'Reilly Media,2005.