軟件復用的內容是怎樣的呢?
人們開發了許多基于各種OOPL的編程類庫,有力地支持了源程序層次的軟件復用,但不足以實現更高層次的軟件復用。
軟件復用的幾種方式?
軟件復用是利用已有的軟件及其有效組件來構造新的軟件或系統。不僅僅是軟件程序的復用,還包括軟件生產過程中其他勞動成果的復用,如項目計劃、可行性報告、需求分析、概要設計、詳細設計、編碼(源程序)、測試用例、文檔和手冊等。因此,軟件復用包括軟件產品復用和軟件過程復用。
軟件復用不同于軟件移植。軟件移植是指對軟件進行修改和擴展,使其在保留原有功能、適應原有平臺的基礎上,運行在新的軟硬件平臺上。復用是指在多個系統中使用已有的軟件組件,尤其是在新系統中。
從復用產品和復用方法的理解上,也可以分為白盒復用和黑盒復用。黑盒復用是指直接復用已有的產品或組件,不做任何修改,是一種理想的復用方法。主要是基于二進制代碼的復用,包括可執行程序的復用和基于庫(包括動態鏈接庫和靜態庫)的復用。白盒重用是指根據用戶需求對現有產品進行適應性修改。;使用前的需求。白盒復用一般是源代碼級別的復用和相應測試用例、文檔的復用。
無論白盒復用還是黑盒復用,熟悉和掌握復用的軟件系統都需要一定的成本。從經濟角度考慮,再利用的成本必須遠小于再開發的成本,否則不應考慮。
軟件復用的一個關鍵因素是抽象。抽象是對軟件可復用對象的抽象和概括,即從特定的語言、環境等細節中提取可復用對象的基本屬性和相應的操作。軟件的可復用性很大程度上取決于對可復用對象的理解深度或可復用對象的抽象程度。抽象程度越高,與具體環境和具體細節越不相關,被未來系統重用的可能性就越大。領域分析是一個強大的抽象工具。領域分析借助特定領域和行業的專業知識和技能,對軟件系統對象進行抽象和分類,提煉認知對象及其關系,獲得系統的整體結構,生成可復用的軟件構件。
通過軟件復用,我們可以在應用系統的開發中充分利用現有的開發成果,減少包括分析、設計、編碼、測試等在內的大量重復性工作。,從而提高軟件開發的效率。同時,通過復用高質量的已有開發成果,可以避免二次開發可能引入的錯誤,從而提高軟件的質量。
軟件復用有三個基本原則。首先,必須有可重用的對象。第二,被重用的對象必須是有用的。第三,重用者需要知道如何使用被重用的對象。的對象。軟件復用包括兩個相關的過程:開發復用軟件(組件)和開發不復用基于可復用軟件(組件)的應用系統。只有解決了這些問題,才能實現真正成功的軟件復用。
可復用軟件(構件)的開發是實現軟件復用的基本條件。對象技術的廣泛使用為構建和使用組件提供了概念基礎和實用工具。利用可復用軟件,可以實現基于可復用軟件(組件)的應用系統的構建(集成和組裝)。軟件的制作也可以像硬件的制作一樣,在設計好框架后,用標準組件組裝。一般來說,組件是具有一定功能的程序體,可以獨立工作,也可以與其他組件協同工作。一旦產生,就與其具體的實現語言無關。可以認為是二進制代碼和數據段,其內部實現是不可見的。成熟的組件可以作為商品出售,在保證開發者利益的同時,最大程度滿足社會需求。使用組件開發軟件可以重用他人現有的勞動成果更有效。
在可復用軟件的設計中,如何設計和構造可復用軟件是軟件設計者必須面對的首要問題。根據面向對象的設計原則,我們應該重點關注以下幾個方面:
(1)封裝
在軟件組件的定義中,用戶只關心事件的輸入和輸出,而不關心事件的輸入和輸出。;我不必關心事情的內幕。方法和事件獨立于應用程序。用戶可以在軟件組件中定義他們自己的事件,但是他們沒有。;不知道內部調用的復雜性,從而提高了隱蔽性。
(2)超載
重載意味著在同一個軟件組件中使用相同的名稱來表示不同的方法名。一般有兩種實現,一種是重載方法參數的個數,另一種是重載方法參數的類型。
(3)繼承
繼承是在不同范圍內對高級類的重用。
(4)聚合
聚合就是把一個很難復用的大型軟件分成幾個組件,讓其中的一部分可以復用。
(5)多態性
多態意味著一個方法不僅可以處理結構相同的對象,也可以處理結構不同的對象。
中間件和相關軟件是商業軟件復用。單看程序,軟件復用后的產品不僅包括中間件軟件,還包括軟件框架、應用框架、通用業務組件等可復用形式。