一、面向對象
凈室過程為面向對象開發提供了可管理性和技術嚴密性(Ett和Trammell 1995)。對象從本質上來說是封裝了數據和一系列服務的狀態機器。一個凈室組件用黑盒視圖(一個對象的外部行為)、狀態盒視圖(一個對象的封裝數據)和明盒視圖(處理外部需求和訪問封裝數據的服務)來定義。一個凈室組件從技術上講就是一個對象。凈室盒子結構有助于產生一個完備、一致和正確的對象行為規范。而且,盒子結構有助于定義和管理數據并且控制數據在各個對象之間的流動。
在凈室技術中,數學形式化方法成為規范、設計、正確性驗證和認證測試的基礎。這種成熟的形式化方法可為相對直觀的面向對象方法增加精確性和可預見性。凈室是應用工程而非領域工程的一種方法。面向對象方法的普遍力量在于尋求某領域應用特征的關系和抽象。面向對象的領域分析可作為凈室應用工程的補充。
二、軟件復用
成功的軟件組件復用需要對組件功能在語義上有精確的定義,還需組件在特定使用環境中得到質量和可靠性認證。沒有這些保證,復用將是不可預見的和冒險的。
凈室黑盒規范能從語義上定義所有可能的使用情況。如果內部重用的范圍窄于組件的范圍(如減小了可變范圍),可通過限制黑盒函數的定義域來制定范圍減小的規范。一個“包裝”(一個包含重用組件的組件)可以加強調用組件的并置條件。
一個現成重用組件的適應性常常是通過試運行來評估的。凈室認證通過統計測試能提高特定使用環境的質量和可靠性度量。統計測試允許從特定使用情況和指定置信度水平評估組件的可靠性。
結合凈室可靠性方案,Poore、Mills和Mutchler(1993)改進了一種復用分析的定量方法。利用這種方法,在頂層設計時就可建立組件的可靠性和轉移概率。如果給定組件的可靠性指標,通過頂層組件網的定量分析可得到關于系統可靠性的上界。分析結果可用于評估組件重用的生命力。
三、軟件體系結構
在眾多軟件體系結構的定義中,一個共同的主題是:軟件體系結構定義了主要的組件和它們之間的關系。凈室提供了一個過程來準確定義體系結構的功能性語義--------是什么組件以及它們之間有什么關系。
凈室狀態盒和明盒中高層的內部設計關系到系統主要組件以及它們之間的關系:主要的數據對象由狀態盒設計確定,數據對象的主要操作由明盒設計完成。最后,高層明盒設計體現了系統體系結構的主要元素。
凈室規范和設計包括對一個系統解空間的系統的探索。黑盒和狀態盒的關系是一對多,必須從一個對象集中做出選擇。狀態盒和明盒的關系也是一對多,必須從一個對象操作集中做出選擇。軟件體系結構的進化將產生設計模式的分類,凈室工作者的設計選擇隨著盒子結構設計被編成目錄。
簡而言之,凈室系統總在明晰體系結構,但從沒命名(除“系統頂層明盒”之外)。在研究軟件體系結構時對設計模型的命名和描述將加速對設計選擇的評估。
四、檢查和評審
凈室正確性驗證允許在檢查和評審中增加額外的技術嚴密性和精確性。除了使用本地檢查列表外,凈室還利用基于函數的理論:一個程序(代碼)實現一個函數(規范)對代碼和設計進行評審。凈室評審的目的是驗證實現了的功能規范的正確性。對代碼的評審總是對照其所實現的功能規范進行,而不是空對空的。
凈室規范和設計產品具有內部的可跟蹤性。在盒子結構規范和設計的每一步都要進行同樣的評審。要對每個工作產品進行評審,對應的小組成員要對工作產品的正確性負責。最終的成功是小組的成功,失敗也是小組的失敗。健全的技術和小組對正確性的責任的結合是預防缺陷非常有效的方法。
五、軟件測試方法
凈室測試基于使用模型對給定版本的軟件的預期操作性能產生有根據的統計參考。凈室使用模型也可用于其他測試目的,如最大覆蓋測試和加強關鍵功能。使用模型為模型覆蓋測試、隨機測試、重點測試、劃分測試和其他形式的測試提供了科學的基礎。
人工測試(Crafted testing)同樣可用于凈室過程。有必要為特定環境的系統運行提供專門的測試用例以消除不確定性。另外,在后臺運行的代碼覆蓋工具可作為使用測試的補充。回歸測試、結構(白盒)測試和其他測試方法和凈室是兼容的。
文章來源于領測軟件測試網 http://www.kjueaiud.com/