軟體重用
軟體重用
軟體重用,是指在兩次或多次不同的軟體開發過程中重複使用相同或相似軟體元素的過程。軟體元素包括程序代碼、測試用例、設計文檔、設計過程、需求分析文檔甚至領域知識。通常,可重用的元素也稱作軟構件,可重用的軟構件越大,重用的粒度越大。
(1)知識重用(例如,軟體工程知識的重用)。
(2)方法和標準的重用(例如,面向對象方法或國家制定的軟體開發規範的重用)。
(3)軟體成分的重用。
為了能夠在軟體開發過程中重用現有的軟部件,必須在此之前不斷地進行軟部件的積累,並將他們組織成軟部件庫。這就是說,軟體重用不僅要討論如何檢索所需的軟部件以及如何對他們進行必要的修剪,還要解決如何選取軟部件、如何組織軟部件庫等問題。因此,軟體重用方法學,通常要求軟體開發項目既要考慮重用軟部件的機制,有要系統地考慮生產可重用軟部件的機制。這類項目通常被稱為軟體重用項目。
使用軟體重用技術可以減少軟體開發活動中大量的重複性工作,這樣就能提高軟體生產率,降低開發成本,縮短開發周期。同時,由於軟構件大都經過嚴格的質量認證,並在實際運行環境中得到校驗,因此,重用軟構件有助於改善軟體質量。此外,大量使用軟構件,軟體的靈活性和標準化程度也可望得到提高。
軟體重用是指在兩次或多次不同的軟體開發過程中重複使用相同或相似軟體元素的過程。按照重用活動是否跨越相似性較少的多個應用領域,軟體重用可以區別為橫向重用和縱向重用。橫向重用是指重用不同應用領域中的軟體元素,例如數據結構、分類演演算法和人機界面構建等。標準函數是一種典型的、原始的橫向重用機制。縱向重用是指在一類具有較多公共性的應用領域之間進行軟部件重用。縱向重用活動的主要關鍵點是域分析:根據應用領域的特徵及相似性預測軟部件的可重用性。
不論是理論上還是實用上,代碼重用都是編程的一個重要議題。可以從兩個角度來討論代碼重用。
一是邏輯上代碼以怎樣的方式被重用。既可以通過面向對象的思想普及以來耳熟能詳的繼承的方式。比如先建了一個車的基類,再從它衍生出轎車、卡車、大客車等子類,基類車的功能就被這些子類重用了。另一種途徑是從函數被發明起就一直被使用的組合。例如我們已經有了軲轆、軸、車斗、木杆等部件,就可以組合出一輛三輪車。
第二個角度是實體上代碼以怎樣的方式被重用。從需要連接的靜態庫文件、可以動態載入的庫到直接引用的腳本文件,都有各自的特點。