凈室軟件工程-文檔資料_第1頁
凈室軟件工程-文檔資料_第2頁
凈室軟件工程-文檔資料_第3頁
凈室軟件工程-文檔資料_第4頁
凈室軟件工程-文檔資料_第5頁
已閱讀5頁,還剩37頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、哈爾濱工業(yè)大學計算機學院唐好選Email:u“凈室”(Cleanroom)一詞源自半導體工業(yè)中硬件生產(chǎn)車間,通過嚴格、潔凈的生產(chǎn)過程預防了缺陷的產(chǎn)生,而不是在事后再去排除故障。借用這個詞,充分顯示了凈室技術“防患于未然”的主導思想u凈室軟件工程(CSE)是一種應用數(shù)學和統(tǒng)計學理論生產(chǎn)軟件的工程技術。力圖通過嚴格的工程化的軟件過程達到開發(fā)中的零缺陷或接近零缺陷3u通過在第一次正確的書寫代碼增量,并在測試前驗證其正確性來避免成本過高的缺陷消除過程。它的過程模型是在代碼增量集成到系統(tǒng)的同時,進行代碼增量的統(tǒng)計質量驗證。u強調規(guī)格說明和設計上嚴格性,使用基于數(shù)學的正確性證明對結果設計模型的每個元素進行

2、形式化驗證,在規(guī)格說明和設計中消除錯誤,以“干凈”的方式進行制造。u20世紀70年代末80年代初,資深數(shù)學家和IBM客座科學家Harlan Mills闡述了將數(shù)學、統(tǒng)計學及工程學上的基本概念應用到軟件的設想 uMills的觀點:程序中出現(xiàn)錯誤的唯一方式是作者將錯誤引入進去的。沒有其他的方式正確實踐的目標是:設法避免引入錯誤,通過測試或其它任何運行程序的方式來消除錯誤。5u 兩大基本觀點促進了Mills的工作:首先,程序是數(shù)學函數(shù)規(guī)則,其次,潛在的程序執(zhí)行是無窮的,質量認證必須進行統(tǒng)計采樣u 第一個觀點使所有函數(shù)理論向軟件開發(fā)敞開大門,導致以下技術的產(chǎn)生:盒式結構規(guī)范及設計、函數(shù)理論正確性檢驗及

3、增量開發(fā)u 第二個觀點使所有統(tǒng)計理論在軟件測試方面得到應用,導致了統(tǒng)計使用測試和質量認證u 致力于通過防止軟件缺陷來提高軟件質量u 立足于嚴格的科學理論基礎u 強調凈室小組:制定系統(tǒng)規(guī)范、開發(fā)和認證;u 基本目標是:開發(fā)過程的可管理性和使用時的無失效性u 函數(shù)理論和抽樣理論u 函數(shù)理論u 一個函數(shù)定義了從定義域到值域的映射。一個特定的程序好似定義了一個從定義域(所有可能的輸入序列的集合)到值域(所有對應于輸入的輸出集合)的映射。這樣,一個程序的規(guī)范就是一個函數(shù)的規(guī)范u 抽樣理論u 不可能對軟件的所有可能應用都進行測試。把軟件的所有可能的使用情況看作總體,通過統(tǒng)計學手段對其進行抽樣,并對樣本進行

4、測試,根據(jù)測試結果分析軟件的性能和可靠性u統(tǒng)計過程控制下的增量式開發(fā)(統(tǒng)計過程控制下的增量式開發(fā)(Incremental Development):增量是最終軟件產(chǎn)品的功能子集,系統(tǒng)功能隨時間增加u基于函數(shù)的規(guī)范、設計基于函數(shù)的規(guī)范、設計:盒子結構方法按照函數(shù)理論定義了三種抽象層次:行為視圖、有限狀態(tài)機視圖和過程視圖。u 規(guī)范從一個外部行為視圖(稱為黑盒)開始u 然后被轉化為一個狀態(tài)機視圖(稱為狀態(tài)盒)u 最后由一個過程視圖(明盒)來實現(xiàn)u 盒子結構是基于對象的u正確性驗證正確性驗證:是CSE的核心,正是由于采用了這一技術,凈室項目的軟件質量才有了極大的提高 u統(tǒng)計測試(統(tǒng)計測試(Statis

5、tically Based Testing)和軟件認證)和軟件認證:凈室測試方法采用統(tǒng)計學的基本原理,即當總體太大時必須采取抽樣的方法。首先確定一個使用模型(usage model)來代表系統(tǒng)所有可能使用的(一般是無限的)總體。然后由使用模型產(chǎn)生測試用例。因為測試用例是總體的一個隨機樣本,所以可得到系統(tǒng)預期操作性能的有效統(tǒng)計推導項目規(guī)劃、項目管理、性能改善、工程變化項目規(guī)劃、項目管理、性能改善、工程變化結構規(guī)范結構規(guī)范( 概念、模塊、執(zhí)行概念、模塊、執(zhí)行)功能規(guī)范功能規(guī)范需求分析需求分析 使用規(guī)范使用規(guī)范 增量設計、正確性驗證增量設計、正確性驗證統(tǒng)計測試、認證統(tǒng)計測試、認證 使用模型、測試規(guī)劃

6、使用模型、測試規(guī)劃增量增量 規(guī)劃規(guī)劃 用用戶戶用戶評價的用戶評價的累計規(guī)范累計規(guī)范用戶評價的用戶評價的累計認證增量累計認證增量系系統(tǒng)統(tǒng)工工程程需求需求收集收集盒結構盒結構規(guī)格規(guī)格 形式化形式化 設計設計正確性正確性驗證驗證代碼代碼檢查檢查測試計劃測試計劃 統(tǒng)計性統(tǒng)計性使用使用測試測試認證認證 需求需求 收集收集盒結構盒結構規(guī)格規(guī)格形式化形式化 設計設計正確性正確性驗證驗證代碼代碼檢查檢查測試計劃測試計劃 統(tǒng)計性統(tǒng)計性使用使用測試測試認證認證 凈室技術凈室技術- -增量開發(fā)技術增量開發(fā)技術u引用透明性原理引用透明性原理: :u一個表達式可用與其等值的任意子表達式代替一個表達式可用與其等值的任意子

7、表達式代替, ,一個給一個給定函數(shù)定函數(shù)( (規(guī)范規(guī)范)f)f能改進為如下任何一種形式能改進為如下任何一種形式do f1,f2 enddodo f1,f2 enddoif p then f1 else f2 endifif p then f1 else f2 endifwhile p do f1 enddowhile p do f1 enddou函數(shù)的合并對原函數(shù)函數(shù)的合并對原函數(shù)f f在數(shù)值影響上必須等價在數(shù)值影響上必須等價u軟件增量開發(fā)的基礎在于為程序制定數(shù)學函數(shù)規(guī)則軟件增量開發(fā)的基礎在于為程序制定數(shù)學函數(shù)規(guī)則 因此程序開發(fā)作為一種自頂向下的控制結構或子函數(shù)因此程序開發(fā)作為一種自頂向下的控

8、制結構或子函數(shù)( (子規(guī)范子規(guī)范) )的函數(shù)改進的函數(shù)改進( (規(guī)范規(guī)范) )過程過程, ,將導致將導致對象或函數(shù)的分解對象或函數(shù)的分解或結合或結合功能規(guī)范功能規(guī)范. 增量規(guī)劃增量規(guī)劃增量設計增量設計/驗證驗證 增量增量1設計設計/驗證驗證使用規(guī)范使用規(guī)范 增量測試與認證增量測試與認證 增量增量2設計設計/驗證驗證增量增量n設計設計/驗證驗證產(chǎn)品評估與過程改進產(chǎn)品評估與過程改進增量增量1統(tǒng)計統(tǒng)計增量增量1-2統(tǒng)計統(tǒng)計增量增量1-n統(tǒng)計統(tǒng)計增量開發(fā)的進度分配增量開發(fā)的進度分配增量增量1:定義頂層結構及樁組件定義頂層結構及樁組件增量增量2:根據(jù)用戶反饋根據(jù)用戶反饋,用新的可重用用新的可重用樁組件代

9、替樁組件樁組件代替樁組件 增量增量3:用新的可重用樁組件部件代替用新的可重用樁組件部件代替樁組件樁組件規(guī)范:u從一個外部視圖(黑盒)開始轉化為一個狀態(tài)視圖(狀態(tài)盒),由一個過程視圖(明盒)來實現(xiàn)u三個盒形式不同,但行為等價,稱為盒結構u將數(shù)學函數(shù)逐步擴展為邏輯連接詞(如if-then-else)和子函數(shù)構成的結構,這種擴展一直進行下去,直到所有標識出來的子函數(shù)可以用程序設計語言直接表達16u每個明盒規(guī)格說明代表了一個完成狀態(tài)盒轉換所需的過程(子函數(shù))的設計,使用結構化程序設計結構和逐步求精u在每個求精層次上,凈室團隊執(zhí)行一次形式化正確性驗證。為此,將一類正確性條件集合附加到結構化程序設計結構上

10、u如果函數(shù)f被擴展為序列g和h,則f所有輸入的正確性條件是:執(zhí)行g之后再執(zhí)行h能完成f的功能嗎?u如果一個函數(shù)p被精化為ifthen q else r的條件形式,則對p的所有輸入的正確性條件是(1)只要條件c為真,q能完成p的功能嗎?(2)只要條件c為假,r能完成p的功能嗎?u如果狀狀 態(tài)態(tài) 變換變換 狀態(tài)盒狀態(tài)盒輸入輸入S輸出輸出R精精化化過過程程驗驗證證過過程程狀態(tài)狀態(tài) BB1 BB2明盒明盒SR盒結構盒結構精化和精化和驗證驗證F=s* RRSH黑盒黑盒(所需行為所需行為)歷史激勵歷史激勵響應響應u對系統(tǒng)擁有者和用戶:黑盒定義了他們分析和協(xié)商所需的行為u對系統(tǒng)開發(fā)者:黑盒定義待設計和實現(xiàn)所

11、需的行為u對系統(tǒng)測試者:黑盒定義了在測試過程中待確認所需的行為基于基于1212個月平均銷售額的預測部分情況個月平均銷售額的預測部分情況規(guī)則號規(guī)則號 1 激勵歷史條件激勵歷史條件歷史記錄歷史記錄包含小于包含小于11個個月的月的歷史記歷史記錄至少有錄至少有11個個月的月的 響應響應 接收接收 的的 不求平均不求平均當前激勵當前激勵2 的最近的最近加上加上當前的當前的后求平均后求平均對系統(tǒng)或其組件進行初步細化;定義狀態(tài)空間狀態(tài)信息來自黑盒中需要保存的激勵元素變換當前的激勵S (Stimulus) 映射響應R (Response)舊狀態(tài)OS (old State )映射到新狀態(tài)NS (new Stat

12、e) 即 (OS,S) (NS,R) 銷售額情況表銷售額情況表規(guī)則號規(guī)則號 舊狀態(tài)舊狀態(tài) 激勵激勵 新狀態(tài)新狀態(tài) 響應響應 黑盒規(guī)則號黑盒規(guī)則號不含不含記錄記錄 1在在中中為為增加記增加記錄出現(xiàn)最新錄出現(xiàn)最新收到收到的的但但不能求平均值不能求平均值121中中包含的包含的記記錄少于錄少于11個月個月 記錄己記錄己在在中中,把把作為最新作為最新收到收到的的但不能求平但不能求平均值均值明盒(清晰盒)是一個計算機程序或程序集將 (OS,S) (NS,R),借助過程實現(xiàn)明盒的過程可以重用己有的黑盒或在求精過程中引入新的黑盒明盒的正確性驗證是基于數(shù)學方法,證實一個過程與其規(guī)范相符黑盒黑盒狀態(tài)盒狀態(tài)盒白盒白

13、盒黑盒狀態(tài)盒明盒黑盒狀態(tài)盒明盒黑盒狀態(tài)盒明盒u 引用透明性(Referential Transparency) 明確組件所有需求,在邏輯上不需進一步規(guī)范u 事務閉包(Transaction Closure) 事務是充分、足夠的、可獲得及保留所有狀態(tài)數(shù)據(jù)u 狀態(tài)遷移(State Migration) 系統(tǒng)數(shù)據(jù)應該遷移和封裝到最小的系統(tǒng)部分,不必復制更新u 共享服務(Common Services) 對于多次用到的系統(tǒng)部分可定義共享服務,創(chuàng)建重用機會 當測試的規(guī)模太大時,要采取抽樣方法,選擇一個模型(馬爾可夫模型、形式化語言等)代替使用的規(guī)模,然后用模型產(chǎn)生測試用例(測試用例是規(guī)模的一個隨機樣本)

14、,可以得到系統(tǒng)預期操作性能的有效統(tǒng)計推導 統(tǒng)計使用測試等同于“以用戶試圖使用軟件的方式來測試軟件”。為了完成測試工作,凈室測試團隊必須確定軟件的使用概率分布,按照使用概率為每個觸發(fā)集合生成測試用例 (1) 定義系統(tǒng)需求 (2) 確定和確認黑盒 (激勵) (響應) (3) 確定和驗證狀態(tài)盒 (狀態(tài),激勵) (新狀態(tài),響應) (4) 設計和驗證明盒 (5) 對新黑盒重復上述過程27u 設計并驗證一個小的程序,該程序對某給定的整數(shù)x,找出其平方根的整數(shù)部分y28u定義入口和出口條件。為了證明設計的正確性,需要證明圖中表示的條件init、loop、cont、yes和exit在所有情形下都是正確的29u

15、條件init:假定入口條件是正確的,因此,init條件的第一部分x0 是滿足的,在流程圖中,init條件前的語句設置為y=0,因此,init條件的第二部分也是滿足的,因此,init為真u條件loop可能以兩種方式之一出現(xiàn)(1)直接從init(滿足)或(2)通過穿過cont的控制流,因為條件cont與loop相同。無論從哪條路徑到達,條件loop都為真u條件cont:如果(y+1)2 x,則y2 x,條件成立u條件yes在條件邏輯中被測試,一定為真ux為被賦值或修改,保持不變,測試條件(y+1)2 x不成立時才能到達exit,因此(y+1)2 x,loop條件必須為真,因此exit滿足uy遞增而

16、x不變,循環(huán)一定終止u CMM是軟件組織進行軟件過程改進以及評估和評價軟件能力的基準。但在具體的過程改進實施中,需要有效的軟件工程方法支持u 凈室軟件工程正是為過程改進提供了具體實施方法,它能夠及早發(fā)現(xiàn)并消除缺陷,顯著提高軟件的正確性、可靠性和可理解性,降低項目的成本,提高軟件質量,延長軟件的生命周期u可將凈室軟件工程應用到CMM的實踐中,從組織管理和技術工程實踐兩個方面改進軟件過程,從而更加經(jīng)濟有效地提升軟件質量u在CMM中,關鍵實踐僅僅描述了應該“做什么”,并沒有給出更沒有規(guī)定“如何”去具體操作,操作的方法和步驟必須由軟件組織自己去解決uCMM只是對軟件組織過程改進的指導,而非解決一切軟件

17、開發(fā)過程中的問題的法寶。在實施CMM的過程中,仍然需要有效的軟件工程技術和方法,如“凈室軟件工程”方法的支持基于基于CMM的凈室裁剪的凈室裁剪u由于凈室過程和技術的優(yōu)點以及在軟件企業(yè)中實施所遇到的困難,有必要對凈室進行基于CMM的裁剪基于基于CMM的裁剪原則的裁剪原則u裁剪必須符合凈室的基本原則(是凈室區(qū)別于傳統(tǒng)軟件工程方法的關鍵)u設計原則:開發(fā)人員應該并且能夠生產(chǎn)出在被測試前就已經(jīng)達到趨于零缺陷的產(chǎn)品u測試原則:凈室測試的目的不是尋找缺陷,而是度量軟件產(chǎn)品的質量和性能,為軟件過程的改進提供統(tǒng)計數(shù)據(jù)u必須結合軟件組織自身的能力成熟度現(xiàn)狀。自身軟件能力不同,過程改進的主要目標也不相同u必須結合

18、所開發(fā)軟件的類型基于凈室的裁剪方法基于凈室的裁剪方法u引入凈室的三個階段u初始階段:首先要引入凈室小組開發(fā)的組織模式和質量控制下的增量式生命周期模型,將開發(fā)與測試分離,建立起基本項目過程。結合自身能力,引入形式化程度較低的黑盒規(guī)范與驗證方法u中級階段:加入更多必須的管理規(guī)范,明確定義自身的軟件過程。同時引入比較形式化的凈室規(guī)范和驗證技術,進一步降低開發(fā)階段的缺陷率,提高軟件生產(chǎn)率。并根據(jù)需要進行有限的統(tǒng)計測試u高級階段:引入凈室統(tǒng)計測試技術,很好地實現(xiàn)對質量和性能的量化,為高層的決策提供可靠的數(shù)據(jù)依據(jù)針對凈室技術形式化程度的裁剪針對凈室技術形式化程度的裁剪(1) 對盒式規(guī)范技術的裁剪:u黑盒規(guī)

19、范對系統(tǒng)的外部可見行為做一個完整的定義,隱藏了軟件設計和實現(xiàn)的所有細節(jié),適用于軟件開發(fā)的任何粒度中。規(guī)范的描述形式可以不同:自然語言、半形式化的規(guī)范語言、而嚴格的函數(shù)表達方法u狀態(tài)盒規(guī)范是對系統(tǒng)內部數(shù)據(jù)的描述,它的實現(xiàn)形式依賴于黑盒規(guī)范u明盒規(guī)范是對黑盒與狀態(tài)盒逐步求精的實現(xiàn),最終形式便是源代碼。既可以是結構化的,也可以是面向對象的,不受開發(fā)方法和語言的限制針對凈室技術形式化程度的裁剪針對凈室技術形式化程度的裁剪(2) 對盒式規(guī)范驗證技術的裁剪:驗證過程基于非執(zhí)行的測試方法尋找并消除開發(fā)階段的缺陷。因盒式規(guī)范的形式化不同,驗證方法也有相應變化。u檢查方法簡單易行,但是不夠嚴格,基于潛在錯誤清單

20、的審查方法有規(guī)范的步驟,是一種經(jīng)濟有效的錯誤檢測方法u基于函數(shù)理論的正確性證明,要求在盒式規(guī)范過程中,建立明確的預期函數(shù),這就要求盒式規(guī)范本身的形式化程度較高,此外要求評審人員有相應的數(shù)學知識和專用CASE工具的支持(3) 對統(tǒng)計測試技術的裁剪:規(guī)范和驗證階段采用的技術都不嚴格時,更需測試過程來保證產(chǎn)品發(fā)布前的低缺陷,以減少產(chǎn)品的維護費用針對凈室技術形式化程度的裁剪針對凈室技術形式化程度的裁剪uCMM與凈室技術都不是萬能的。CMM提出的是完整的軟件開發(fā)和管理的過程,而凈室更多的是技術方面的支持。兩者相互一致并相互補充。將二者合理地結合,能夠獲得更高的軟件質量、更低的開發(fā)成本,更高的生產(chǎn)效率和更長的軟件生命周期凈室過程的優(yōu)點凈室過程的優(yōu)點特點小組開發(fā)的組織模式統(tǒng)計控制下的增量開發(fā)開發(fā)與測試并行進行所起作用 1)降低人員間的通信和協(xié)調2)減少對權威的依賴3)提高團隊的開發(fā)能力4)小組評審盡早發(fā)現(xiàn)缺陷并顯著降低成本1)開發(fā)過程可預測2)開發(fā)進度可見3)開發(fā)在智能控制下易于適應需求的變化,促進持續(xù)的求精1)開發(fā)階段就完成預防缺陷和修正缺陷的工作2)測試過程完全從用戶使用角度出發(fā)3)重視質量的度量與反饋u CSE太理論化,需要更多的數(shù)學知識。其正確性驗證的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論