1.軟件質(zhì)量的內(nèi)涵
首先再來(lái)看PMBOK對(duì)質(zhì)量的定義是內(nèi)在的系列特征滿足要求的程度。這里我們的關(guān)注點(diǎn)是這個(gè)要求是誰(shuí)的要求,如果僅僅理解為最終的使用軟件的用戶的要求,那就片面的理解了軟件的質(zhì)量。因此這里的要求應(yīng)該理解為滿足內(nèi)部用戶和外部用戶的要求。
◆外部用戶要求
正確,高效,健壯,易用和可靠
◆內(nèi)部維護(hù)人員要求
可維護(hù)(代碼易讀,易讀,易Debug,注釋清晰,容易擴(kuò)展)
◆內(nèi)部測(cè)試人員要求
可測(cè)試,易用,易理解
◆企業(yè)產(chǎn)品化要求
可擴(kuò)展,可移植,可配置,靈活,重用性高,模塊和組件化
因此質(zhì)量不是無(wú)中生有,是有具體的需求驅(qū)動(dòng),質(zhì)量也是為了滿足某種需求。但一開始可能我們并不能意識(shí)到這種需求,如一開始并不注意軟件可維護(hù)性,到了后期隨著需求不斷變更修改和人員交替,軟件維護(hù)拖垮掉項(xiàng)目一半人員時(shí)候才反省軟件可維護(hù)性的重要性,才來(lái)關(guān)注這個(gè)質(zhì)量需求并制訂相應(yīng)的質(zhì)量目標(biāo)。
只有當(dāng)所有人由于沒(méi)有執(zhí)行某些規(guī)則而導(dǎo)致慘痛代價(jià)后,人們才可能真正理解規(guī)則的價(jià)值。
因此《代碼大全》將軟件質(zhì)量特征分為內(nèi)部質(zhì)量特征和外部質(zhì)量特征:
外部質(zhì)量特征包括:
◆正確性
整個(gè)系統(tǒng)受說(shuō)明、設(shè)計(jì)和實(shí)現(xiàn)的錯(cuò)誤影響程度。
◆可用性
用戶學(xué)會(huì)和使用系統(tǒng)的難易程度。
◆效率
對(duì)系統(tǒng)資源的最小利用,包括存儲(chǔ)和執(zhí)行時(shí)間。
◆可靠性
在一定條件下執(zhí)行特定功能的能力。
◆完整性
防止非法或不適當(dāng)?shù)卦L問(wèn)。完整性思想包括:限制非法用戶訪問(wèn),同時(shí)確保證數(shù)據(jù)恰當(dāng)訪問(wèn);并行數(shù)據(jù)表進(jìn)行并行修改;數(shù)據(jù)段僅含有有效數(shù)據(jù)等等。
◆適應(yīng)性
系統(tǒng)在應(yīng)用或其它環(huán)境下不作修改就能使用的能力。
◆精確性
系統(tǒng)不受錯(cuò)誤影響的程度,尤其是數(shù)據(jù)輸出方面。精確性和正確性是不同的。精確性是對(duì)系統(tǒng)完成其工作性能良好的衡量,而不是它設(shè)計(jì)得是否正確。
◆堅(jiān)固性
系統(tǒng)對(duì)無(wú)效輸入或壓力環(huán)境中能繼續(xù)執(zhí)行其功能的能力。
內(nèi)部質(zhì)量特征包括:
◆可維護(hù)性
修改一個(gè)軟件系統(tǒng),提高其性能或修正其錯(cuò)誤的能力。
◆靈活性
修改系統(tǒng)使其能適應(yīng)于不同的用途或環(huán)境的能力,而不必對(duì)系統(tǒng)進(jìn)行特定的設(shè)計(jì)。
◆可移植性
能修改所設(shè)計(jì)的某一系統(tǒng)使其能在其它環(huán)境下運(yùn)行的能力。
◆可重用性
能將系統(tǒng)的一部分用于其它系統(tǒng)的難易程度。
◆可讀性
能讀懂或理解系統(tǒng)源代碼的能力,尤其是在細(xì)節(jié)說(shuō)明這一級(jí)上。
◆可測(cè)試性
對(duì)整個(gè)系統(tǒng)進(jìn)行單元或系統(tǒng)測(cè)試以證實(shí)其滿足所有需求性能的測(cè)試難易程度。
◆可理解性
能從整個(gè)系統(tǒng)水平或細(xì)節(jié)說(shuō)明這一級(jí)上理解整個(gè)系統(tǒng)的難易程度??衫斫庑砸瓤勺x性從更一般的水平上討論系統(tǒng)的緊密性。
對(duì)于一個(gè)實(shí)際的軟件項(xiàng)目而言,想把上面的所有質(zhì)量特征都做好是一件很難的事情,尤其是在項(xiàng)目有明確的進(jìn)度壓力下面。質(zhì)量,資源和時(shí)間是項(xiàng)目管理的三要素,三者相互影響和制約,提高質(zhì)量是有成本和代價(jià)的,提高質(zhì)量可能帶來(lái)更多資源的投入或進(jìn)度的延后。因此項(xiàng)目經(jīng)理的關(guān)注點(diǎn)就是如何根據(jù)項(xiàng)目的實(shí)際特點(diǎn)來(lái)平衡好這三要素,制訂切實(shí)可行的質(zhì)量目標(biāo)。
2.提高軟件質(zhì)量的方法
首先應(yīng)該確認(rèn)的是質(zhì)量需要一個(gè)持續(xù)改進(jìn)和提高的過(guò)程。談提高軟件質(zhì)量就是首先要有歷史參照,根據(jù)參照制定新的質(zhì)量目標(biāo),然后對(duì)產(chǎn)品進(jìn)行驗(yàn)證達(dá)到新的更高級(jí)別的目標(biāo)。你的軟件是否可維護(hù)不是某個(gè)開發(fā)人員說(shuō)了算,而是應(yīng)該有一套明確的標(biāo)準(zhǔn)和準(zhǔn)則。
PMBOK里面對(duì)于質(zhì)量管理過(guò)程組提及到實(shí)施質(zhì)量保證和實(shí)施質(zhì)量控制兩個(gè)重要的過(guò)程。質(zhì)量保證是確保項(xiàng)目按照組織定義的過(guò)程在做事情;而質(zhì)量控制是對(duì)你的結(jié)果進(jìn)行檢查,看是否達(dá)到了預(yù)期的質(zhì)量目標(biāo)。在CMMI里面我們關(guān)注過(guò)程改進(jìn)和軟件質(zhì)量的關(guān)系,過(guò)程改進(jìn)是否真正提高軟件質(zhì)量,一個(gè)重點(diǎn)就是過(guò)程的有效性問(wèn)題,如果我們能干確保過(guò)程是有效的,那是肯定可以提高軟件質(zhì)量的。
CMMI中的每一個(gè)過(guò)程都是其它軟件企業(yè)多年的積累,有可以借鑒的地方。過(guò)程并不是要多繁瑣或者說(shuō)一定要采用什么方法工具,關(guān)鍵在于你采用的過(guò)程是否真正有效,因此任何走形式主義的過(guò)程最終結(jié)果都是失敗。
軟件質(zhì)量保證是一種重要的質(zhì)量活動(dòng),最終的目的還是要提高軟件質(zhì)量,而有效的方法就是關(guān)注軟件開發(fā)生命周期,關(guān)注軟件開發(fā)的各階段的活動(dòng)。只有每個(gè)階段都滿足要求,才可能保證整個(gè)軟件質(zhì)量。
對(duì)于一個(gè)好的軟件質(zhì)量管理計(jì)劃,應(yīng)該包含以下內(nèi)容:
◆質(zhì)量目標(biāo)
沒(méi)有目標(biāo)就談不上改進(jìn)和衡量質(zhì)量是否提高基準(zhǔn)。質(zhì)量目標(biāo)分為大目標(biāo)和小目標(biāo),大目標(biāo)對(duì)于軟件產(chǎn)品而言最重要的就是軟件發(fā)布后的缺陷情況。而為了達(dá)到這個(gè)大目標(biāo)需要執(zhí)行評(píng)審,Review,測(cè)試等各種活動(dòng),需要將大目標(biāo)分解為各種小目標(biāo):如缺陷的泄漏率目標(biāo),評(píng)審的覆蓋率情況,測(cè)試的覆蓋率情況等。
◆質(zhì)量保證活動(dòng)
項(xiàng)目進(jìn)行過(guò)程中需要進(jìn)行哪些質(zhì)量保證活動(dòng)?對(duì)于管理過(guò)程,技術(shù)過(guò)程,各階段的輸出都需要有相關(guān)的質(zhì)量保證活動(dòng)。在一些組織中,確定質(zhì)量保證活動(dòng)確定質(zhì)量保證活動(dòng)急促和草率的編程往往是一件常見(jiàn)的事。程序代碼充滿錯(cuò)誤但能很快完成編程的程序員往往能得到更多的獎(jiǎng)勵(lì)。而高質(zhì)量的程序員。雖然編出的程序優(yōu)秀而且確保其是可用的,卻往往得不到這種禮遇。[注]代碼大全專門提及到質(zhì)量保證活動(dòng)的一個(gè)重要作用是讓開發(fā)人員意識(shí)到軟件質(zhì)量是第一位的,形成質(zhì)量意識(shí),但這點(diǎn)卻經(jīng)常無(wú)法做到。
◆測(cè)試策略和計(jì)劃
測(cè)試策略或計(jì)劃一般需要單獨(dú)出相關(guān)的計(jì)劃或文檔,但整個(gè)測(cè)試策略仍然要以項(xiàng)目需要達(dá)到的質(zhì)量目標(biāo)為依據(jù)來(lái)制定。
◆軟件工程準(zhǔn)則
需要遵守的生命周期模型,需求規(guī)范,設(shè)計(jì)規(guī)范,編碼規(guī)范,界面規(guī)范,測(cè)試流程和規(guī)范等。這些都屬于軟件工程準(zhǔn)則的內(nèi)容,而且很多規(guī)范要在項(xiàng)目一開始就約定好并嚴(yán)格執(zhí)行,這樣才能夠保證項(xiàng)目成員有共同的語(yǔ)言。
◆評(píng)審
預(yù)防總是比補(bǔ)救的成本低,因此評(píng)審在軟件開發(fā)中更應(yīng)該受到關(guān)注。正式的審查,非正式評(píng)審,互查,代碼Review和走讀等都是很好的評(píng)審手段,項(xiàng)目應(yīng)該根據(jù)實(shí)際情況和質(zhì)量目標(biāo)來(lái)確定各階段采用哪些評(píng)審方式,評(píng)審的覆蓋率目標(biāo)等。
◆質(zhì)量數(shù)據(jù)的度量
質(zhì)量保證計(jì)劃的結(jié)果應(yīng)該是可以度量的,否則無(wú)法知道改進(jìn)工作的效果。因此在質(zhì)量控制中我們關(guān)注對(duì)結(jié)果進(jìn)行度量,分析度量數(shù)據(jù)以判斷實(shí)際的數(shù)據(jù)是否滿足了預(yù)先定義的質(zhì)量目標(biāo)。當(dāng)偏差超過(guò)我們預(yù)定義的限度后還要分析問(wèn)題,查找根源,進(jìn)行糾正和預(yù)防。
根據(jù)《編程效率》一書,沒(méi)種方法發(fā)現(xiàn)缺陷的比例在通常情況下都不會(huì)超過(guò)65%,因此為了達(dá)到質(zhì)量目標(biāo)一般需要聯(lián)合使用一種或多種方法或活動(dòng)。
3.軟件質(zhì)量的一般原則
提高效率和質(zhì)量的最好方法是減少代碼再加工的時(shí)間,不論再加工是由于要求的變更、設(shè)計(jì)的修改或調(diào)試調(diào)試通常要占一個(gè)傳統(tǒng)的初始軟件開發(fā)周期的50%。消除掉防止錯(cuò)誤的軟件調(diào)試可提高生產(chǎn)率。因此,縮短軟件開發(fā)時(shí)間最為明顯的方法是提高產(chǎn)品質(zhì)量,減少調(diào)試和再開發(fā)軟件所需時(shí)間。
如果不顧質(zhì)量而只是想用最短的時(shí)間將軟件開發(fā)出來(lái),往往很可能需要較長(zhǎng)的時(shí)間和花費(fèi)超出。從一開始就著眼于取得最高可能質(zhì)量和可靠性的軟件開發(fā),易于取得最好的開發(fā)進(jìn)度、最高的生產(chǎn)率甚至是最好的市場(chǎng)成功率。
前期活動(dòng)較后期對(duì)產(chǎn)品質(zhì)量有更大的影響,你在前期活動(dòng)中所投入的時(shí)間將會(huì)節(jié)省更多的后期時(shí)間。其結(jié)果是較少的錯(cuò)誤、較短的開發(fā)時(shí)間和較低的代價(jià)。
溫馨提示:因考試政策、內(nèi)容不斷變化與調(diào)整,信管網(wǎng)網(wǎng)站提供的以上信息僅供參考,如有異議,請(qǐng)以權(quán)威部門公布的內(nèi)容為準(zhǔn)!
信管網(wǎng)致力于為廣大信管從業(yè)人員、愛(ài)好者、大學(xué)生提供專業(yè)、高質(zhì)量的課程和服務(wù),解決其考試證書、技能提升和就業(yè)的需求。
信管網(wǎng)軟考課程由信管網(wǎng)依托10年專業(yè)軟考教研傾力打造,官方教材參編作者和資深講師坐鎮(zhèn),通過(guò)深研歷年考試出題規(guī)律與考試大綱,深挖核心知識(shí)與高頻考點(diǎn),為學(xué)員考試保駕護(hù)航。面授、直播&錄播,多種班型靈活學(xué)習(xí),滿足不同學(xué)員考證需求,降低課程學(xué)習(xí)難度,使學(xué)習(xí)效果事半功倍。
發(fā)表評(píng)論 查看完整評(píng)論 | |