雷虹
摘 要:軟件構件是支持軟件復用的核心技術,為現今的軟件開發提供了新的方法,也能有效地推進軟件生產方式的變革,提高軟件產品的質量及軟件生產的效率。本文詳細探討基于構件的軟件開發生命期的幾個環節檢索構件、適配構件、組裝構件。
關鍵詞:軟件構件;開發;檢索
現今的軟件開發已脫離了傳統的手工作坊模式,更注重軟件開發效率及軟件產品質量的提高。要在軟件開發中解決重復勞動的問題,可采取軟件復用技術,以不斷提高軟件開發的質量及效率。而軟件構件是當前支持軟件產品復用的有效形式,是支持軟件復用的核心技術。不斷發展及成熟的軟件構件技術為現今的軟件開發提供了新的方法,也能有效地推進軟件生產方式的變革,提高軟件產品的質量及軟件生產的效率。
1 基于構件的軟件開發
基于構件的軟件開發將現成的軟件構件集成并構造成一個大型得軟件系統,此方法可以快速組裝系統,有效降低軟件開發成本,提高軟件系統的可維護性及靈活性,降低系統的維護費用。與傳統的軟件系統開發注重開發,而忽略可復用構件的存在這一做法不同,基于構件的軟件系統開發更注重如何獲得己經存在的構件,而不是開發,組裝和集成現有的構件是基于構件的軟件系統開發的主要著眼點。基于構件的軟件系統開發的過程如下:(1)檢索構件:檢索構件的過程包括如何根據描述構件、創建構件庫。領域工程師開發出新的應用構件,并用文檔加以描述。通過領域分析、自行開發、逆向工程或者商業購買等途徑來獲得所需要的構件。(2)選擇構件:從構件庫中選擇合適的構件,并驗證構件的功能、接口等。(3)適配構件:修改或者定制所選擇的構件來滿足新的應用環境的系統需求,以便能與其他構件進行集成。(4)組合構件:將不同的構件集成和組裝在一起。
2 檢索構件
檢索構件指的是從大量的構件所構成的構件庫中找出合適的構件。目前互聯網上有許多專門的構件庫,各個Web站點上也提供了構件的鏈接,但是不同的構件庫有不同的組織和訪問方式,從而造成了對各構件庫中的構件訪問困難,并且Web站點上鏈接的構件也無法用傳統的檢索引擎檢索到。只有將網絡上的構件資源加以利用到構件系統的開發中,才能實現縮短軟件開發周期,提高軟件質量的目的。現今人們對軟件需求愈加體現了個性化、多樣性的特點,以往的多種功能單一軟件包方式無法滿足用戶的需求,因此在基于構件的軟件開發研究中,應在允許用戶選擇服務組合的基礎上,允許在構件級別上對單一的服務進行功能集和界面等的定制,在服務定制的粒度上應該更細,也應該更具靈活性。基于構件的軟件開發成功依賴于構件分類和檢索技術。由于構件的信息量比較豐富,相互之間也缺乏很多相似性,構件之間缺乏有意義的聯系,這給構件的分類帶來了很多困難。目前有很多構件分類檢索方法,從構件表示出發可分為人工智能方法、超文本方法和信息科學方法三類。而根據復雜度和檢索效果的不同可以分為基于文本的、基于詞法描述字的和基于規約的編碼和檢索。
3 適配構件
適配構件是從泛化的構件來創建特定應用的構件,主要采用以下方法:部分實現:構件只實現一部分功能或行為,其他部分僅提供接口。不如在面向對象的軟件開發中,通常會有一部分抽象方法留給用戶來實現。重載:構建提供了缺省的實現,用戶在具體應用時可以重載這些行為。但是要求開發構件的程序語言支持重載機制,比如c++,Java。插件:通過編寫插件的形式為粗粒度的構件添加新的功能,插件在構件總注冊其提供的服務,構件需要使用該服務時調用該插件。各個構件在生產時是為了滿足不同的需求,并基于對環境的不同假設,因此構件在用于新系統時經常要進行剪裁。構件剪裁必須基于構件之間的沖突最小化原則,消除體系結構的不匹配同題。針對不同的構件類型,可以采取不同的剪裁策略。
4 組裝構件
作為是軟件系統的基本組成成分,構件通過契約式接口指明對語境的依賴,可以實現獨立部署。構件組裝的本質是在構件之間建立關聯。構件之間的組裝關系由組裝邏輯描述,組裝邏輯規定了中各個構件之間的作用形式和構件在運行期間的通信機制。根據其特征來劃分,構建組裝方法可分為黑盒組裝方法,白盒組裝方法,灰盒組裝方法,三類組裝方法的劃分依據是構件組裝時對構件內部細節的了解程度。其中,黑盒組裝無需對構件實現細節有任何了解,也不需要對其進行配置和修改,這對構件的要求高,實現難度大,白盒組裝要求將構件的所有細節都展現出來,讓復用者理解后再進行組裝,并可對構件按應用的需要進行修改,從構件的復用角度分析,白盒組裝的存在只能是局部的和暫時的。一個可以隨意修改的軟件構件并不是真正意義上的可復用產品,因為弄清一個構件并對其進行合適的修改代價會很高,其安全性可靠性得不到保證。灰盒方法介于黑、白盒之間,是當前技術發展的合適選擇。灰盒方法通過調整構件的組裝機制而不是修改構件來滿足應用系統組裝的需求,既實現了構件組裝的靈活性,又不至于過于復雜。
總之,基于構件的軟件開發過程關注可復用構件的存在,更關注組裝和集成現有的構件,將己經存在的構件加以有效利用。本文對基于構件的軟件開發生命期的幾個個環節檢索構件、適配構件、組裝構件加以探討,旨在實現構件的軟件開發方法更靈活,有效地推進軟件生產方式的變革,提高軟件產品的質量及軟件生產的效率。
[參考文獻]
[1]王志堅,費玉奎,姿淵清.軟件構件技術及應用.礦科學出版社.2005.
[2]肖忠.構件軟件工程研究.碩士論文.四川大學.2005.