基于序列的規(guī)范過程 |
未經(jīng)允許,嚴(yán)禁轉(zhuǎn)載本欄目內(nèi)容 |
本文經(jīng)許可轉(zhuǎn)載自軟件工程專家網(wǎng) www.21cmm.com , |
規(guī)范制定有很多方法。基于順序的規(guī)范是指逐步構(gòu)造出完備、一致和正確的黑盒和狀態(tài)盒規(guī)范的過程。本節(jié)討論的就是這種方法。
在基于序列的規(guī)范過程中,按嚴(yán)格順序系統(tǒng)地舉出所有可能的激勵(歷史激勵)序列,如按長度0、1、2……排列。因為每個序列映射至其正確的響應(yīng),所以可通過應(yīng)用歸約規(guī)則辨識等價序列,當(dāng)完備和一致地定義了系統(tǒng)以后枚舉過程結(jié)束。
基于Mills(1975)、Pamas(1992)、Mao(1993)Drowell(1996)和 Poore(Prowell和Poore,1998)的工作,基于序列的規(guī)范產(chǎn)生了明顯的問題,軟件使用的各種情況的組合產(chǎn)生的用例個數(shù)是天文數(shù)字。通過序列枚舉,開發(fā)人員考慮系統(tǒng)激勵的所有排列和組合。每種序列代表一種使用場景。在逐步枚舉過程中,要區(qū)別可能的場景和不可能的場景,計劃中的使用和錯誤的使用,可規(guī)約的序列和不可規(guī)約的序列。這些不可規(guī)約的序列(稱為典型序列)是軟件行為的精確規(guī)范的基礎(chǔ),這種精確是指數(shù)學(xué)意義上的完備性、一致性和可追蹤正確性。
序列書面枚舉提供了完備性的直接驗證。能按序列的從小到大的長度(1,2,3……)逐一驗證激勵的所有組合和排列是否已映射到一個響應(yīng)。
序列順序枚舉保證了任何所給使用場景只出現(xiàn)一次。和完備性一樣,一致性也是枚舉的直接的推論。
基于序列的規(guī)范的每一元素都可追溯到最初的需求。如果一個序列的正確響應(yīng)在需求中找不到,那么必須澄清所期望的行為并修改需求。
基于序列的規(guī)范工作流程以連續(xù)方式對掌握需求分析、黑盒規(guī)范、狀態(tài)盒規(guī)范方面提供了自動支持的可能性。其步驟在下面的小節(jié)中作簡要說明。 黑盒定義
加上標(biāo)簽的需求。將需求加上標(biāo)簽序號用于驗證后續(xù)工作產(chǎn)品的每一要素的正確性。有條理的順序枚舉過程可暴露出需求的含糊不清或遺漏的地方。在基于序列的規(guī)范中得到清晰的需求是很自然的事。
勵和響應(yīng)的標(biāo)識始于最基本層次。進一步考慮(可能包括初期枚舉)后常用抽象這種方法來簡化枚舉進程。
順序枚舉。將所有序列的排列組合按長度順序列舉。對每個序列進行檢查時,完成如下評價工作:
1. 不可能的序列(如在系統(tǒng)啟動之前的激勵)標(biāo)上"非法"。任何非法序列的擴展仍是非法的,所以標(biāo)有"非法"的序列在列舉時不再擴展。
2. 對應(yīng)于需求,對每個序列的正確響應(yīng)要記錄歸檔。如果沒有需求與之對應(yīng),要記下一個導(dǎo)出需求。導(dǎo)出需求代表假設(shè)或解釋,所以必須和原來的需求一起進行確認(rèn)。
3. 如果兩個序列對未來激勵的響應(yīng)是一樣的,則稱它們是等價的。既然兩個等價序列的擴展對應(yīng)同樣的行為,就沒有必要都擴展,只需將較短的進行擴展。
當(dāng)一個給定長度的所有序列或者非法或者和先前的序列等價時,就停止枚舉。
完全的枚舉表示數(shù)學(xué)上完備的、一致的和可驗證正確的黑盒規(guī)范。因為每一個序列映射到一個響應(yīng),所以規(guī)范是完備的;因為每個序列只對應(yīng)一個響應(yīng),所以規(guī)范是一致的。由領(lǐng)域?qū)<胰ヲ炞C其正確性,每序列對應(yīng)的行為追溯到需求正好是所需的行為,則驗證了正確性。
典型序列分析。枚舉中的合法的不與任何先前序列等價的序列,稱為典型序列。典型序列代表了系統(tǒng)使用的獨一無二的情況,對于給定抽象層次的黑盒子,對典型序列的分析將產(chǎn)生系統(tǒng)的狀態(tài)空間。
在典型序列分析中,用變量來封裝每一激勵序列的條件。這些變量可視為系統(tǒng)的狀態(tài)數(shù)據(jù)。對相關(guān)變量的典型序列進行檢查可得到每個變量的范圍。對每一典型序列,變量值的組合是惟一的。這使得在分析完成時典型序列都是不相交的。 狀態(tài)盒定義
黑盒規(guī)范中每一序列可看作是個元組(當(dāng)前的激勵、以前的激勵)。黑盒中位于每個序列上的以前的激勵事實上是典型序列。基于這一點,制定系統(tǒng)的狀態(tài)盒子規(guī)范只是一個裝配的事。可將每個合法的黑盒映射(序列→響應(yīng))替換成狀態(tài)盒映射(當(dāng)前激勵、狀態(tài)→響應(yīng)、狀態(tài)更新)。狀態(tài)盒可以自動從黑盒生成,如果借助認(rèn)證工具生成,則無需再驗證。
狀態(tài)盒的最后形式是一系列映射表的集合,每個激勵對應(yīng)一個映射表。映射表的格式如下圖所示。
狀態(tài)盒規(guī)范是規(guī)范的最后產(chǎn)品。在從狀態(tài)盒細(xì)化到明盒子的過程中將繼續(xù)用到凈室盒子結(jié)構(gòu)規(guī)范和設(shè)計方法。在明盒中將進行完整的過程設(shè)計。 |
Trackback: http://tb.blog.csdn.net/TrackBack.aspx?PostId=2262
更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯(lián)系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
