軟件質(zhì)量模型_第1頁
軟件質(zhì)量模型_第2頁
軟件質(zhì)量模型_第3頁
軟件質(zhì)量模型_第4頁
軟件質(zhì)量模型_第5頁
已閱讀5頁,還剩41頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、1 雖然有許多產(chǎn)品特性可以稱為質(zhì)量屬性雖然有許多產(chǎn)品特性可以稱為質(zhì)量屬性(Quality Attribute),但是在許多系統(tǒng)中需要認(rèn)真考慮的僅是,但是在許多系統(tǒng)中需要認(rèn)真考慮的僅是其中的一小部分。如果開發(fā)者知道哪些特性對項(xiàng)目其中的一小部分。如果開發(fā)者知道哪些特性對項(xiàng)目的成功至關(guān)重要,那么他們就能選擇軟件工程方法的成功至關(guān)重要,那么他們就能選擇軟件工程方法來達(dá)到特定的質(zhì)量目標(biāo)。根據(jù)不同的設(shè)計(jì)可以把質(zhì)來達(dá)到特定的質(zhì)量目標(biāo)。根據(jù)不同的設(shè)計(jì)可以把質(zhì)量屬性分類。一種屬性分類的方法是把在運(yùn)行時(shí)可量屬性分類。一種屬性分類的方法是把在運(yùn)行時(shí)可識別的特性與那些不可識別的特性區(qū)分開。識別的特性與那些不可識別的特

2、性區(qū)分開。另一種方法是把對用戶很重要的可見特性與對開發(fā)另一種方法是把對用戶很重要的可見特性與對開發(fā)者和維護(hù)者很重要的不可見特性區(qū)分開。者和維護(hù)者很重要的不可見特性區(qū)分開。那些對開發(fā)者具有重要意義的屬性使產(chǎn)品易于更改、那些對開發(fā)者具有重要意義的屬性使產(chǎn)品易于更改、驗(yàn)證,并易于移植到新的平臺上,從而可以間接地驗(yàn)證,并易于移植到新的平臺上,從而可以間接地滿足客戶的需要。滿足客戶的需要。 質(zhì)量屬性質(zhì)量屬性2 McCall提出了表明軟件質(zhì)量的提出了表明軟件質(zhì)量的11個質(zhì)量特性,表個質(zhì)量特性,表1給出了給出了McCall提出的提出的11個質(zhì)量特性及其含意。個質(zhì)量特性及其含意。表表1 McCall提出的質(zhì)量

3、特性提出的質(zhì)量特性 質(zhì)量特性質(zhì)量特性 含含 意意 可回答的問題可回答的問題 正確性正確性Correctness程序能夠滿足規(guī)格說明和程序能夠滿足規(guī)格說明和完成用戶業(yè)務(wù)目標(biāo)的程度完成用戶業(yè)務(wù)目標(biāo)的程度它做了該做的事嗎?它做了該做的事嗎? 可靠性可靠性 Reliability程序能夠按要求的精度實(shí)程序能夠按要求的精度實(shí)現(xiàn)其預(yù)期功能的程度現(xiàn)其預(yù)期功能的程度它總能準(zhǔn)確地工作它總能準(zhǔn)確地工作嗎?嗎?3 效率效率 Efficiency程序?qū)崿F(xiàn)其功能所需要的程序?qū)崿F(xiàn)其功能所需要的計(jì)算機(jī)資源量計(jì)算機(jī)資源量它能在硬件上盡它能在硬件上盡力工作嗎?力工作嗎? 完整性完整性 Integrity軟件或數(shù)據(jù)不受未授權(quán)人軟

4、件或數(shù)據(jù)不受未授權(quán)人控制的程度控制的程度它是安全嗎?它是安全嗎? 可用性可用性 Usability學(xué)習(xí)、操作程序、為其準(zhǔn)學(xué)習(xí)、操作程序、為其準(zhǔn)備輸入數(shù)據(jù)、解釋其輸出備輸入數(shù)據(jù)、解釋其輸出的工作量的工作量它可用嗎?它可用嗎?可維護(hù)性可維護(hù)性Maintainability對運(yùn)行的程序找到錯誤并對運(yùn)行的程序找到錯誤并排除錯誤的工作量排除錯誤的工作量它可調(diào)整嗎?它可調(diào)整嗎? 測試性測試性 Testability為保證程序執(zhí)行其規(guī)定的為保證程序執(zhí)行其規(guī)定的功能所需的測試工作量功能所需的測試工作量它可測試嗎?它可測試嗎?4 靈活性靈活性 Flexibility修改運(yùn)行的程序所需的工作量修改運(yùn)行的程序所需的

5、工作量它可修改嗎?它可修改嗎? 可移植性可移植性 Portability將程序從一種硬件配置和將程序從一種硬件配置和/或環(huán)或環(huán)境轉(zhuǎn)移到另一硬件配置和境轉(zhuǎn)移到另一硬件配置和/或環(huán)或環(huán)境所需的工作量境所需的工作量可以在另一可以在另一臺機(jī)器上用臺機(jī)器上用它嗎?它嗎? 可重用性可重用性 Reusability程序可被用于與其實(shí)現(xiàn)功能相程序可被用于與其實(shí)現(xiàn)功能相關(guān)的其他應(yīng)用問題的程度關(guān)的其他應(yīng)用問題的程度可以重復(fù)使可以重復(fù)使用它的某些用它的某些部分嗎?部分嗎? 互操作性互操作性Interoperability一系統(tǒng)與另一系統(tǒng)協(xié)同運(yùn)行所一系統(tǒng)與另一系統(tǒng)協(xié)同運(yùn)行所需的工作量需的工作量它能夠與另它能夠與另外系

6、統(tǒng)聯(lián)接外系統(tǒng)聯(lián)接嗎?嗎?5運(yùn)行運(yùn)行修修正正轉(zhuǎn)移轉(zhuǎn)移維護(hù)性維護(hù)性靈活性靈活性測試性測試性可移植性可移植性可重復(fù)用可重復(fù)用互操作性互操作性正確性正確性可靠性可靠性完整性完整性使用性使用性效率效率圖圖1 在運(yùn)行階段用戶的質(zhì)量特性觀點(diǎn)在運(yùn)行階段用戶的質(zhì)量特性觀點(diǎn)用戶對于已投人使用的軟件,會關(guān)心軟件運(yùn)行以后表現(xiàn)出來的運(yùn)行用戶對于已投人使用的軟件,會關(guān)心軟件運(yùn)行以后表現(xiàn)出來的運(yùn)行特性,修正特性和轉(zhuǎn)移特性。也即從這特性,修正特性和轉(zhuǎn)移特性。也即從這3個方面理解上述個方面理解上述11個質(zhì)量個質(zhì)量特性,于是我們把特性,于是我們把11個質(zhì)量特性分為個質(zhì)量特性分為3組,使其分別錄屬于上述組,使其分別錄屬于上述3個方

7、面,請參見圖個方面,請參見圖1。6主要用途主要用途質(zhì)量因素質(zhì)量因素評價(jià)準(zhǔn)則評價(jià)準(zhǔn)則 效效 率率 產(chǎn)品運(yùn)行產(chǎn)品運(yùn)行 正正 確確 性性 可可 靠靠 性性 完完 整整 性性 使使 用用 性性可跟蹤性可跟蹤性 完整性完整性 一致性一致性圖圖2 McCall等人提出的軟件質(zhì)量模型等人提出的軟件質(zhì)量模型7 效效 率率 一致性一致性 準(zhǔn)確性準(zhǔn)確性執(zhí)行效率執(zhí)行效率 容錯性容錯性 模塊性模塊性 簡潔性簡潔性圖圖3 McCall等人提出的軟件質(zhì)量模型等人提出的軟件質(zhì)量模型評價(jià)準(zhǔn)則評價(jià)準(zhǔn)則質(zhì)量因素質(zhì)量因素主要用途主要用途產(chǎn)品運(yùn)行產(chǎn)品運(yùn)行 正正 確確 性性 可可 靠靠 性性 完完 整整 性性 使使 用用 性性8產(chǎn)品運(yùn)

8、行產(chǎn)品運(yùn)行 正正 確確 性性 可可 靠靠 性性 完完 整整 性性 使使 用用 性性 效效 率率 主要用途主要用途質(zhì)量因素質(zhì)量因素評價(jià)準(zhǔn)則評價(jià)準(zhǔn)則圖圖4 McCall等人提出的軟件質(zhì)量模型等人提出的軟件質(zhì)量模型執(zhí)行效率執(zhí)行效率 簡明性簡明性可操作性可操作性9 安全性安全性產(chǎn)品運(yùn)行產(chǎn)品運(yùn)行 正正 確確 性性 可可 靠靠 性性 完完 整整 性性 使使 用用 性性 效效 率率 主要用途主要用途質(zhì)量因素質(zhì)量因素評價(jià)準(zhǔn)則評價(jià)準(zhǔn)則圖圖5 McCall等人提出的軟件質(zhì)量模型等人提出的軟件質(zhì)量模型 工具性工具性可審計(jì)性可審計(jì)性10 可可 靠靠 性性 完完 整整 性性產(chǎn)品運(yùn)行產(chǎn)品運(yùn)行 正正 確確 性性 使使 用用

9、 性性 效效 率率 主要用途主要用途質(zhì)量因素質(zhì)量因素評價(jià)準(zhǔn)則評價(jià)準(zhǔn)則圖圖6 McCall等人提出的軟件質(zhì)量模型等人提出的軟件質(zhì)量模型可訓(xùn)練性可訓(xùn)練性可操作性可操作性11圖圖7 McCall等人提出的軟件質(zhì)量模型等人提出的軟件質(zhì)量模型主要用途主要用途質(zhì)量因素質(zhì)量因素評價(jià)準(zhǔn)則評價(jià)準(zhǔn)則 一致性一致性 工具性工具性 簡明性簡明性 模塊性模塊性自描述性自描述性 簡潔性簡潔性產(chǎn)品修改產(chǎn)品修改 維護(hù)性維護(hù)性 靈活性靈活性 測試性測試性 12圖圖8 McCall等人提出的軟件質(zhì)量模型等人提出的軟件質(zhì)量模型主要用途主要用途質(zhì)量因素質(zhì)量因素評價(jià)準(zhǔn)則評價(jià)準(zhǔn)則 復(fù)雜性復(fù)雜性 工具性工具性可審計(jì)性可審計(jì)性 模塊性模塊性

10、自描述性自描述性 簡潔性簡潔性產(chǎn)品修改產(chǎn)品修改 維護(hù)性維護(hù)性 靈活性靈活性 測試性測試性 13圖圖9 McCall等人提出的軟件質(zhì)量模型等人提出的軟件質(zhì)量模型主要用途主要用途質(zhì)量因素質(zhì)量因素評價(jià)準(zhǔn)則評價(jià)準(zhǔn)則 一致性一致性 復(fù)雜性復(fù)雜性 簡明性簡明性可擴(kuò)充性可擴(kuò)充性 模塊性模塊性 簡潔性簡潔性 通用性通用性產(chǎn)品修改產(chǎn)品修改 維護(hù)性維護(hù)性 靈活性靈活性 測試性測試性 14圖圖10 McCall等人提出的軟件質(zhì)量模型等人提出的軟件質(zhì)量模型主要用途主要用途質(zhì)量因素質(zhì)量因素評價(jià)準(zhǔn)則評價(jià)準(zhǔn)則 模塊性模塊性自描述性自描述性軟件獨(dú)立性軟件獨(dú)立性硬件獨(dú)立性硬件獨(dú)立性 通用性通用性產(chǎn)品轉(zhuǎn)移產(chǎn)品轉(zhuǎn)移 移植性移植性共

11、運(yùn)行性共運(yùn)行性 復(fù)用性復(fù)用性 15圖圖11 McCall等人提出的軟件質(zhì)量模型等人提出的軟件質(zhì)量模型主要用途主要用途質(zhì)量因素質(zhì)量因素評價(jià)準(zhǔn)則評價(jià)準(zhǔn)則模塊性模塊性自描述性自描述性 通用性通用性硬件獨(dú)立性硬件獨(dú)立性軟件獨(dú)立性軟件獨(dú)立性產(chǎn)品轉(zhuǎn)移產(chǎn)品轉(zhuǎn)移 移植性移植性共運(yùn)行性共運(yùn)行性 復(fù)用性復(fù)用性 16圖圖12 McCall等人提出的軟件質(zhì)量模型等人提出的軟件質(zhì)量模型主要用途主要用途質(zhì)量因素質(zhì)量因素評價(jià)準(zhǔn)則評價(jià)準(zhǔn)則 模塊性模塊性 通用性通用性通信共用性通信共用性數(shù)據(jù)共用性數(shù)據(jù)共用性產(chǎn)品轉(zhuǎn)移產(chǎn)品轉(zhuǎn)移 移植性移植性共運(yùn)行性共運(yùn)行性 復(fù)用性復(fù)用性 17 可跟蹤性:沿一個設(shè)計(jì)說明或一個實(shí)際程序可跟蹤性:沿一個

12、設(shè)計(jì)說明或一個實(shí)際程序 構(gòu)件返回到需求的能力。構(gòu)件返回到需求的能力。 完整性:完整性: 所需功能實(shí)現(xiàn)的程度。所需功能實(shí)現(xiàn)的程度。 一致性:一致性: 在整個軟件開發(fā)項(xiàng)目中使用統(tǒng)一在整個軟件開發(fā)項(xiàng)目中使用統(tǒng)一 的設(shè)計(jì)和文檔編制技術(shù)的程度。的設(shè)計(jì)和文檔編制技術(shù)的程度。 容錯性:當(dāng)程序出錯時(shí),造成破壞的程度。容錯性:當(dāng)程序出錯時(shí),造成破壞的程度。 準(zhǔn)確性:準(zhǔn)確性: 計(jì)算和控制的精確程度。計(jì)算和控制的精確程度。 執(zhí)行效率:程序的運(yùn)行時(shí)間。執(zhí)行效率:程序的運(yùn)行時(shí)間。 復(fù)雜性復(fù)雜性 : 程序結(jié)構(gòu)化、模塊化、簡明、簡程序結(jié)構(gòu)化、模塊化、簡明、簡 潔、清晰和可理解的程度。潔、清晰和可理解的程度。18l 安全性:

13、控制或保護(hù)程序和數(shù)據(jù)機(jī)制的有效性。安全性:控制或保護(hù)程序和數(shù)據(jù)機(jī)制的有效性。l 工具性:程序監(jiān)視自身運(yùn)行和識別出現(xiàn)錯誤的程序。工具性:程序監(jiān)視自身運(yùn)行和識別出現(xiàn)錯誤的程序。l 簡明性:簡明性: 程序代碼的緊密程度。程序代碼的緊密程度。l 可訓(xùn)練性:程序使新用戶使用該系統(tǒng)的輔助程度??捎?xùn)練性:程序使新用戶使用該系統(tǒng)的輔助程度。l 可操作性:可操作性: 程序操作的難易程度。程序操作的難易程度。l 可審計(jì)性:可審計(jì)性: 檢查與標(biāo)準(zhǔn)是否符合的難易程度。檢查與標(biāo)準(zhǔn)是否符合的難易程度。l 可擴(kuò)充性:系結(jié)構(gòu)、數(shù)據(jù)或過程設(shè)計(jì)可擴(kuò)充的程度??蓴U(kuò)充性:系結(jié)構(gòu)、數(shù)據(jù)或過程設(shè)計(jì)可擴(kuò)充的程度。l 模塊性模塊性 : 程序

14、各構(gòu)件的功能獨(dú)立性。程序各構(gòu)件的功能獨(dú)立性。19l 自描述性:自描述性: 源代碼提供自身描述的程度。源代碼提供自身描述的程度。l 簡潔性:簡潔性: 程序易于理解的程度。程序易于理解的程度。l 通用性:通用性: 程序各構(gòu)件潛在的應(yīng)用范圍。程序各構(gòu)件潛在的應(yīng)用范圍。l 硬件獨(dú)立性:軟件與運(yùn)行它的硬件之間的相關(guān)程度。硬件獨(dú)立性:軟件與運(yùn)行它的硬件之間的相關(guān)程度。 l 軟件獨(dú)立性:程序與非標(biāo)準(zhǔn)編程語言性質(zhì)、軟件獨(dú)立性:程序與非標(biāo)準(zhǔn)編程語言性質(zhì)、 操作系統(tǒng)特性、以及其他環(huán)境操作系統(tǒng)特性、以及其他環(huán)境 限制的無關(guān)程度。限制的無關(guān)程度。l 通信共用性:通信共用性: 使用標(biāo)準(zhǔn)接口、協(xié)議和帶寬的使用標(biāo)準(zhǔn)接口、協(xié)

15、議和帶寬的 程度。程度。l 數(shù)據(jù)共用性:數(shù)據(jù)共用性: 在整個程序中使用標(biāo)準(zhǔn)數(shù)據(jù)結(jié)在整個程序中使用標(biāo)準(zhǔn)數(shù)據(jù)結(jié) 構(gòu)和類型的程度。構(gòu)和類型的程度。20 國際標(biāo)準(zhǔn)和國家標(biāo)準(zhǔn)規(guī)定的質(zhì)量特性標(biāo)準(zhǔn)中規(guī)定國際標(biāo)準(zhǔn)和國家標(biāo)準(zhǔn)規(guī)定的質(zhì)量特性標(biāo)準(zhǔn)中規(guī)定了了6 6個質(zhì)量特性及其相關(guān)的個質(zhì)量特性及其相關(guān)的2121個質(zhì)量子特性(如圖個質(zhì)量子特性(如圖1313所示)。所示)。6 6個質(zhì)量特性的含義在表個質(zhì)量特性的含義在表2 2中給出。中給出。21功功 能能 性性適合性適合性特特 性性子特性子特性準(zhǔn)確性準(zhǔn)確性互操作性互操作性依從性依從性安全性安全性圖圖13 質(zhì)量特性與質(zhì)量子特性質(zhì)量特性與質(zhì)量子特性FunctionalityR

16、eliabilitySuitabilityAccuracyInteroperabilityComplianceSecurity成熟性成熟性容錯性容錯性易恢復(fù)性易恢復(fù)性可可 靠靠 性性MaturityFault toleranceRecoverability22易理解性易理解性易學(xué)習(xí)性易學(xué)習(xí)性易操作性易操作性易使用性易使用性UnderstandabilityLearnabilityOperability特特 性性子特性子特性圖圖14 質(zhì)量特性與質(zhì)量子特性質(zhì)量特性與質(zhì)量子特性效效 率率時(shí)間特性時(shí)間特性資源特性資源特性Time behaviourResource behaviourEfficienc

17、yUsability23特特 性性子特性子特性圖圖15 質(zhì)量特性與質(zhì)量子特性質(zhì)量特性與質(zhì)量子特性AnalysabilityChangeabilityStabilityTestability易分析性易分析性易更改性易更改性易測試性易測試性可維護(hù)性可維護(hù)性穩(wěn)定性穩(wěn)定性Maintainability適應(yīng)性適應(yīng)性易安排性易安排性易替換性易替換性可移植性可移植性一致性一致性PortabilityAdaptabilityInstallabilityConformanceReplaceability24 質(zhì)量特性質(zhì)量特性含意含意功能性功能性Functionality與一組功能及其制定的性質(zhì)有關(guān)的一組屬性。這

18、里功與一組功能及其制定的性質(zhì)有關(guān)的一組屬性。這里功能包括滿足明確或隱含的要求。能包括滿足明確或隱含的要求??煽啃钥煽啃訰eliability與在規(guī)定的一段時(shí)間和條件下,軟件能維持其性能水與在規(guī)定的一段時(shí)間和條件下,軟件能維持其性能水平的能力有關(guān)的一組屬性。平的能力有關(guān)的一組屬性。易用性易用性Usability與一組規(guī)定或潛在的用戶為使用軟件所需作的努力和與一組規(guī)定或潛在的用戶為使用軟件所需作的努力和對這樣的使用所作的評價(jià)有關(guān)的一組屬性。對這樣的使用所作的評價(jià)有關(guān)的一組屬性。效率效率Efficiency與在規(guī)定的條件下,軟件的性能水平與所使用資源量與在規(guī)定的條件下,軟件的性能水平與所使用資源量之

19、間關(guān)系有關(guān)的一組屬性。之間關(guān)系有關(guān)的一組屬性??删S護(hù)性可維護(hù)性Maintainability與進(jìn)行指定的修改所需的努力有關(guān)的一組屬性。與進(jìn)行指定的修改所需的努力有關(guān)的一組屬性??梢浦残钥梢浦残訮ortability與軟件可從某一環(huán)境移植到另一環(huán)境的能力有關(guān)的一與軟件可從某一環(huán)境移植到另一環(huán)境的能力有關(guān)的一組屬性。組屬性。表表2 國際標(biāo)準(zhǔn)規(guī)定的質(zhì)量特性國際標(biāo)準(zhǔn)規(guī)定的質(zhì)量特性25表表3 軟件質(zhì)量屬性軟件質(zhì)量屬性對用戶最重要的屬性對用戶最重要的屬性對開發(fā)者最重要的屬性對開發(fā)者最重要的屬性高效性高效性(efficiency)可維護(hù)性可維護(hù)性(maintainability)靈活性靈活性(flexibi

20、lity)可移植性可移植性(portability)完整性完整性(integrity)可重用性可重用性(reusability)互操作性互操作性(interOperability)可測試性可測試性(testability)可靠性可靠性(reliability)可用性可用性(usability)健壯性健壯性(robustness)有效性有效性(availability)26 在表在表3中,分兩類來描述每個項(xiàng)目都要考慮的質(zhì)中,分兩類來描述每個項(xiàng)目都要考慮的質(zhì)量屬性;還有其它許多屬性量屬性;還有其它許多屬性 。一些屬性對于嵌入。一些屬性對于嵌入式系統(tǒng)是很重要的式系統(tǒng)是很重要的(高效性和可靠性高效性和

21、可靠性),而其它的,而其它的屬性則用于主機(jī)應(yīng)用程序?qū)傩詣t用于主機(jī)應(yīng)用程序(有效性和可維護(hù)性有效性和可維護(hù)性)或或桌面系統(tǒng)桌面系統(tǒng)(互操作性和可用性互操作性和可用性)。在一個理想的范。在一個理想的范圍中,每一個系統(tǒng)總是最大限度地展示所有這些圍中,每一個系統(tǒng)總是最大限度地展示所有這些屬性的可能價(jià)值。系統(tǒng)將隨時(shí)可用,決不會崩潰,屬性的可能價(jià)值。系統(tǒng)將隨時(shí)可用,決不會崩潰,可立即提供結(jié)果,并且易于使用。因?yàn)槔硐氕h(huán)境可立即提供結(jié)果,并且易于使用。因?yàn)槔硐氕h(huán)境是不可得到的,因此,你必須知道表是不可得到的,因此,你必須知道表2.5.3中那些中那些屬性的子集對項(xiàng)目的成功至關(guān)重要。然后,根據(jù)屬性的子集對項(xiàng)目的成

22、功至關(guān)重要。然后,根據(jù)這些基本屬性來定義用戶和開發(fā)者的目標(biāo),從而這些基本屬性來定義用戶和開發(fā)者的目標(biāo),從而產(chǎn)品的設(shè)計(jì)者可以作出合適的選擇。產(chǎn)品的設(shè)計(jì)者可以作出合適的選擇。27 產(chǎn)品的不同部分與所期望的質(zhì)量特性有著不同的產(chǎn)品的不同部分與所期望的質(zhì)量特性有著不同的組合。高效性可能對某些部分是很重要的,而可組合。高效性可能對某些部分是很重要的,而可用性對其它部分則很重要。把應(yīng)用于整個產(chǎn)品的用性對其它部分則很重要。把應(yīng)用于整個產(chǎn)品的質(zhì)量特性與特定某些部分、某些用戶類或特殊使質(zhì)量特性與特定某些部分、某些用戶類或特殊使用環(huán)境的質(zhì)量屬性要區(qū)分開。把任何全局屬性需用環(huán)境的質(zhì)量屬性要區(qū)分開。把任何全局屬性需求記

23、錄到軟件需求規(guī)格說明相應(yīng)的部分中,并把求記錄到軟件需求規(guī)格說明相應(yīng)的部分中,并把特定的目標(biāo)和列在軟件需求規(guī)格說明的特性、使特定的目標(biāo)和列在軟件需求規(guī)格說明的特性、使用實(shí)例或功能需求相聯(lián)系起來。用實(shí)例或功能需求相聯(lián)系起來。28 你必須根據(jù)用戶對系統(tǒng)的期望來確定質(zhì)量屬性。你必須根據(jù)用戶對系統(tǒng)的期望來確定質(zhì)量屬性。定量地確定重要屬性提供了對用戶期望的清晰理解,定量地確定重要屬性提供了對用戶期望的清晰理解,這將有助于設(shè)計(jì)者提出最合理的解決方案。然而,這將有助于設(shè)計(jì)者提出最合理的解決方案。然而,大多數(shù)用戶并不知道如何回答諸如大多數(shù)用戶并不知道如何回答諸如“互操作性對你互操作性對你的重要性如何的重要性如何

24、?”或者或者“軟件應(yīng)該具有怎樣的可靠軟件應(yīng)該具有怎樣的可靠性性?”等問題。在一個項(xiàng)目中,分析員想出了對于不等問題。在一個項(xiàng)目中,分析員想出了對于不同的用戶類可能很重要的屬性,并根據(jù)每一個屬性同的用戶類可能很重要的屬性,并根據(jù)每一個屬性設(shè)計(jì)出許多問題。他們利用這些問題詢問每一個用設(shè)計(jì)出許多問題。他們利用這些問題詢問每一個用戶類的代表,可以把每個屬性分成一級戶類的代表,可以把每個屬性分成一級(不必多加考不必多加考慮的屬性慮的屬性)到五級到五級(極其重要的屬性極其重要的屬性)。這些問題的回。這些問題的回答有助于分析員決定哪些質(zhì)量特性用作設(shè)計(jì)標(biāo)準(zhǔn)是答有助于分析員決定哪些質(zhì)量特性用作設(shè)計(jì)標(biāo)準(zhǔn)是最重要的。

25、最重要的。 定義質(zhì)量屬性定義質(zhì)量屬性29 然后,分析員與用戶一起為每一屬性確定特定的、可然后,分析員與用戶一起為每一屬性確定特定的、可測量的和可驗(yàn)證的需求。如果質(zhì)量目標(biāo)不可驗(yàn)證,那測量的和可驗(yàn)證的需求。如果質(zhì)量目標(biāo)不可驗(yàn)證,那么就說不清是否達(dá)到這些目標(biāo)。在合適的地方為每一么就說不清是否達(dá)到這些目標(biāo)。在合適的地方為每一個屬性或目標(biāo)指定級別或測量單位,以及最大和最小個屬性或目標(biāo)指定級別或測量單位,以及最大和最小值。如果不能定量地確定某些對項(xiàng)目很重要的屬性,值。如果不能定量地確定某些對項(xiàng)目很重要的屬性,那么至少應(yīng)該確定其優(yōu)先級。那么至少應(yīng)該確定其優(yōu)先級。 另一個定義屬性的方法是確定任何與質(zhì)量期望相沖

26、突另一個定義屬性的方法是確定任何與質(zhì)量期望相沖突的系統(tǒng)行為。通過定義不悅?cè)艘庑袨榈南到y(tǒng)行為。通過定義不悅?cè)艘庑袨橐环N反向需一種反向需求求你可以設(shè)計(jì)出強(qiáng)制系統(tǒng)表現(xiàn)出那些行為的測試你可以設(shè)計(jì)出強(qiáng)制系統(tǒng)表現(xiàn)出那些行為的測試用例。如果你不能強(qiáng)制系統(tǒng),那么你可能達(dá)到了你的用例。如果你不能強(qiáng)制系統(tǒng),那么你可能達(dá)到了你的屬性目標(biāo)。這種方法最適用于要求安全性能很高的應(yīng)屬性目標(biāo)。這種方法最適用于要求安全性能很高的應(yīng)用程序,在這些應(yīng)用程序中,系統(tǒng)的差錯可能會導(dǎo)致用程序,在這些應(yīng)用程序中,系統(tǒng)的差錯可能會導(dǎo)致生命危險(xiǎn)。生命危險(xiǎn)。301 對用戶重要的屬性對用戶重要的屬性 1)有效性有效性 有效性指的是在預(yù)定的啟動時(shí)間

27、中,系統(tǒng)真正可用并有效性指的是在預(yù)定的啟動時(shí)間中,系統(tǒng)真正可用并且完全運(yùn)行時(shí)間所占的百分比。有些任務(wù)比起其它任務(wù)且完全運(yùn)行時(shí)間所占的百分比。有些任務(wù)比起其它任務(wù)具有更嚴(yán)格的時(shí)間要求,此時(shí),當(dāng)用戶要執(zhí)行一個任務(wù)具有更嚴(yán)格的時(shí)間要求,此時(shí),當(dāng)用戶要執(zhí)行一個任務(wù)但系統(tǒng)在那一時(shí)刻不可用時(shí),用戶會感到很沮喪。詢問但系統(tǒng)在那一時(shí)刻不可用時(shí),用戶會感到很沮喪。詢問用戶需要多高的有效性,并且是否在任何時(shí)間,對滿足用戶需要多高的有效性,并且是否在任何時(shí)間,對滿足業(yè)務(wù)或安全目標(biāo)有效性都是必須的。一個有效性需求可業(yè)務(wù)或安全目標(biāo)有效性都是必須的。一個有效性需求可能這樣說明:能這樣說明:“工作日期間,在當(dāng)?shù)貢r(shí)間早上工作

28、日期間,在當(dāng)?shù)貢r(shí)間早上6點(diǎn)到午夜,點(diǎn)到午夜,系統(tǒng)的有效性至少達(dá)到系統(tǒng)的有效性至少達(dá)到995,在下午,在下午4點(diǎn)到點(diǎn)到6點(diǎn),系統(tǒng)點(diǎn),系統(tǒng)的有效性至少可達(dá)到的有效性至少可達(dá)到9995。31 2)效率效率 效率是用來衡量系統(tǒng)如何優(yōu)化處理器、磁盤空間效率是用來衡量系統(tǒng)如何優(yōu)化處理器、磁盤空間或通信帶寬的。如果系統(tǒng)用完了所有可用的資源,或通信帶寬的。如果系統(tǒng)用完了所有可用的資源,那么用戶遇到的將是性能的下降,這是效率降低那么用戶遇到的將是性能的下降,這是效率降低的一個表現(xiàn)。拙劣的系統(tǒng)性能可激怒等待數(shù)據(jù)庫的一個表現(xiàn)。拙劣的系統(tǒng)性能可激怒等待數(shù)據(jù)庫查詢結(jié)果的用戶,或者可能對系統(tǒng)安全性造成威查詢結(jié)果的用戶,或

29、者可能對系統(tǒng)安全性造成威脅,就像一個實(shí)時(shí)處理系統(tǒng)超負(fù)荷一樣。為了在脅,就像一個實(shí)時(shí)處理系統(tǒng)超負(fù)荷一樣。為了在不可預(yù)料的條件下允許安全緩沖,你可以這樣定不可預(yù)料的條件下允許安全緩沖,你可以這樣定義:義:“在預(yù)計(jì)的高峰負(fù)載條件下,在預(yù)計(jì)的高峰負(fù)載條件下,10處理器能處理器能力和力和15系統(tǒng)可用內(nèi)存必須留出備用。系統(tǒng)可用內(nèi)存必須留出備用?!痹诙x在定義性能、能力和效率目標(biāo)時(shí),考慮硬件的最小配置性能、能力和效率目標(biāo)時(shí),考慮硬件的最小配置是很重要的。是很重要的。32 3)靈活性靈活性 就像我們所知道的可擴(kuò)充性、增加性、可延伸性就像我們所知道的可擴(kuò)充性、增加性、可延伸性和可擴(kuò)展性一樣,靈活性表明了在產(chǎn)品中

30、增加新和可擴(kuò)展性一樣,靈活性表明了在產(chǎn)品中增加新功能時(shí)所需工作量的大小。如果開發(fā)者預(yù)料到系功能時(shí)所需工作量的大小。如果開發(fā)者預(yù)料到系統(tǒng)的擴(kuò)展性,那么他們可以選擇合適的方法來最統(tǒng)的擴(kuò)展性,那么他們可以選擇合適的方法來最大限度地增大系統(tǒng)的靈活性。靈活性對于通過一大限度地增大系統(tǒng)的靈活性。靈活性對于通過一系列連續(xù)的發(fā)行版本,并采用漸增型和重復(fù)型方系列連續(xù)的發(fā)行版本,并采用漸增型和重復(fù)型方式開發(fā)的產(chǎn)品是很重要的。在我曾經(jīng)參與的一個式開發(fā)的產(chǎn)品是很重要的。在我曾經(jīng)參與的一個圖形工程中,靈活性目標(biāo)是如下設(shè)定的:圖形工程中,靈活性目標(biāo)是如下設(shè)定的:“一個一個至少具有至少具有6個月產(chǎn)品支持經(jīng)驗(yàn)的軟件維護(hù)程序員

31、個月產(chǎn)品支持經(jīng)驗(yàn)的軟件維護(hù)程序員可以在一個小時(shí)之內(nèi)為系統(tǒng)添加一個新的可支持可以在一個小時(shí)之內(nèi)為系統(tǒng)添加一個新的可支持硬拷貝的輸出設(shè)備。硬拷貝的輸出設(shè)備。”33 4)完整性完整性 完整性完整性(或安全性或安全性)主要涉及:防止非法訪問系統(tǒng)主要涉及:防止非法訪問系統(tǒng)功能、防止數(shù)據(jù)丟失、防止病毒入侵并防止私人功能、防止數(shù)據(jù)丟失、防止病毒入侵并防止私人數(shù)據(jù)進(jìn)入系統(tǒng)。完整性對于通過數(shù)據(jù)進(jìn)入系統(tǒng)。完整性對于通過WWW執(zhí)行的軟執(zhí)行的軟件已成為一個重要的議題。電子商務(wù)系統(tǒng)的用戶件已成為一個重要的議題。電子商務(wù)系統(tǒng)的用戶關(guān)心的是保護(hù)信用卡信息,關(guān)心的是保護(hù)信用卡信息,Web的瀏覽者不愿意的瀏覽者不愿意那些私人信

32、息或他們所訪問過的站點(diǎn)記錄被非法那些私人信息或他們所訪問過的站點(diǎn)記錄被非法使用。完整性的需求不能犯任何錯誤,即數(shù)據(jù)和使用。完整性的需求不能犯任何錯誤,即數(shù)據(jù)和訪問必須通過特定的方法完全保護(hù)起來。用明確訪問必須通過特定的方法完全保護(hù)起來。用明確的術(shù)語陳述完整性的需求,如身份驗(yàn)證、用戶特的術(shù)語陳述完整性的需求,如身份驗(yàn)證、用戶特權(quán)級別、訪問約束或者需要保護(hù)的精確數(shù)據(jù)。一權(quán)級別、訪問約束或者需要保護(hù)的精確數(shù)據(jù)。一個完整性的需求樣本可以這樣描述:個完整性的需求樣本可以這樣描述:“只有擁有只有擁有查賬員訪問特權(quán)的用戶才可以查看客戶交易歷查賬員訪問特權(quán)的用戶才可以查看客戶交易歷史。史?!?4 5)互操作性

33、互操作性 互操作性表明了產(chǎn)品與其它系統(tǒng)交換數(shù)據(jù)和互操作性表明了產(chǎn)品與其它系統(tǒng)交換數(shù)據(jù)和服務(wù)的難易程度。為了評估互操作性是否服務(wù)的難易程度。為了評估互操作性是否達(dá)到要求的程度,你必須知道用戶使用其達(dá)到要求的程度,你必須知道用戶使用其它哪一種應(yīng)用程序與你的產(chǎn)品相連接,還它哪一種應(yīng)用程序與你的產(chǎn)品相連接,還要知道他們要交換什么數(shù)據(jù)。要知道他們要交換什么數(shù)據(jù)?!盎瘜W(xué)制品化學(xué)制品跟蹤系統(tǒng)跟蹤系統(tǒng)”的用戶習(xí)慣于使用一些商業(yè)工的用戶習(xí)慣于使用一些商業(yè)工具繪制化學(xué)制品的結(jié)構(gòu)圖,所以他們提出具繪制化學(xué)制品的結(jié)構(gòu)圖,所以他們提出如下的互操作性需求:如下的互操作性需求: “化學(xué)制品跟蹤系化學(xué)制品跟蹤系統(tǒng)應(yīng)該能夠從統(tǒng)

34、應(yīng)該能夠從ChemiDraw和和Chem-Struct工具中導(dǎo)入任何有效化學(xué)制品結(jié)構(gòu)圖。工具中導(dǎo)入任何有效化學(xué)制品結(jié)構(gòu)圖?!?5 6)可靠性可靠性 可靠性是軟件無故障執(zhí)行一段時(shí)間的概率。健壯性和有效可靠性是軟件無故障執(zhí)行一段時(shí)間的概率。健壯性和有效性有時(shí)可看成是可靠性的一部分。衡量軟件可靠性的方法性有時(shí)可看成是可靠性的一部分。衡量軟件可靠性的方法包括正確執(zhí)行操作所占的比例,在發(fā)現(xiàn)新缺陷之前系統(tǒng)運(yùn)包括正確執(zhí)行操作所占的比例,在發(fā)現(xiàn)新缺陷之前系統(tǒng)運(yùn)行的時(shí)間長度和缺陷出現(xiàn)的密度。根據(jù)如果發(fā)生故障對系行的時(shí)間長度和缺陷出現(xiàn)的密度。根據(jù)如果發(fā)生故障對系統(tǒng)有多大影響和對于最大的可靠性的費(fèi)用是否合理,來定統(tǒng)

35、有多大影響和對于最大的可靠性的費(fèi)用是否合理,來定量地確定可靠性需求。如果軟件滿足了它的可靠性需求,量地確定可靠性需求。如果軟件滿足了它的可靠性需求,那么即使該軟件還存在缺陷,也可認(rèn)為達(dá)到其可靠性目標(biāo)。那么即使該軟件還存在缺陷,也可認(rèn)為達(dá)到其可靠性目標(biāo)。要求高要求高 可靠性的系統(tǒng)也是為高可測試性系統(tǒng)設(shè)計(jì)的??煽啃缘南到y(tǒng)也是為高可測試性系統(tǒng)設(shè)計(jì)的。 我的開發(fā)組曾經(jīng)開發(fā)過一個用于控制實(shí)驗(yàn)室設(shè)備的軟件,我的開發(fā)組曾經(jīng)開發(fā)過一個用于控制實(shí)驗(yàn)室設(shè)備的軟件,這些設(shè)備全天工作并且使用稀有的、昂貴的化學(xué)制品。用這些設(shè)備全天工作并且使用稀有的、昂貴的化學(xué)制品。用戶要求真正與實(shí)驗(yàn)相關(guān)的那部分軟件要高可靠性,而其它戶

36、要求真正與實(shí)驗(yàn)相關(guān)的那部分軟件要高可靠性,而其它系統(tǒng)功能,例如周期性地記錄溫度數(shù)據(jù),則對可靠性要求系統(tǒng)功能,例如周期性地記錄溫度數(shù)據(jù),則對可靠性要求不高。對于該系統(tǒng)的一個可靠性需求說明如下:不高。對于該系統(tǒng)的一個可靠性需求說明如下:“由于軟由于軟件失效引起實(shí)驗(yàn)失敗的概率應(yīng)不超過件失效引起實(shí)驗(yàn)失敗的概率應(yīng)不超過5”。367)健壯性健壯性 健壯性指的是當(dāng)系統(tǒng)或其組成部分遇到非法輸入數(shù)據(jù)、相健壯性指的是當(dāng)系統(tǒng)或其組成部分遇到非法輸入數(shù)據(jù)、相關(guān)軟件或硬件組成部分的缺陷或異常的操作情況時(shí),能繼關(guān)軟件或硬件組成部分的缺陷或異常的操作情況時(shí),能繼續(xù)正確運(yùn)行功能的程度。健壯的軟件可以從發(fā)生問題的環(huán)續(xù)正確運(yùn)行功

37、能的程度。健壯的軟件可以從發(fā)生問題的環(huán)境中完好地恢復(fù)并且可容忍用戶的錯誤。當(dāng)從用戶那里獲境中完好地恢復(fù)并且可容忍用戶的錯誤。當(dāng)從用戶那里獲取健壯性的目標(biāo)時(shí),詢問系統(tǒng)可能遇到的錯誤條件并且要取健壯性的目標(biāo)時(shí),詢問系統(tǒng)可能遇到的錯誤條件并且要了解用戶想讓系統(tǒng)如何響應(yīng)。了解用戶想讓系統(tǒng)如何響應(yīng)。 我曾經(jīng)主持過一個叫作圖形引擎的可重用軟件組件的開發(fā),我曾經(jīng)主持過一個叫作圖形引擎的可重用軟件組件的開發(fā),該圖形引擎具有描述圖形規(guī)劃的數(shù)據(jù)文件,并且把這一規(guī)該圖形引擎具有描述圖形規(guī)劃的數(shù)據(jù)文件,并且把這一規(guī)劃傳送到指定的輸出設(shè)備上。許多需要產(chǎn)生規(guī)劃的應(yīng)用程劃傳送到指定的輸出設(shè)備上。許多需要產(chǎn)生規(guī)劃的應(yīng)用程序就

38、要請求調(diào)用圖形引擎。由于在圖形引擎中,我們將無序就要請求調(diào)用圖形引擎。由于在圖形引擎中,我們將無法控制這些應(yīng)用程序的數(shù)據(jù),所以此時(shí)健壯性就成為必不法控制這些應(yīng)用程序的數(shù)據(jù),所以此時(shí)健壯性就成為必不可少的質(zhì)量屬性。我們的一個健壯性需求是這樣說明的:可少的質(zhì)量屬性。我們的一個健壯性需求是這樣說明的:“所有的規(guī)劃參數(shù)都要指定一個缺省值,當(dāng)輸入數(shù)據(jù)丟失所有的規(guī)劃參數(shù)都要指定一個缺省值,當(dāng)輸入數(shù)據(jù)丟失或無效時(shí),就使用缺省值數(shù)據(jù)?;驘o效時(shí),就使用缺省值數(shù)據(jù)?!边@個例子反映了對一個這個例子反映了對一個“用戶用戶”是另一個軟件應(yīng)用程序的產(chǎn)品,其健壯性設(shè)計(jì)的是另一個軟件應(yīng)用程序的產(chǎn)品,其健壯性設(shè)計(jì)的方法。方法。

39、378)可用性可用性 可用性也稱為可用性也稱為“易用性易用性”和和“人類工程人類工程”,它所描述的是,它所描述的是許多組成許多組成“用戶友好用戶友好”的因素??捎眯院饬繙?zhǔn)備輸入、操的因素??捎眯院饬繙?zhǔn)備輸入、操作和理解產(chǎn)品輸出所花費(fèi)的努力。你必須權(quán)衡易用性和學(xué)作和理解產(chǎn)品輸出所花費(fèi)的努力。你必須權(quán)衡易用性和學(xué)習(xí)如何操縱產(chǎn)品的簡易性。習(xí)如何操縱產(chǎn)品的簡易性。“化學(xué)制品跟蹤系統(tǒng)化學(xué)制品跟蹤系統(tǒng)的分的分析員詢問用戶這樣的問題:析員詢問用戶這樣的問題:“你能快速、簡單地請求化學(xué)你能快速、簡單地請求化學(xué)制品并瀏覽其它信息,這對你有多重要制品并瀏覽其它信息,這對你有多重要?和和“你請求一種你請求一種化學(xué)制

40、品大概需花多少時(shí)間化學(xué)制品大概需花多少時(shí)間?”對于定義使軟件易于使用的對于定義使軟件易于使用的許多特性而言,這只是一個簡單的起點(diǎn)。對于可用性的討許多特性而言,這只是一個簡單的起點(diǎn)。對于可用性的討論可以得出可測量的目標(biāo),例如論可以得出可測量的目標(biāo),例如“一個培訓(xùn)一個培訓(xùn)I過的用戶應(yīng)過的用戶應(yīng)該可以在平均該可以在平均3分鐘或最多分鐘或最多5分鐘時(shí)間以內(nèi),完成從供應(yīng)商分鐘時(shí)間以內(nèi),完成從供應(yīng)商目錄表中請求一種化學(xué)制品的操作。目錄表中請求一種化學(xué)制品的操作?!?8 同樣,調(diào)查新系統(tǒng)是否一定要與任何用戶界面標(biāo)準(zhǔn)或常規(guī)同樣,調(diào)查新系統(tǒng)是否一定要與任何用戶界面標(biāo)準(zhǔn)或常規(guī)的相符合,或者其用戶界面是否一定要與其

41、它常用系統(tǒng)的用的相符合,或者其用戶界面是否一定要與其它常用系統(tǒng)的用戶界面相一致。這里有一個可用性需求的例子:戶界面相一致。這里有一個可用性需求的例子:“在文件菜在文件菜單中的所有功能都必須定義快捷鍵,該快捷鍵是由單中的所有功能都必須定義快捷鍵,該快捷鍵是由Ctrl鍵和鍵和其它鍵組合實(shí)現(xiàn)的。出現(xiàn)在其它鍵組合實(shí)現(xiàn)的。出現(xiàn)在Microsoft Word2000中的菜單中的菜單命令必須與命令必須與Word使用相同的快捷鍵使用相同的快捷鍵”。 可用性還包括對于新用戶或不常使用產(chǎn)品的用戶在學(xué)習(xí)使可用性還包括對于新用戶或不常使用產(chǎn)品的用戶在學(xué)習(xí)使用產(chǎn)品時(shí)的簡易程度。易學(xué)程度的目標(biāo)可以經(jīng)常定量地測量,用產(chǎn)品時(shí)

42、的簡易程度。易學(xué)程度的目標(biāo)可以經(jīng)常定量地測量,例如,例如,“一個新用戶用不到一個新用戶用不到30分鐘時(shí)間適應(yīng)環(huán)境后,就應(yīng)該分鐘時(shí)間適應(yīng)環(huán)境后,就應(yīng)該可以對一個化學(xué)制品提出請求可以對一個化學(xué)制品提出請求”,或者,或者“新的操作員在一天新的操作員在一天的培訓(xùn)學(xué)習(xí)之后,就應(yīng)該可以正確執(zhí)行他們所要求的任務(wù)的的培訓(xùn)學(xué)習(xí)之后,就應(yīng)該可以正確執(zhí)行他們所要求的任務(wù)的95”。當(dāng)你定義可用性或可學(xué)性的需求時(shí),應(yīng)考慮到在判。當(dāng)你定義可用性或可學(xué)性的需求時(shí),應(yīng)考慮到在判斷產(chǎn)品是否達(dá)到需求而對產(chǎn)品進(jìn)行測試的費(fèi)用。斷產(chǎn)品是否達(dá)到需求而對產(chǎn)品進(jìn)行測試的費(fèi)用。392 對開發(fā)者重要的屬性對開發(fā)者重要的屬性1)可維護(hù)性可維護(hù)性

43、可維護(hù)性表明了在軟件中糾正一個缺陷或做一次更改的可維護(hù)性表明了在軟件中糾正一個缺陷或做一次更改的簡易程度。可維護(hù)性取決于理解軟件、更改軟件和測試軟簡易程度。可維護(hù)性取決于理解軟件、更改軟件和測試軟件的簡易程度,可維護(hù)性與靈活性密切相關(guān)。高可維護(hù)性件的簡易程度,可維護(hù)性與靈活性密切相關(guān)。高可維護(hù)性對于那些經(jīng)歷周期性更改的產(chǎn)品或快速開發(fā)的產(chǎn)品很重要。對于那些經(jīng)歷周期性更改的產(chǎn)品或快速開發(fā)的產(chǎn)品很重要。你可以根據(jù)修復(fù)你可以根據(jù)修復(fù)(fix)一個問題所花的平均時(shí)間和修復(fù)正確一個問題所花的平均時(shí)間和修復(fù)正確的百分比來衡量可維護(hù)性。的百分比來衡量可維護(hù)性。 “化學(xué)制品跟蹤系統(tǒng)化學(xué)制品跟蹤系統(tǒng)”包括如下的可

44、維護(hù)性需求:包括如下的可維護(hù)性需求:“在接在接到來自聯(lián)邦政府修訂的化學(xué)制品報(bào)告的規(guī)定后,對于現(xiàn)有到來自聯(lián)邦政府修訂的化學(xué)制品報(bào)告的規(guī)定后,對于現(xiàn)有報(bào)表的更改操作必須在一周內(nèi)完成。報(bào)表的更改操作必須在一周內(nèi)完成。”在圖形引擎工程中,在圖形引擎工程中,必須不斷更新軟件以滿足用戶日益發(fā)展的需要,因此,確必須不斷更新軟件以滿足用戶日益發(fā)展的需要,因此,確定以下設(shè)計(jì)標(biāo)準(zhǔn)以增強(qiáng)系統(tǒng)總的可維護(hù)性:定以下設(shè)計(jì)標(biāo)準(zhǔn)以增強(qiáng)系統(tǒng)總的可維護(hù)性:“函數(shù)調(diào)用不函數(shù)調(diào)用不能超過兩層深度能超過兩層深度“,并且,并且“每一個軟件模塊中,注釋與源每一個軟件模塊中,注釋與源代碼語句的比例至少為代碼語句的比例至少為1 2?!闭J(rèn)真并精

45、確地描述設(shè)計(jì)目認(rèn)真并精確地描述設(shè)計(jì)目標(biāo),以防止開發(fā)者做出與預(yù)定目標(biāo)不相符的愚蠢行為。標(biāo),以防止開發(fā)者做出與預(yù)定目標(biāo)不相符的愚蠢行為。402)可移植性可移植性 可移植性是度量把一個軟件從一種運(yùn)行環(huán)境轉(zhuǎn)移到另一可移植性是度量把一個軟件從一種運(yùn)行環(huán)境轉(zhuǎn)移到另一種運(yùn)行環(huán)境中所花費(fèi)的工作量。軟件可移植的設(shè)計(jì)方法與種運(yùn)行環(huán)境中所花費(fèi)的工作量。軟件可移植的設(shè)計(jì)方法與軟件可重用的設(shè)計(jì)方法相似。可移植性對于工程的成功是軟件可重用的設(shè)計(jì)方法相似。可移植性對于工程的成功是不重要的,對工程的結(jié)果也無關(guān)緊要。可以移植的目標(biāo)必不重要的,對工程的結(jié)果也無關(guān)緊要??梢砸浦驳哪繕?biāo)必須陳述產(chǎn)品中可以移植到其它環(huán)境的那一部分,并確

46、定相須陳述產(chǎn)品中可以移植到其它環(huán)境的那一部分,并確定相應(yīng)的目標(biāo)環(huán)境。于是,開發(fā)者就能選擇設(shè)計(jì)和編碼方法以應(yīng)的目標(biāo)環(huán)境。于是,開發(fā)者就能選擇設(shè)計(jì)和編碼方法以適當(dāng)提高產(chǎn)品的可移植性。適當(dāng)提高產(chǎn)品的可移植性。 3)可重用性可重用性 從軟件開發(fā)的長遠(yuǎn)目標(biāo)上看,可重用性表明了一個軟件組從軟件開發(fā)的長遠(yuǎn)目標(biāo)上看,可重用性表明了一個軟件組件除了在最初開發(fā)的系統(tǒng)中使用之外,還可以在其它應(yīng)用件除了在最初開發(fā)的系統(tǒng)中使用之外,還可以在其它應(yīng)用程序中使用的程度。比起創(chuàng)建一個你打算只在一個應(yīng)用程程序中使用的程度。比起創(chuàng)建一個你打算只在一個應(yīng)用程序中使用的組件,開發(fā)可重用軟件的費(fèi)用會更大些??芍匦蛑惺褂玫慕M件,開發(fā)可重

47、用軟件的費(fèi)用會更大些??芍赜密浖仨殬?biāo)準(zhǔn)化、資料齊全、不依賴于特定的應(yīng)用程序用軟件必須標(biāo)準(zhǔn)化、資料齊全、不依賴于特定的應(yīng)用程序和運(yùn)行環(huán)境,并具有一般性。確定新系統(tǒng)中哪些元素需要和運(yùn)行環(huán)境,并具有一般性。確定新系統(tǒng)中哪些元素需要用方便于代碼重用的方法設(shè)計(jì),或者規(guī)定作為項(xiàng)目副產(chǎn)品用方便于代碼重用的方法設(shè)計(jì),或者規(guī)定作為項(xiàng)目副產(chǎn)品的可重用性組件庫。的可重用性組件庫。41 4)可測試性可測試性 可測試性指的是測試軟件組件或集成產(chǎn)品時(shí)查找缺陷的可測試性指的是測試軟件組件或集成產(chǎn)品時(shí)查找缺陷的簡易程度。如果產(chǎn)品中包含復(fù)雜的算法和邏輯,或如果簡易程度。如果產(chǎn)品中包含復(fù)雜的算法和邏輯,或如果具有復(fù)雜的功能性的

48、相互關(guān)系,那么對于可測試性的設(shè)具有復(fù)雜的功能性的相互關(guān)系,那么對于可測試性的設(shè) 計(jì)就很重要。如果經(jīng)常更改產(chǎn)品,那么可測試性也是很計(jì)就很重要。如果經(jīng)常更改產(chǎn)品,那么可測試性也是很重要的,因?yàn)閷⒔?jīng)常對產(chǎn)品進(jìn)行回歸測試來判斷更改是重要的,因?yàn)閷⒔?jīng)常對產(chǎn)品進(jìn)行回歸測試來判斷更改是否破壞了現(xiàn)有的功能性。否破壞了現(xiàn)有的功能性。 如隨著圖形引擎功能的不斷增強(qiáng),需要對它進(jìn)行多次如隨著圖形引擎功能的不斷增強(qiáng),需要對它進(jìn)行多次測試,所以作出了如下的設(shè)計(jì)目標(biāo):測試,所以作出了如下的設(shè)計(jì)目標(biāo):“一個模塊的最大一個模塊的最大循環(huán)復(fù)雜度不能超過循環(huán)復(fù)雜度不能超過20?!?(循環(huán)復(fù)雜度度量一個模塊源代碼中邏輯分支數(shù)目。循環(huán)

49、復(fù)雜度度量一個模塊源代碼中邏輯分支數(shù)目。) 在一個模塊中加入過多的分支和循環(huán)將使該模塊難于在一個模塊中加入過多的分支和循環(huán)將使該模塊難于測試、理解和維護(hù)。如果一些模塊的循環(huán)復(fù)雜度大于測試、理解和維護(hù)。如果一些模塊的循環(huán)復(fù)雜度大于20,這并不會導(dǎo)致整個項(xiàng)目的失敗,但指定這樣的設(shè)計(jì)標(biāo)準(zhǔn)這并不會導(dǎo)致整個項(xiàng)目的失敗,但指定這樣的設(shè)計(jì)標(biāo)準(zhǔn)有助于開發(fā)者達(dá)到一個令人滿意的質(zhì)量目標(biāo)。有助于開發(fā)者達(dá)到一個令人滿意的質(zhì)量目標(biāo)。423 屬性的取舍屬性的取舍l 有時(shí),不可避免地要對一些特定的屬性對進(jìn)行取有時(shí),不可避免地要對一些特定的屬性對進(jìn)行取舍。用戶和開發(fā)者必須確定哪些屬性比其它屬性更舍。用戶和開發(fā)者必須確定哪些屬

50、性比其它屬性更為重要,并定出優(yōu)先級。在他們作決策時(shí),要始終為重要,并定出優(yōu)先級。在他們作決策時(shí),要始終遵照那些優(yōu)先級。遵照那些優(yōu)先級。l某質(zhì)量屬性的增強(qiáng)會對其它的屬性產(chǎn)生積極或不某質(zhì)量屬性的增強(qiáng)會對其它的屬性產(chǎn)生積極或不利影響。例如,增強(qiáng)軟件可重用性的設(shè)計(jì)方法也可利影響。例如,增強(qiáng)軟件可重用性的設(shè)計(jì)方法也可以使軟件變得靈活、更易于與其它軟件組件相連接、以使軟件變得靈活、更易于與其它軟件組件相連接、更易于維護(hù)、更易于移植并且更易于測試。更易于維護(hù)、更易于移植并且更易于測試。43l 高效性對其它許多屬性具有消極影響。如果你高效性對其它許多屬性具有消極影響。如果你編寫最緊湊,最快的代碼,并使用一種特殊的預(yù)編寫最緊湊,最快的代碼,并使用一種特殊的預(yù)編譯器和操作系統(tǒng),那么

溫馨提示

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

評論

0/150

提交評論