Software Reused and Component Technology Overview
Abstract: The idea of software reused is originally presented in the paper “Mass Produced Software Components” by Mcilroy in 1968.Since then people have done lots of researches and practice on it. Much research interest in this field of software reused technology based on component along with the Object-Oriented technology development. This paper summarizes the concept of software reused and the component technology, introduces some main component model and development of business component technology. The software developed approach and procedure based on components reused is described in it.
Key words: Component technology, Object-Oriented technology, Software Reuse, Business Component1 引言
隨著計算機技術的飛速發展,人們對軟件開發的速度和質量都提出了更高的要求。然而,通過多年的研究和實踐活動,人們已經認識到在基于非形式化的不完備、不一致的用戶需求和快速多變的軟件環境(SEE)下開發可運行信息系統,軟件開發自動化將是短期內難以實現的目標,軟件復用是比較現實可行的解決方案。近年來,由于得到了面向對象等新技術的支持,軟件組件復用技術已經成為軟件復用技術研究的重點。在組件模型的支持下,通過復用已有的組件,軟件開發者可以“即插即用”地快速構造應用系統。這樣不僅可以節省開發時間和經費,提高工作效率,而且可以產生更加規范、更加可靠的應用軟件。因此,組件復用技術被視為解決軟件危機、提高軟件生產效率和質量的有效途徑。
2 軟件復用與組件
2.1 軟件復用與面向對象技術
軟件復用(又稱軟件重用,Software reused),顧名思義,就是在軟件的生產過程中的“一次開發、多次使用”現象。20世紀80年代以來,軟件復用已經成為現代軟件工程的一個重要目標,過程與函數的復用是軟件復用的最初形式,面向對象技術的發展和應用對于提高軟件復用起到了積極的推動作用。面向對象技術把現實世界中的事物抽象為“對象”,把數據以及相關的方法(對數據的操作)封裝在一起,使用繼承的特性并利用已有對象的功能來構造新的對象,有效地提高了軟件的開發效率。但是,面向對象的軟件開發設計并沒有發揮出它應有的最大力量。首先,它支持的軟件復用是源代碼級別的,某一面向對象語言的類只能用于同一語言中;其次,在開發大型軟件系統時,它的粒度粗細難以有效控制;另外,不同軟件開發商所提供的對象(指語言的類)不易交互合作,難以支持系統的集成。因此,從理論上講,面向對象技術是應能支持軟件的復用和集成,但在實際上,面向對象技術只是可以作為一種基礎。
2.2 組件的基本概念
組件技術是從面向對象技術發展而來的,組件(又稱構件,Software Component)在不同上下文中有不同含義,例如,功能模塊、類、對象或一組相關函數;另外的定義還包括標準類庫、框架、CASE模型,以及任何可復用的軟件制品等等不一而足。通常人們所提到的組件具有以下特點:組件是具有一個或一組定義良好的接口的一段相對獨立的自包含軟件,具有二進制可復用性,遵從某種組件規范,可以與其它組件組合成一個系統并是可替換的。它具有運行時和開發時的兩個內涵,即既有運行時可訪問的接口;又具有開發時可獨立提交與安裝的特性。
面向對象技術常常把重點放在封裝以及代碼復用方面,而軟件組件技術支持二進制復用,側重于組件的可插入性(Plug-ability)。組件技術將封裝運用到了極限,它通過只暴露公用接口來實現這一點,組件的實際實現被隱藏起來。于是,首先,它可以獨立于實現語言:一個Java客戶不會感覺到所使用的組件是用C++來實現的;其次,它可以是位置透明的:客戶不會感覺到所使用的組件是運行在相同的進程中,還是運行在不同的進程中,甚至是位于不同的機器上。使用高層次的封裝,對于外界的好處在于,設計合理的組件可以插入到不同的客戶程序中,而客戶程序無需關心組件的實現。組件的客戶只需關心該組件所提供的接口(即約定)。在理想的設置中,支持相同接口的不同組件可以互換使用。可互換組件的可插入性是基于組件系統的目標。
2.3 組件復用的基本方式
依據復用的對象,可以將組件復用分為產品復用和過程復用。產品復用是指復用已有的組件,通過組件集成(組裝)得到新系統。過程復用是指復用已有軟件開發過程,使用可復用的應用生成器來自動或半自動地生成所需的系統。
依據對組件進行復用的方式,可以分為黑盒復用和白盒復用。黑盒復用是指對已有的組件不作任何修改,直接進行復用。白盒復用指已有組件并不能完全符合用戶需求,需要根據用戶需求進行適應性修改后才可以使用。
2.3 組件復用技術研究內容
組件復用包括兩個基本過程:可復用組件的開發和基于可復用組件的應用系統的組裝與集成。研究的內容主要有:組件獲取技術,組件模型技術,組件描述語言,組件分類與檢索,組件復合組裝,組件標準化。
實現組件復用的關鍵技術主要包括:軟件組件技術、領域工程、軟件架構、軟件在工程、開放過程、CASE技術等技術因素以及諸多非技術因素,其相互之間的關系如圖1所示。