軟件重用評述

一、軟件重用定義 
  軟件重用(Software  Reuse,又稱軟件複用或軟件再用)的概念對於大家並不陌生。早在1968年的NATO軟件工程會議上就已 經提出可複用庫的思想。軟件重用的定義也很多,比較權威和通用的一種是:軟件重用是利用事先建立好的軟部品創建新軟件系統的過程。這個定義蘊含着軟件重用 所必須包含的兩個方面: 
1. 系統地開發可重用的軟部品。這些軟部品可以是代碼,但不應該僅僅侷限在代碼。我們必須從更廣泛和更高層次來理解,這樣纔會帶來更大的重用收益。比如軟部品還可以是:分析,設計,測試數據,原型,計劃,文檔,模板,框架等等。 
2. 系統地使用這些軟部品作爲構築模塊,來建立新的系統。 

二、軟件重用的好處 
軟件重用會帶來以下好處: 
1. 提高軟件生成率。 
2. 縮短開發週期 。 
3. 降低軟件開發和維護費用。 
4. 生產更加標準化的軟件。 
5. 提高軟件開發質量。 
6. 增強軟件系統的互操作性。 
7. 減少軟件開發人員數量。 
8. 使開發人員能比較容易的適應不同性質的項目開發。 

三、軟件重用形式 
軟件重用的形式(或手段)很多,重用的級別有大有小。主要有以下幾種: 
1. 源代碼模塊或者類一級的重用。這是最基本的軟件重用形式。 
2. 二進制形式的重用。如組件重用。 
3. 組裝式重用。比如:把好幾個應用程序的功能集成在一起。例如,要建立一個門戶站點應用,登陸用戶既可以查詢天氣情況,又可以查看股市行情, 還可以在線購物。這些功能由不同網絡應用服務供應商提供,通過這種組裝式重用,就可以非常容易地把上述功能都集成到新的門戶站點中。 
4. 分析級別重用。 
5. 設計級別重用。 
6. 軟件文檔重用。 

四、軟件重用分類 
  爲軟件重用分類比較困難,因爲軟件重用技術衆多,一種重用技術可以包括多種重用形式。比如說:框架即可以包括代碼級重用,也可以包括設計級重用。有一種分類方法是按照軟件重用所應用的領域範圍,把重用劃分爲兩種:橫向重用和縱向重用。 
1. 橫向重用是指重用不同應用領域中的軟件元素,例如數據結構、分類算法、人機界面構件等。標準函數庫是一種典型的原始的橫向重用機制。 
2. 縱向重用是指在一類具有較多公共性的應用領域之間進行軟部品重用。因爲在兩個截然不同的應用領域之間實施軟件重用非常困難,潛力不大,所以縱向重用才廣受矚目,併成爲軟件重用技術的真正所在。縱向重用活動的主要包括以下幾個步驟: 
1) 首先進行域分析。根據應用領域的特徵及相似性預測軟部件的可重用性。 
2) 然後進行軟部件的開發。一旦確認了軟部件的重用價值,即可進行軟部品的開發並對具有重用價值的軟部品進行一般化,以便它們能夠適應新的類似的應用領域。 
3) 最後,軟部件及其文檔即可進入軟部品庫,成爲可供後續項目使用的可重用資源。 

五、流行的軟件重用技術 
  最理想的重用技術是它的重用產品能夠和用戶的需求完全一致,不需要用戶做任何自定義,並且能夠無需用戶學習就能夠被使用。然而,一種重用技術 能夠適合今天,可能不適合明天。一個重用產品越是能夠被自定義,它越是可能在一個特定的環境下被使用,但是這也需要用戶進行更多的學習,研究和實踐。 
  自從軟件重用思想產生以來,計算機科學家和軟件工程師就致力與軟件重用的技術的研究和實踐。在30多年的時間內,出現多種軟件重用技術,如:庫函數,模板,面向對象、設計模式、組件、框架、構架。 
  下面是應用程序框架和其它三種軟件流行的重用技術的比較。 
1. 庫函數
  庫函數是很早的軟件重用技術。很多編程語言爲了增強自身的功能,都提供了大量的庫函數。對於庫函數的使用者,他只要知道函數的名稱,返回值的類型, 
函數參數和函數功能就可以對其進行調用。 
2. 面向對象
  面向對象技術是近三十年來學術界和工業界研究和應用的一個熱點。面向對象技術通過方法、消息、類、繼承、封裝、和實例等機制構造軟件系統,並 爲軟件重用提供強有力的支持。面向對象方法已成爲當今最有效、最先進的軟件開發方法。與函數庫對應,很多面向對象語言爲應用程序開發者提供了易於使用的類 庫,如VC++中的MFC。 
3. 模板
  模板相當於工業生產中所用的''模具''。有各種各樣的模板(如文檔模板,網頁模板等),利用這些模板可以比較快速地建立對應的軟件產品。模板把不變的封裝在內部,對可能變化的部分提供了通用接口,由使用者來對這些接口進行設定或實現。 
4. 設計模式 
  設計模式作爲重用設計信息的一種技術,在面向對象設計中越來越來流行。設計模式描述了在我們周圍不斷重複發生的問題,該問題的解決方案的核心 和解決方案實施的上下文。設計模式命名一種技術並且描述它的成本和收益,共享一系列模式的開發者擁有共同的語言來描述他們的設計。 
5. 構件
   普通意義上的構件應從以下幾個方面來理解: 
1) 構件應是抽象的系統特徵單元,具有封裝性和信息隱蔽,其功能由它的接口定義。 
2) 構件可以是原子的,也可以是複合的。因此它可以是函數,過程或對象類,也可以是更大規模的單元。一個子系統是包含其它構件的構件。 
3) 構件是可配置和共享的,這是基於構件開發的基石,且構件之間能相互提供服務。 
6. 構架 
   普通意義上的構架應從以下幾個方面來理解: 
1) 構架是與設計的同義理解,是系統原型或早期的實現。 
2) 構架是高層次的系統整體組織。 
3) 構架是關於特定技術如何合作組成一個特定系統的解釋。 
7. 框架 
  如果把軟件的構建過程看成是傳統的建築過程;框架的作用相當於爲我們的房屋搭建的''架子''。框架從重用意義上說,是一個介於構件和構架之間的一個概念。構件,框架和構架三者的主要區別在於:對重用的支持程度的不同: 
1) 構件是基礎,也是基於構件開發的最小單元。構件重用包括可重用構件的製作和利用可重用構件構造新構件或系統, 
2) 一個框架和構架包含多個構件。這些構件使用統一的框架(構架)接口,使得構造一個應用系統更爲容易。 
3) 框架重用包括代碼重用和分析設計重用,一個應用系統可能需要若干個框架的支撐,從這個意義上來說,框架也是一個''構件''的同時,框架又是一類特定領域的構架。 
4) 構架重用不僅包括代碼重用和分析設計重用,更重要的是抽象層次更高的系統級重用。 
5) 框架和構架的重用層次更高,比構件更爲抽象靈活,但也更難學習和使用。 
六、軟件重用技術的未來 
   有人預測:到2003年至少70%的新應用程序將會由構築模塊(building         blocks)構成,這些構築模塊(如 軟構件和應用程序框架)加快了產品的開發速度和企業的應變能力。以設計模式,框架和商業構件形勢出現的軟部品可以通過重用顯著的提升開發品質和生產力,重 用反過來也可以顯著的降低成本和縮短軟件開發週期。未來應用程序的開發依存於一個開放的,便利構件選擇和裝配的綜合體繫結構。信息系統組織必須爲基於構件 開發制定一項戰略。
 

軟 件重用是指在兩次或多次不同的軟件開發過程中重複使用相同或相似軟件元素的過程。軟件元素包括程序代碼、測試用例、設計文檔、設計過程、需要分析文檔甚至 領域知識。對於新的軟件開發項目而言,它們或者是構成整個目標軟件系統的部件,或者在軟件開發過程中發揮某種作用。通常將這些軟件元素稱爲軟部件。
   爲了能夠在軟件開發過程中重用現有的軟部件,必須在此之前不斷的進行軟部件的積累,並將它們組織成軟部件庫。這就是說,軟件重用不僅要討論如何檢索所需 的軟部件以及如何對它們進行必要的修剪,還要解決如何選取軟部件、如何組織軟部件庫等問題。因此,軟件重用方法學通常要求軟件開發項目既要考慮重用已有軟 部件的機制,又要系統的考慮生產可重用軟部件的機制。這類項目通常被稱爲軟件重用項目。


按 照重要活動是否跨越相似性較小少的多個應用領域,軟件重用可區別爲橫向和縱向重用。橫向重用(horizontalreuse)是指重用不同應用領域中的 軟件元素,例如數據結構、分類算法、人機界面構件等。標準函數庫是一種典型的、原始的橫向重用機制。縱向重用是指在一類具有較多公共性的應用領域之間進行 軟部件重用。因爲在兩個截然不同的應用領域之間實施軟件重用的潛力不大,所以縱向重用才廣受矚目,併成爲軟件重用技術的真正所在。不難理解縱向重用活動的 主要關鍵點即是域分析;根據應用領域的特徵及相似性預測軟部件的可重用性。一旦根據域確認了軟部件的重用價值,機可進行軟部件的開發並對具有重用價值的軟 部件進行一般化,以便它們能夠適應新的類似的應用領域。然後,軟部件及其文檔即可進入軟部件庫,成爲可供後續開發項目使用的可重用資源。這些部件構成軟部 件構造活動。顯然,它是一個軟部件不斷積累、不斷完善的漸進過程。隨着軟部件的不斷豐富,軟部件庫的規模會不斷擴大,因此,庫的組織結構將直接影響軟部件 的檢索效應,特別是當檢索手段並不侷限於標準函數庫所採用的簡單名字匹配方法時。可供侯選的軟部件從庫中別檢索出來以後,用戶還必須理解其功能及行爲,以 判別它是否真正適用於當前項目。必要時可考慮對某個與期望的功能/行爲匹配程度最佳的軟部件進行稍許修改,甚至可以將修改後的軟部件加進軟部件以替代原有 軟部件。當然,這要求修改後的軟部件比原有軟部件具有更高的重用價值。上述軟件重用方法的   
顯 然,軟件重用過程可藉助計算機的幫助。支持軟件重用的CASE工具的主要任務是,用某種組織結構實現軟部件庫的存儲,提供友好的人機界面,幫助用戶瀏覽、 檢索和修改軟部件庫,並且讀用戶趕興趣的問題進行解釋。事實上,現在幾乎所有的軟件重用活動都是在CASE工具的幫助下進行的。
  使用重用技術 可以減少軟件開發活動中大量的重複性工作,這樣就能夠提高軟件的生產率,減低開發成本,縮短開發週期。同時,由於軟部件大都經過嚴格的質量認證,並在實際 運行環境中得到檢驗,因此,重用軟部件有助於改善軟件質量。此外,大量使用軟部件,軟件的靈活性和標準化程度也渴望得到提高。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章