如何評(píng)價(jià)代碼質(zhì)量_第1頁(yè)
如何評(píng)價(jià)代碼質(zhì)量_第2頁(yè)
如何評(píng)價(jià)代碼質(zhì)量_第3頁(yè)
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡(jiǎn)介

如何評(píng)價(jià)代碼質(zhì)量我們平時(shí)買(mǎi)東西的時(shí)候,要看一看東西的質(zhì)量怎么樣,如顏色好看否、樣式時(shí)尚否、經(jīng)久耐用否,然后再?zèng)Q定買(mǎi)不買(mǎi)。軟件作為一種商品,也存在質(zhì)量高低之分,從哪些方面來(lái)評(píng)價(jià)軟件的質(zhì)量狀況呢?代碼是軟件的元素,軟件是產(chǎn)品的靈魂,所以評(píng)價(jià)代碼質(zhì)量的標(biāo)準(zhǔn)源于評(píng)價(jià)產(chǎn)品質(zhì)量的標(biāo)準(zhǔn)。產(chǎn)品服務(wù)于用戶,用戶的評(píng)價(jià)體現(xiàn)了代碼的質(zhì)量,用戶在使用軟件產(chǎn)品時(shí)的三種不同傾向或觀點(diǎn):產(chǎn)品運(yùn)行、產(chǎn)品修改和產(chǎn)品轉(zhuǎn)移??身鴶[忡■[我能熔貢它嗎即屍培性(程能改堂它網(wǎng)可#1試桂盛壯測(cè)試它■劃a町科繼件(覆代心対命扭栽|:獨(dú)用它?護(hù))町玉用性i程施I*in可眸擺忡■[我能熔貢它嗎即屍培性(程能改堂它網(wǎng)可#1試桂盛壯測(cè)試它■劃a亞確旳它醫(yī)建的需和也業(yè)壯忸牯覽弊艸直它檯近冷地晌甬町9皴申(完琥用定功能抽它需餐的岀霹機(jī)貴源參啊刃完蜒件(足足蛍全的嗎?I町用忡.{牝瞬使用它嗎和風(fēng)阻ill腿復(fù)僭定計(jì)邂充坡它眄卄由圖可見(jiàn),評(píng)價(jià)代碼質(zhì)量的主要指標(biāo):正確性(Correctness)系統(tǒng)滿足規(guī)格說(shuō)明和用戶目標(biāo)的程度,即在預(yù)定環(huán)境下能正確地完成預(yù)期功能的程度。如軟件有沒(méi)有按照需求規(guī)格來(lái)完成,計(jì)算出的結(jié)果是否正確,計(jì)算結(jié)果是否精確。健壯性/魯棒性(Robustness)健壯性是指在異常情況下(如硬件發(fā)生故障、輸入的數(shù)據(jù)無(wú)效或操作錯(cuò)誤等),軟件能夠正常運(yùn)行的能力。健壯性有兩層含義:一是容錯(cuò)能力,二是恢復(fù)能力。容錯(cuò)是指發(fā)生異常情況時(shí)系統(tǒng)不出錯(cuò)誤的能力,對(duì)于應(yīng)用于航空航天、武器、金融等領(lǐng)域的這類(lèi)高風(fēng)險(xiǎn)系統(tǒng),容錯(cuò)設(shè)計(jì)非常重要。而恢復(fù)則是指軟件發(fā)生錯(cuò)誤后(不論死活)重新運(yùn)行時(shí),能否恢復(fù)到?jīng)]有發(fā)生錯(cuò)誤前的狀態(tài)的能力。例如:因輸入數(shù)據(jù)不正確,引起系統(tǒng)異常,這是容錯(cuò)能力不高引起的健壯性問(wèn)題;操作系統(tǒng)死機(jī)了,重啟后能夠正常使用,說(shuō)明具有一定恢復(fù)能力,具有一定的健壯性;數(shù)據(jù)庫(kù)發(fā)生故障后,再次啟動(dòng)時(shí)一般能夠恢復(fù)到正常的狀態(tài),恢復(fù)能力比較好??煽啃裕≧eliability)軟件系統(tǒng)在一定的時(shí)間內(nèi)無(wú)故障運(yùn)行的能力??煽啃允且粋€(gè)與時(shí)間相關(guān)的屬性,指的是在一定環(huán)境下,在一定的時(shí)間段內(nèi),程序不出現(xiàn)故障的概率,因此是一個(gè)統(tǒng)計(jì)量,通常用平均無(wú)故障時(shí)間(MTTF,mean-timetofault)來(lái)衡量??煽啃圆煌谡_性和健壯性,軟件可靠性問(wèn)題通常是由于設(shè)計(jì)中沒(méi)有料到的異常和測(cè)試中沒(méi)有暴露的代碼缺陷引起的。例:由于某個(gè)地方數(shù)據(jù)庫(kù)連接沒(méi)有釋放,在長(zhǎng)時(shí)間運(yùn)行的時(shí)候,出現(xiàn)活動(dòng)的數(shù)據(jù)庫(kù)連接數(shù)過(guò)多,造成系統(tǒng)越來(lái)越慢,甚至系統(tǒng)停止服務(wù)。性能(Performance)性能是指軟件及時(shí)提供相應(yīng)服務(wù)的能力。具體而言,性能包括速度、吞吐量和持續(xù)高速性三方面的要求:速度往往通過(guò)平均響應(yīng)時(shí)間來(lái)度量;吞吐量通過(guò)單位時(shí)間處理的交易數(shù)來(lái)度量;持續(xù)高速性是指保持高度處理速度的能力。效率(Efficiency)指軟件對(duì)CPU處理能力和存儲(chǔ)能力這兩大類(lèi)計(jì)算機(jī)資源的使用效率。效率和性能反映了同一問(wèn)題的“表”、“里”,性能為“表”,效率為“里”。如系統(tǒng)運(yùn)算一個(gè)報(bào)表,需要很長(zhǎng)時(shí)間,這就是性能問(wèn)題。安全性(Security)指軟件同時(shí)兼顧向合法用戶提供服務(wù),以及阻止非授權(quán)使用軟件及資源的能力。安全性既屬于技術(shù)問(wèn)題又屬于管理問(wèn)題。一般地,如果黑客為非法入侵花費(fèi)的代價(jià)(考慮時(shí)間、費(fèi)用、風(fēng)險(xiǎn)等多種因素)高于得到的好處,那么這樣的系統(tǒng)就可以認(rèn)為是安全的。例:有人可以訪問(wèn)非授權(quán)的資源,這就是安全性問(wèn)題。易用性(Usability)易用性是指用戶使用軟件的容易程度。軟件的易用性要讓用戶來(lái)評(píng)價(jià)。例:對(duì)于一般用戶而言,Windows的易用性比Linux的高??捎眯?Availability)指的是產(chǎn)品對(duì)用戶來(lái)說(shuō)有效、易學(xué)、高效、好記、少錯(cuò)和令人滿意的程度,即用戶能否用軟件完成他的任務(wù),效率如何,主觀感受怎樣。ISO9241-11國(guó)際標(biāo)準(zhǔn)對(duì)可用性作了如下定義:產(chǎn)品在特定使用環(huán)境下為特定用戶用于特定用途時(shí)所具有的有效性(effectiveness)、效率(efficiency)和用戶主觀滿意度(satisfaction)。其中:有效性:用戶完成特定任務(wù)和達(dá)到特定目標(biāo)時(shí)所具有的正確和完整程度;效率:用戶完成任務(wù)的正確和完整程度與所使用資源(如時(shí)間)之間的比率;滿意度:用戶在使用產(chǎn)品過(guò)程中所感受到的主觀滿意和接受程度?;ゲ僮餍?Interoperability)指本軟件與其他系統(tǒng)交換數(shù)據(jù)和相互調(diào)用服務(wù)用以協(xié)同運(yùn)作的難易程度。例:利用WebService增加軟件的互操作性。易理解性(Understandability)理解和使用系統(tǒng)的難易程度??蓴U(kuò)展性(Extensibility)/靈活性(Flexibility)/適應(yīng)性(Adaptability)/可伸縮性(Scalability)反映軟件適應(yīng)“變化”的能力。調(diào)整、修改或改進(jìn)正在運(yùn)行的軟件系統(tǒng)以適應(yīng)新需求、變化了的需求的難易程度。例:如報(bào)銷(xiāo)系統(tǒng)原來(lái)不需要總經(jīng)理審批,現(xiàn)在要改為總經(jīng)理審批,可擴(kuò)展性強(qiáng)的系統(tǒng)不需要作太多調(diào)整;如用戶和數(shù)據(jù)量增加時(shí),通過(guò)增加服務(wù)器來(lái)提高系統(tǒng)性能,這樣可伸縮性比較強(qiáng)。可重用性(Resuability)重用軟件或其中一部分的難易程度。可測(cè)試性(Testability)對(duì)軟件測(cè)試以證明其滿足需求規(guī)約的難易程度??删S護(hù)性(Maintainability)為修改Bug、增加功能、提高質(zhì)量而診斷并修改軟件的難易程度??梢浦残?Portability)軟件不經(jīng)修改或稍加修改就可以運(yùn)行于不同軟硬件環(huán)境的難易程度,主要體現(xiàn)為代碼的可移植性。例:Java程序可以在Windows系統(tǒng)和Linux上運(yùn)行,具有較好的可移植性。軟件有這么多質(zhì)量屬性,對(duì)他們分類(lèi)似乎更容易理解一些。McCall等人于1977年將軟件質(zhì)量屬性分為三大類(lèi),即產(chǎn)品運(yùn)行、產(chǎn)品修改、產(chǎn)品轉(zhuǎn)移時(shí)的質(zhì)量屬性。溫昱著《軟件架構(gòu)設(shè)計(jì)》把軟件質(zhì)量屬性分為運(yùn)行期的軟件質(zhì)量屬性和開(kāi)發(fā)期的軟件質(zhì)量屬性。就像商品一樣,不同的人關(guān)注的質(zhì)量角度也不相同。我們可以把軟件的各種用戶找出來(lái),然后看看他們分別關(guān)注軟件質(zhì)量的哪些方面,這樣在開(kāi)發(fā)軟件的時(shí)候,就可以找出比較重要的軟件質(zhì)量屬性,就可以做到有的放矢,讓用戶在使用軟件時(shí)更加滿意。由于軟件也分成很多類(lèi)型,如操作系統(tǒng)、游戲、應(yīng)用軟件、中間件、框架等等,每種軟件對(duì)應(yīng)的用戶也不一樣,本文作為一個(gè)探討,以普通應(yīng)用軟件為例,給出軟件質(zhì)量的不同視角:利用圖形界面完成業(yè)務(wù)的用戶:正確性、健壯性、可靠性、性能、易用性、可用性、互操作性、可擴(kuò)展性進(jìn)行系統(tǒng)監(jiān)控、備份與恢復(fù)等操作的管理員:健壯性、可靠性、安全性、易用性、可用性、可擴(kuò)展性、可維護(hù)性、可移植性利用軟件提供的接口(API)進(jìn)行其他系統(tǒng)開(kāi)發(fā)的高級(jí)用戶:正確性、健壯性、可靠性、性能、可用性、互操作性、易理解性、可擴(kuò)展性進(jìn)行代碼級(jí)維護(hù)的開(kāi)發(fā)/維護(hù)人員:易理解性、可擴(kuò)展性、可重用性、可測(cè)試性、可維護(hù)性

溫馨提示

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

評(píng)論

0/150

提交評(píng)論