軟部件庫的構造

發表于:2008-02-20來源:作者:點擊數: 標簽:軟部件庫
域分析 從軟件工程的觀點看,域就是向目標軟件系統提出應用要求的問題及背景知識。域分析的主要任務是針對單個或一族相似的域,以軟件重用為目標,探尋并挖掘域或域族中能夠為多個目標軟件系統共用的軟部件,并對它們進行結構化組織以備重用。域分析與 需求分
域分析

  從軟件工程的觀點看,域就是向目標軟件系統提出應用要求的問題及背景知識。域分析的主要任務是針對單個或一族相似的域,以軟件重用為目標,探尋并挖掘域或域族中能夠為多個目標軟件系統共用的軟部件,并對它們進行結構化組織以備重用。域分析與需求分析活動相似之處,它們都是軟件項目中直接基于應用領域的開發活動,并且要完成程度不同的域建模任務。但是,域分析必須具有比需求更為廣闊的視角:不僅要服務于當前軟件項目,而且要從域的歷史項目中發現軟件項目之間的共同性和差異點,并放眼于同類或相似應用領域的未來軟件項目。

 

  上圖顯示了域分析活動的主要輸入、輸出項目、參與人員及控制。域分析的輸入信息可以從多種渠道獲得:技術文獻,已完成的同類軟件項目(其中包括源代碼、設計文檔、測試方案、用戶手冊等),用戶述評,專家建議,用戶需求,以及當前軟件項目反饋過來的域特征信息。域分析活動一般由域分析師、分析輔助人員和領域專家協同完成。它們在域分析方法和管理機制的控制下提交域分析活動的結果信息——一般化的域結構模型(包裹域中概念和實體分類方法),軟件開發標準(包括需求分析與軟件的方法框架、軟件開發過程標準、編碼標準、界面標準等),以及用于刻畫域的特征、域中對象、操作及其關系的域語言。

  由于域分析與需求分析都以構筑應用領域的模型為主要任務,因此,某些需求分析技術可以在域分析過程中發揮作用,需求描述語言(數據流圖、實體—關系圖,面向對象的需求描述機制等)也可作為域語言的基礎。但是,域分析必須進行一般化、抽象化和參數化,以抽象后的域模型元素表示同類域中不同軟件項目之間的相似性,通過參數實例化刻畫差異性,從而實現域模型元素面向不同軟件項目的可適應性和靈活性。于是,在省略有關建模的技術細節之后,域分析過程可大致歸納以下步驟:

  (1) 發現并描述可重用的實體;

  (2) 對這些試題及它們之間的關系進行抽象化、一般化和參數化;

  (3) 對可重用的實體進行分類、歸并,以備日后重用。

  除上圖所示的域分析結果外,域分析還可產生一種重用超結構,以管理在后續軟件項目的各個開發階段的軟件重用的可能性,以及收集有關重用活動的各類統計數據。這些數據可反饋至域分析方法,以便不斷改進之。在重用超結構中,軟部件庫管理人員負責軟部件的檢索和提取,軟部件人員負責軟部件的質量控制和標準化,重用管理員則收集與重用有關的統計數據,協調所有的重用活動。

  軟部件的開發

  域分析的結果為軟部件的選取提供了指導原則。一旦確定某些軟件應該作為重用部件加入部件庫,開發人員就必須實際構造它們。由于軟部件的生命周期將跨越開發項目甚至應用領域,因此,軟部件的開發具有相當的特殊性,即如何使軟部件更為通用,更易于組裝為新的軟件系統,以及在新的運行環境下表現出更好的強壯性?

  代碼級重用是最簡單、也是最流行的。但是,本書的軟部件不僅包括代碼級部件,也涵蓋域知識、需求分析文檔、設計文檔、測試方案、測試用例等軟件元素,因為這些級別上的軟部件可望更好的發揮重用技術的潛力,同時也是代碼級重用的必要補充。

  1. 需求及設計級軟部件

  需求級軟部件通常包括問題(及子問題)描述、有關域知識以及相應的需求規格說明。問題描述及域知識說明均用域語言表示,必要時可輔以結果化的自然語言。

  類似地,設計級軟件部件包括設計規格說明(片段)、設計決策描述以及相應的設計文檔(例如總體設計方案,抽象算法)。于是,設計級軟件與需求級軟部件相結合,使需求級部件和設計級部件的重用同時發生,簡化了對這些軟部件的理解和組裝過程。

  需求級與設計級軟件部件的開發必須遵循下列兩項原則:

  (1) 將軟部件應用的上下文與軟部件嚴格分離;

  (2) 利用抽象化、參數化等手段提取公共性,增強軟部件對未來不同應用項目的適應能力。

  需求級、設計級與代碼級軟部件相結合,有助于代碼級軟部件的提取和理解。借助較高抽象級別的軟部件可望提高重用效能,因為這樣不僅可以重用代碼,而且可以重用需求模型和設計方案。

  2.代碼級軟部件

  代碼級重用是迄今為止研究最深入、應用最廣泛的重用技術。代碼級軟部件除包含通常的代碼段外,還必須輔以相應的解釋和上下文說明。這些輔助說明可以用結構化自然語言或其他表示機制描述,但最好以相應的需求或設計軟部件的形式出現。傳統上,代碼級軟部件的主體是子程序(函數或過程)?,F在,由于基于對象和面向對象的程序設計語言及相應開發環境的發展,軟部件還可以用Ada程序及C++類實現。

  開發代碼級軟部件與通常的程序設計活動的主要區別在于,開發人員必須使用各種抽象化手段,以發覺公共性,分離軟部件的應用上下文、功能及行為,從而提高可重用性??梢杂孟铝腥N抽象方法開發軟部件:

  (1) 功能抽象:軟部件的功能由接口說明中的輸入-輸出關系確定,實現細節對軟部件使用者透明。

  (2) 數據透明:在功能抽象的基礎上進一步隱藏除界面參數之外的所有數據。

原文轉自:http://www.anti-gravitydesign.com

国产97人人超碰caoprom_尤物国产在线一区手机播放_精品国产一区二区三_色天使久久综合给合久久97