




版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
軟件需求的質量保證2006.1Luo_yanjing@150軟件需求的質量保證150軟件需求的質量保證軟件的質量屬性軟件需求質量保證250軟件需求的質量保證軟件的質量屬性250軟件的質量屬性350軟件的質量屬性350軟件的質量屬性質量屬性是很難定義的真正的現(xiàn)實系統(tǒng)中,在決定系統(tǒng)的成功或失敗的因素中,滿足非功能需求往往比滿足功能需求更為重要。如果開發(fā)者知道哪些特性對項目的成功至關重要,那么他們就能選擇軟件工程方法來達到特定的質量目標450軟件的質量屬性質量屬性是很難定義的450質量屬性分類根據(jù)不同的設計可以把質量屬性分類一種屬性分類的方法是把在運行時可識別的特性與那些不可識別的特性區(qū)分開另一種方法是把對用戶很重要的可見特性與對開發(fā)者和維護者很重要的不可見特性區(qū)分開550質量屬性分類根據(jù)不同的設計可以把質量屬性分類550每個項目都要考慮軟件質量屬性對用戶最重要的屬性有效性(availability)
高效性(efficiency)
靈活性(flexibility)完整性(integrity)
互操作性(interoperability)可靠性(reliability)健壯性(robustness)可用性(usability)對開發(fā)者最重要的屬性可維護性(maintainability)可移植性(portability)可重用性(reusability)可測試性(testability)650每個項目都要考慮軟件質量屬性對用戶最重要的屬性對開發(fā)者最重定義質量屬性必須根據(jù)用戶對系統(tǒng)的期望來確定質量屬性。定量地確定重要屬性提供了對用戶期望的清晰理解,有助于設計者提出最合理的解決方案750定義質量屬性必須根據(jù)用戶對系統(tǒng)的期望來確定質量屬性。750定義質量屬性的方法想出對于不同的用戶類可能很重要的屬性,并根據(jù)每一個屬性設計出許多問題。利用這些問題詢問每一個用戶類的代表,這些問題的回答有助于分析員決定哪些質量特性用作設計標準是最重要的??梢园衙總€屬性分成一級(不必多加考慮的屬性)到五級(極其重要的屬性)。850定義質量屬性的方法想出對于不同的用戶類可能很重要的屬性,并定義質量屬性的方法分析員與用戶一起為每一屬性確定特定的、可測量的和可驗證的需求。如果質量目標不可驗證,那么就說不清你是否達到這些目標。在合適的地方為每一個屬性或目標指定級別或測量單位,以及最大和最小值。如果不能定量地確定某些對你的項目很重要的屬性,那么至少應該確定其優(yōu)先級。950定義質量屬性的方法分析員與用戶一起為每一屬性確定特定的、可定義質量屬性的方法另一個定義屬性的方法是確定任何與質量期望相沖突的系統(tǒng)行為。通過定義一種反向需求,可以設計出強制系統(tǒng)表現(xiàn)出那些行為的測試用例。如果不能強制系統(tǒng),那么你可能達到了你的屬性目標。這種方法最適用于要求安全性能很高的應用程序,在這些應用程序中,系統(tǒng)的差錯可能會導致致命危險。1050定義質量屬性的方法另一個定義屬性的方法是確定任何與質量期望相1.有效性有效性指的是在預定的啟動時間中,系統(tǒng)真正可用并且完全運行時間所占的百分比。更正式地說,有效性等于系統(tǒng)的平均故障時間(MTTF)除以平均故障時間與故障修復時間之和。一個有效性需求可能這樣說明:"工作日期間,在當?shù)貢r間早上6點到24點,系統(tǒng)的有效性至少達到99.5%,在14點到18點,系統(tǒng)的有效性至少可達到99.95%。11501.有效性有效性指的是在預定的啟動時間中,系統(tǒng)真正可用并且完2.效率效率是用來衡量系統(tǒng)如何優(yōu)化處理器、磁盤空間或通信帶寬的。如果系統(tǒng)用完了所有可用的資源,那么用戶遇到的將是性能的下降,這是效率降低的一個表現(xiàn),拙劣的系統(tǒng)性能可能激怒等待數(shù)據(jù)庫查詢結果的用戶,或者可能對系統(tǒng)安全性造成威脅。就像一個實時處理系統(tǒng)超負荷一樣。為了在不可預料的條件下允許安全緩沖,你可以這樣定義:"在預計的高峰負載條件下,10%處理器能力和15%系統(tǒng)可用內(nèi)存必須留出備用。"在定義性能、能力和效率目標時,考慮硬件的最小配置是很重要的。12502.效率效率是用來衡量系統(tǒng)如何優(yōu)化處理器、磁盤空間或通信帶寬3.靈活性靈活性就像我們所知道的可擴充性、增加性、可延伸性和可擴展性一樣,靈活性表明了在產(chǎn)品中增加新功能時所需工作量的大小。靈活性對于通過一系列連續(xù)的發(fā)行版本,并采用漸增型和重復型方式開發(fā)的產(chǎn)品是很重要的。實例:“一個至少具有6個月產(chǎn)品支持經(jīng)驗的軟件維護程序員可以在4個小時之內(nèi)為系統(tǒng)添加一個新格式的打印報表。"13503.靈活性靈活性就像我們所知道的可擴充性、增加性、可延伸性和4.完整性(或安全性)完整性(或安全性)主要涉及:防止非法訪問系統(tǒng)功能、防止數(shù)據(jù)丟失、防止病毒入侵并防止私人數(shù)據(jù)進入系統(tǒng)。完整性的需求不能犯任何錯誤,即數(shù)據(jù)和訪問必須通過特定的方法完全保護起來。用明確的術語陳述完整性的需求,如身份驗證、用戶特權級別、訪問約束或者需要保護的精確數(shù)據(jù)。一個完整性的需求樣本可以這樣描述:"只有擁有查賬員訪問特權的用戶才可以查看客戶交易歷史。"14504.完整性(或安全性)完整性(或安全性)主要涉及:防止非法訪5.互操作性互操作性表明了產(chǎn)品與其它系統(tǒng)交換數(shù)據(jù)和服務的難易程度。為了評估互操作性是否達到要求的程度,必須知道用戶使用其它哪一種應用程序與你的產(chǎn)品相連接,還要知道他們要交換什么數(shù)據(jù)。15505.互操作性互操作性表明了產(chǎn)品與其它系統(tǒng)交換數(shù)據(jù)和服務的難易6.可靠性可靠性是軟件無故障執(zhí)行一段時間的概率(健壯性和有效性有時可看成是可靠性的一部分)。衡量軟件可靠性的方法包括正確執(zhí)行操作所占的比例,在發(fā)現(xiàn)新缺陷之前系統(tǒng)運行的時間長度和缺陷出現(xiàn)的密度。根據(jù)如果發(fā)生故障對系統(tǒng)有多大影響和對于最大的可靠性的費用是否合理,來定量地確定可靠性需求。如果軟件滿足了它的可靠性需求,那么即使該軟件還存在缺陷,也可認為達到其可靠性目標。16506.可靠性可靠性是軟件無故障執(zhí)行一段時間的概率(健壯性和有效7.健壯性健壯性指的是當系統(tǒng)或其組成部分遇到非法輸入數(shù)據(jù)、相關軟件或硬件組成部分的缺陷或異常的操作情況時,能繼續(xù)正確運行功能的程度。健壯的軟件可以從發(fā)生問題的環(huán)境中完好地恢復并且可容忍用戶的錯誤。當從用戶那里獲取健壯性的目標時,詢問系統(tǒng)可能遇到的錯誤條件并且要了解用戶想讓系統(tǒng)如何響應。定義實例:所有的輸入?yún)?shù)都要指定一個缺省值,當輸入數(shù)據(jù)丟失或無效時,就使用缺省值數(shù)據(jù)。17507.健壯性健壯性指的是當系統(tǒng)或其組成部分遇到非法輸入數(shù)據(jù)、相8.可用性(易用性)可用性也稱為易用性,它所描述的是許多組成用戶友好的因素。可用性衡量用戶準備輸入、操作和理解產(chǎn)品輸出所花費的努力。可用性的討論可以得出可測量的目標,例如“一個培訓過2小時的用戶應該可以在平均3分鐘或最多5分鐘時間以內(nèi),完成從供應商目錄中請求一種商品的操作。"18508.可用性(易用性)可用性也稱為易用性,它所描述的是許多組成9.可維護性可維護性表明了在軟件中糾正一個缺陷或做一次更改的簡易程度??删S護性取決于理解軟件、更改軟件和測試軟件的簡易程度,可維護性與靈活性密切相關。高可維護性對于那些經(jīng)歷周期性更改的產(chǎn)品或快速開發(fā)的產(chǎn)品很重要。你可以根據(jù)修復一個問題所花費的平均時間和修復正確的百分比來衡量可維護性。例:對于現(xiàn)有報表的更改操作必須在一周內(nèi)完成。19509.可維護性可維護性表明了在軟件中糾正一個缺陷或做一次更改的10.可移植性可移植性是度量把一個軟件從一種運行環(huán)境轉移到另一種運行環(huán)境中所花費的工作量。軟件可移植的設計方法與軟件可重用的設計方法相似??梢浦残詫τ诠こ痰某晒κ遣恢匾?對工程的結果也無關緊要。205010.可移植性可移植性是度量把一個軟件從一種運行環(huán)境轉移到另11.可重用性從軟件開發(fā)的長遠目標上看,可重用性表明一個軟件組件除了在最初開發(fā)的系統(tǒng)中使用之外,還可以在其它應用程序中使用的程度。比起創(chuàng)建一個你打算只在一個應用程序中使用的組件,開發(fā)可重用軟件的費用會更大些。可重用軟件必須標準化、資料齊全、不依賴于特定的應用程序和運行環(huán)境,并具有一般性。215011.可重用性從軟件開發(fā)的長遠目標上看,可重用性表明一個軟件12.可測試性可測試性指的是測試軟件組件或集成產(chǎn)品時查找缺陷的簡易程度。如果產(chǎn)品中包含復雜的算法和邏輯,或如果具有復雜的功能性的相互關系,那么對于可測試性的設計就很重要。如果經(jīng)常更改產(chǎn)品,那么可測試性也是很重要的,因為將經(jīng)常對產(chǎn)品進行回歸測試來判斷更改是否破壞了現(xiàn)有的功能性。225012.可測試性可測試性指的是測試軟件組件或集成產(chǎn)品時查找缺陷屬性的取舍有時,不可避免地要對一些特定的屬性對進行取舍。用戶和開發(fā)者必須確定哪些屬性比其它屬性更為重要,并定出優(yōu)先級。質量屬性之間一些典型的相互關系單元格中的加號表明單元格所在行的屬性增加了對其所在列的屬性的積極影響。單元格中的減號表明單元格所在行的屬性增加了對其所在列的屬性的不利影響。2350屬性的取舍有時,不可避免地要對一些特定的屬性對進行取舍。用有效性高效性靈活性完整性互操作性可維護性可移植性可靠性可重用性健壯性可測試性可用性可用性可測試性健壯性可重用性可靠性可移植性可維護性互操作性完整性靈活性高效性有效性++++--------------------+++++++++++-------+++++++++--++++++++++++質量屬性之間典型的相互關系
+積極影響-不利影響2450有效性++++--------------------+++屬性的取舍為了達到產(chǎn)品特性的最佳平衡,必須在需求獲取階段識別、確定相關的質量屬性,并且為之確定優(yōu)先級。當為項目定義重要的質量屬性時,利用質量屬性之間一些典型的相互關系圖可以防止發(fā)生與目標沖突的行為。2550屬性的取舍為了達到產(chǎn)品特性的最佳平衡,必須在需求獲取階段識別軟件需求質量保證2650軟件需求質量保證2650八個需求質量屬性正確的需求無歧義完整性一致性可驗證可修改可跟蹤可理解性2750八個需求質量屬性正確的需求27501.正確的需求一個SRS(需求集)是正確的,當且僅當其中每條需求都代表了要構造系統(tǒng)所要完成的事物。只是簡單地在文檔中寫一些信息是不能保證正確的,任何自動設計工具也不能保證正確。28501.正確的需求一個SRS(需求集)是正確的,當且僅當其中每需要和需求的全域在一個軟件項目中經(jīng)常發(fā)生的是遺漏區(qū)域A表示的信息,意外地把C區(qū)域表示的信息包括進來。區(qū)域C中所代表的信息可能是設計和實現(xiàn)細節(jié),但也可能包含用戶沒有要求的需求。用戶需要的全域A正確的需求B需求C2950需要和需求的全域在一個軟件項目中經(jīng)常發(fā)生的是遺漏區(qū)域A表示的正確需求的保證學習軟件項目的領域知識由領域專家和用戶參加需求工作經(jīng)常與用戶進行溝通掌握一定的需求獲取和分析的方法和技術具備經(jīng)驗證的需求結構框架執(zhí)行基本的需求過程3050正確需求的保證學習軟件項目的領域知識30502.無歧義的需求如果項目開發(fā)人員、用戶以及其他風險承擔人對一條需求有不同的解釋,那么需求可能是有二義性的。只要需求是用自然語言書寫的,二義性就會存在。31502.無歧義的需求如果項目開發(fā)人員、用戶以及其他風險承擔人對無歧義需求的保證無歧義需求保證的唯一方法是對每項需求編寫驗收標準。驗收標準是對需求的量化,是需求的度量方式。只要有可能驗收標準就使用數(shù)字而不是單詞來表達需求。驗收標準是需求的度量方式,它使測試者能夠確定提交的產(chǎn)品是否滿足需求,不會引起任何主觀的判斷。不同類型的驗收標準使用不同的度量尺度和度量方法并且包括業(yè)務允許的誤差范圍。3250無歧義需求的保證無歧義需求保證的唯一方法是對每項需求編寫驗收3.需求集的完整性需求集完整的描述了用戶關心的所有有意義的需求,包括與功能、性能、設計約束、屬性或外部接口有關的需求,還必須為需求集中所有的插圖、表和圖以及所有名詞和度量單元的定義提供完整的引用和標記。33503.需求集的完整性需求集完整的描述了用戶關心的所有有意義的完整性的保證完整性的保證需要有一個需求集框架(模板),它使得收集所有的需求組成部分以得到完整的需求集變的比較容易。需求集框架是需求項集合的一個容器,框架確定了需求集和需求項的組成部分,可以使用該框架來幫助檢查需求集和需求項是否完整。3450完整性的保證完整性的保證需要有一個需求集框架(模板),它使得基于用例的需求集完整性框架
3550基于用例的需求集完整性框架35504.需求集的一致性需求集是內(nèi)在一致的當且僅當其中沒有單個需求的子集與另一個子集沖突(IEEE830·1993)。沖突可以有多種形式而且在多種細節(jié)程度上可見。開發(fā)人員和非開發(fā)人員的手工評審是必要的,能夠找到潛在的沖突。36504.需求集的一致性需求集是內(nèi)在一致的當且僅當其中沒有單個需需求集非一致性的例子例如"當X發(fā)生時,執(zhí)行動作P",但需求的另一部分可能說"當X發(fā)生時,執(zhí)行動作Q"。有時,一個問題是沖突還是歧義性很難區(qū)分開。例如,在工資系統(tǒng)的需求的一部分可能會說“所有65歲以上的員工在年末應該得到1000元的獎勵”,需求的另一部分可能會說“所有有10年以上工作經(jīng)歷的人在年未應得到500元的獎勵"。那么對同時滿足這兩個條件的員工應該怎么辦?3750需求集非一致性的例子例如"當X發(fā)生時,執(zhí)行動作P",但需求的保證一致性的方法為了指定只能以一種方式理解需求需要做兩件事:在規(guī)格說明書中對使用的術語進行定義,對它們的含義進行說明(詞匯術語表)。檢查每項需求使用術語的方式都與它們的定義相符。3850保證一致性的方法為了指定只能以一種方式理解需求需要做兩件事:5.可驗證的需求需求必須是可驗證的或“可測試的”?!翱沈炞C的或可測試的”需要合理的定義良好的無歧義的需求。如果需求是不可驗證的,則說明需求尚不明確,同時意味著缺乏開發(fā)依據(jù),確認缺乏標準。驗收標準和驗證項有一定的區(qū)別,驗收標準用于確認提交的軟件最終產(chǎn)品,驗證項用于確認需求。39505.可驗證的需求需求必須是可驗證的或“可測試的”。3950可驗證需求的保證可驗證需求保證的唯一方法是對每項需求編寫足夠的驗證項并由用戶參加對驗證進行評審。4050可驗證需求的保證可驗證需求保證的唯一方法是對每項需求編寫足夠實例系統(tǒng)響應任意查詢的時間應該小于500毫秒要根據(jù)‘任意’一詞的具體含義來定。如果可能查詢的范圍是有限的,并且如果能確定最復雜的查詢,就能驗證系統(tǒng)的行為。4150實例系統(tǒng)響應任意查詢的時間應該小于500毫秒4150無法驗證和測試的需求時間的顯示應該把數(shù)字顯示得漂亮一些。系統(tǒng)應該是用戶友好的。如何對上述兩條需求進行驗證?4250無法驗證和測試的需求時間的顯示應該把數(shù)字顯示得漂亮一些。426.可修改的需求集需求集的結構和風格可以對其中任一需求的變更很容易地、完整地、一致地進行,同時保持己存在的需求集的結構和風格。43506.可修改的需求集需求集的結構和風格可以對其中任一需求的變可修改需求集的保證開發(fā)團隊統(tǒng)一的需求開發(fā)框架、標準、規(guī)范和模板。要求包含需求的包具有最小的冗余并且以恰當?shù)哪夸?、索引以及交叉引用的能力。開發(fā)團隊統(tǒng)一的需求開發(fā)平臺和集成工具。4450可修改需求集的保證開發(fā)團隊統(tǒng)一的需求開發(fā)框架、標準、規(guī)范和模7.可跟蹤的需求從最初提出需求到最后需求的實現(xiàn)成為提交的工作產(chǎn)品,要經(jīng)歷許多階段,每個階段都是一種轉換。在轉換過程中需求做為一種知識和信息,有可能因為開發(fā)人員的誤解造成知識和信息的失真和衰減。能夠把最初的需求與最后提交的產(chǎn)品中實現(xiàn)該需求的部分聯(lián)系起來是很重要的。45507.可跟蹤的需求從最初提出需求到最后需求的實現(xiàn)成為提交的工作可跟蹤的需求如果需求是可跟蹤的,那么當更改發(fā)生時,找出產(chǎn)品的哪些部分將受到更改的影響就更容易。確保需求可跟蹤性意味著可以設計出最有效的方式來進行更改。4650可跟蹤的需求如果需求是可跟蹤的,那么當更改發(fā)生時,找出產(chǎn)品跟蹤性的保證為了確認每項需求是可追蹤的,必須具備:唯一的需求標識需求或限制類型的說明該需求所屬的所有業(yè)務事件和用例的引用對其它有沖突需求的引用對該需求有某種更改影響的相關需求的引用一致的使用術語(用引用的方法使用術語)4750跟蹤性的保證為了確認每項需求是可追蹤的,必須具備:47508.可理解的需求用戶和開發(fā)人員都能完全理解單個需求和需求集包含的全部功能。當我們細化系統(tǒng)定義即產(chǎn)生詳細需求時,各種描述更加明確和詳細寫需求的人必須理解所有讀者的專業(yè)詞匯、術語和文化。需求集的用戶是否能從整體上理解系統(tǒng)的行為也非常重要??梢酝ㄟ^提供場景或說明性用例展示系統(tǒng)在運行環(huán)境的使用來實現(xiàn)。48508.可理解的需求用戶和開發(fā)人員都能完全理解單個需求和需求集可理解性的保證構造對于不同涉眾理解的四種模型:業(yè)務模型面向客戶和用戶的模型(企事業(yè)過程模型EPMS)需求模型面向客戶和分析人員的模型(用例模型+驗證模型)分析模型面向設計人員的模型(靜態(tài)和動態(tài)模型)設計模型面向實現(xiàn)人員的模型(詳細設計模型)4950可理解性的保證構造對于不同涉眾理解的四種模型:4950END北京航空航天大學軟件工程研究所羅燕京Luo_yanjing@5050END北京航空航天大學軟件工程研究所50501、有時候讀書是一種巧妙地避開思考的方法。9月-239月-23Monday,September4,20232、閱讀一切好書如同和過去最杰出的人談話。12:2
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 地埂黃花施工方案
- 吉林大型溫室工程施工方案
- 疫情期間保障工程施工方案
- 云南石雕八角亭施工方案
- 甘肅移動式u型渠施工方案
- 都勻換熱器機組施工方案
- 鶴壁硅pu籃球場施工方案
- 同花順:2024年年度財務報告
- 2025年銅及銅合金材合作協(xié)議書
- 通風管道改造施工方案
- 2025年濟源職業(yè)技術學院單招職業(yè)技能測試題庫學生專用
- 《金融市場分析方法》課件
- 卵巢癌的篩查:如何進行卵巢癌的早期篩查
- 2025年南網(wǎng)數(shù)字集團公開選聘高頻重點模擬試卷提升(共500題附帶答案詳解)
- 5G基站建設的審批流程與標準
- 西門子S7-1200 PLC應用技術項目教程(第3版) 考試復習題
- 人工智能在招聘行業(yè)的應用
- 課件:《科學社會主義概論(第二版)》第一章
- 虛擬現(xiàn)實環(huán)境中視覺體驗優(yōu)化
- 班組長安全管理培訓課件
- 2025年新疆生產(chǎn)建設兵團興新職業(yè)技術學院高職單招語文2018-2024歷年參考題庫頻考點含答案解析
評論
0/150
提交評論