11.3 軟體重用
11.3.1 概述
1.重用
重用也叫再用或復用,是指同一事物不作修改或稍加改動就多次重複使用,廣義地說,軟體重用可分為以下3個層次:
(1)知識重用(例如,軟體工程知識的重用)
(2)方法和的標準的重用(例如,物件導向方法或國家制定的軟體開發規範的重用
(3)軟體成分的重用
前兩個重用層次屬於知識工程研究的範疇,本節僅計論軟體成分重用問題
2.軟體成分的重用級別
軟體成分的重用可以進一步劃分成以下3個級別:
(1)**重用
人們談論得最多的是**重用,通常把它理解為調庫中的模組,實際上,**重用也可以採用下列幾種形式中的任何一種
*源**剪貼:這是最原始的重用形式。這種重用方式的缺點,是複製或修改原有**時可能出錯,更糟糕的是,存在嚴重的配置管理問題,人們幾平無法跟蹤原始**塊多次修改重用的過程。
*源**包含:許多程式語言都提供包含(include)庫中源**的機制,使用這種重用形式時,配置管理問題有所緩解,因為修改了庫中源**之後,所有包含它的程式自然都必須重新編譯
*継承:利用繼承機制重用類庫中的類時,無須修改已有的**,就可以擴充或具體化在庫中找出的類,因此,基本上不存在配置管理問題
(2)設計結果重用
設計結果重用指的是,重用某個教件系統的設計模型(即求解域模型).這個級別的重用有助於把乙個應用系統移植到完全不同的軟硬體平台上
(3)分析結果重用
這是一種更高階別的重用,即重用某個系統的分析模型,這種重用特別適用於使用者需求未改變,但系統體系結構發生了根本變化的場合
3.典型的可重用軟體成分
更具體地說,可能被重用的軟體成分主要有以下10種:
(1)專案計畫,軟體專案計畫的基本結構和許多內容(例如,教件質量保證計畫)都是可以跨專案重用的。這樣做減少了用於制定計畫的時間,也降低了與建立進度表和進行風險分析等活動相關聯的不確定性。
(2)成本估計。因為在不同專案中經常含有類似的功能,所以有可能在只做極少修改或根本不做修改的情況下,重用對該功能的成本估計結果
(3)體系結構,即使在考慮不同的應用領域時,也很少有截然不同的程式和資料體系結構。因此,有可能建立一組類屬的體系結構模板(例如,事務處理體系結構),並把那些極板作為可重用的設計框架,通常把類屬的體系結構模板稱為領域體系結構。
(4)需求模型和規格說明。類和物件的模型及規格說明是明顯的重用的候選者,此外,用傳軟體工程方法開發的分析模型(例如,資料流圖),也是可重用的。
(5)設計,用傳統方法開發的體系結構、資料、介面和過程設計結果,是重用的候選者,更常見的是,系統和物件設計是可重用的。
(6)源**,用相容的程式語言書寫的、經過驗證的程式構件,是重用的候選者
(7)使用者文件和技術文件。即使針對的應用是不同的,也經常有可能重用使用者文件和技術文件的大部分。
(8)使用者介面。這可能是最廣泛被重用的軟體成分,gui(圖形使用者介面)軟體經常被重用。因為它可佔到乙個應用程式的60%的**量,因此,重用的效果非常顯著。
(9)資料。在大多數經常被重用的軟體成分中,被重用的資料報括:內部表、列表和記錄結構,以及檔案和完整的據庫。
軟體重用評述
軟 件重用是指在兩次或多次不同的軟體開發過程中重複使用相同或相似軟體元素的過程。軟體元素包括程式 測試用例 設計文件 設計過程 需要分析文件甚至 領域知識。對於新的軟體開發專案而言,它們或者是構成整個目標軟體系統的部件,或者在軟體開發過程中發揮某種作用。通常將這些軟體元素稱為軟部件。為了能夠在軟體開...
關於軟體重用
在現實的大多數專案中,我們都在考慮著軟體重用的問題,因為這是在軟體開發中無法避免的乙個很現實的問題,也是乙個很讓人的頭疼的問題。下面是我對軟體重用的非常個人的理解,僅作參考。軟體重用可分為兩個層次,乙個層次是設計上的重用,另外乙個層次是 級的重用,而 級的重用上又可分細分為兩個層次,乙個是基於源 的...
軟體的復用
1 機制復用 包含 框架 設計模式 面向介面程式設計 依賴注入等 本質是面向抽象 契約 約束 程式設計。側重於軟體的生長方式。2 功能復用 定製的通用的功能 通過繼承或繼承或直接引用 思想 相同功能的 不要分散在程式的各個角落 復用的內涵包括了提高質量與生產率兩者。由經驗可知,在乙個新系統中,大部分...