登錄

軟件質(zhì)量

百科 > 軟件項(xiàng)目管理 > 軟件質(zhì)量

1.什么是軟件質(zhì)量

  軟件質(zhì)量是指:“對(duì)用戶在功能和性能方面需求的滿足、對(duì)規(guī)定的標(biāo)準(zhǔn)和規(guī)范的遵循以及正規(guī)軟件某些公認(rèn)的應(yīng)該具有的本質(zhì)”。該軟件質(zhì)量定義一共強(qiáng)調(diào)了三項(xiàng):前二項(xiàng)是根據(jù)質(zhì)量術(shù)語(yǔ)“明確需要而規(guī)定的;后一項(xiàng)是按術(shù)語(yǔ)“隱含需要”而提出的意即:用戶的需求是軟件質(zhì)量評(píng)價(jià)的基礎(chǔ),不滿足用戶需求的軟件是不能交付使用和走向市場(chǎng)的;其次為規(guī)定的標(biāo)準(zhǔn)和規(guī)范是軟件開(kāi)發(fā)的共同準(zhǔn)則,不遵循這些標(biāo)準(zhǔn)和規(guī)范,就可能導(dǎo)致軟件開(kāi)發(fā)的無(wú)序和軟件質(zhì)量的低下;再次是對(duì)軟件的某些要求雖未明確提出,但卻是大家公認(rèn)的,也應(yīng)得到滿足

2.影響軟件質(zhì)量的因素

  軟件質(zhì)量包括兩方面的內(nèi)容,(1)軟件過(guò)程質(zhì)量;(2)軟件產(chǎn)品質(zhì)量。目前流行的標(biāo)準(zhǔn)和模型充分體現(xiàn)了這一點(diǎn),其中最具代表性就是ISO系列標(biāo)準(zhǔn)和CMM。影響軟件質(zhì)量的因素如下:

  1.確性

  是指系統(tǒng)滿足規(guī)格說(shuō)明和用戶目標(biāo)的程度,即在預(yù)定環(huán)境下能正確地完成預(yù)期功能的程度。它要求軟件沒(méi)有錯(cuò)誤,能夠滿足用戶的目標(biāo)。

  2.可靠性

  是指在規(guī)定的時(shí)間和條件下,軟件所能維持其性能水平的程度??煽啃詫?duì)某些軟件是重要的質(zhì)量要求,它除了反映軟件滿足用戶需求正常運(yùn)行的程度,且反映了在故障發(fā)生時(shí)能繼續(xù)運(yùn)行的程度。

  3.性能

  性能通常是指軟件的“時(shí)間一空間”效率,而不僅是指軟件的運(yùn)行速度。人們總希望軟件的運(yùn)行速度高些,并且占用資源少些。既要馬兒跑得快,又要馬兒吃的少。性能優(yōu)化的關(guān)鍵工作是找出限制性能的“瓶頸”,不要在無(wú)關(guān)痛癢的地方瞎忙乎。

  程序員可以通過(guò)優(yōu)化數(shù)據(jù)結(jié)構(gòu)、算法和代碼來(lái)提高軟件的性能。例如數(shù)據(jù)庫(kù)程序的優(yōu)化。算法復(fù)雜度分析是很好的方法,可以達(dá)到“未卜先知”的功效。

  性能優(yōu)化就好像從海綿里擠水一樣,你不擠,水就不出來(lái),你越擠海綿越干。有些程序員認(rèn)為現(xiàn)在的計(jì)算機(jī)不僅速度越來(lái)越高,而且內(nèi)存越來(lái)越大,因此軟件性能優(yōu)化的必要性下降了。這種看法是不對(duì)的,殊不知隨著機(jī)器的升級(jí),軟件系統(tǒng)也越來(lái)越龐大了和復(fù)雜了,性能優(yōu)化仍然大有必要。

  4.易用性

  指對(duì)于一個(gè)軟件,用戶學(xué)習(xí)、操作、準(zhǔn)備輸入和理解輸出時(shí),所做努力的程度。易使用性反映了與用戶的友善性,即用戶在使用本軟件時(shí)是否方便?,F(xiàn)代人的生活節(jié)奏快,干啥事都想圖個(gè)方便。所以把易用性作為重要的質(zhì)量屬性對(duì)待無(wú)可非議。

  軟件的易用性要讓用戶來(lái)評(píng)價(jià)。當(dāng)用戶真的感到軟件很好用時(shí),一股溫暖的感覺(jué)油然而生,于是就用“界面友好”、“方便易用”等詞來(lái)評(píng)價(jià)軟件產(chǎn)品

  5.清晰性

  清晰意味著所有的工作成果易讀、易理解,可以提高團(tuán)隊(duì)開(kāi)發(fā)效率,降低維護(hù)代價(jià)。

  開(kāi)發(fā)人員只有在自己思路清晰的時(shí)候才可能寫(xiě)出讓別人易讀、易理解的程序和文檔。

  可理解的東西通常是簡(jiǎn)潔的。一個(gè)原始問(wèn)題可能很復(fù)雜,但高水平的人就能夠把軟件系統(tǒng)設(shè)計(jì)得很簡(jiǎn)潔。如果軟件系統(tǒng)臃腫不堪,它遲早會(huì)出問(wèn)題。所以簡(jiǎn)潔是人們對(duì)工作“精益求精”的結(jié)果,而不是潦草應(yīng)付的結(jié)果。

  6.安全性

  安全性是指防止系統(tǒng)被非法入侵的能力,既屬于技術(shù)問(wèn)題又屬于管理問(wèn)題。信息安全是一門(mén)比較深?yuàn)W的學(xué)問(wèn),其發(fā)展是建立在正義與邪惡的斗爭(zhēng)之上。究竟什么樣的安全性是令人滿意的呢?一般地,如果黑客為非法入侵花費(fèi)的代價(jià)(考慮時(shí)間、費(fèi)用、風(fēng)險(xiǎn)等因素)高于得到的好處,那么這樣的系統(tǒng)可以認(rèn)為是安全的。對(duì)于普通軟件,并不一點(diǎn)要追求很高的安全性,也不能完全忽視安全性,要先分析黑客行為。

  7.維修性

  指在一個(gè)可運(yùn)行軟件中,為了滿足用戶需求、環(huán)境改變或軟件錯(cuò)誤發(fā)生時(shí),進(jìn)行相應(yīng)修改所做的努力程度??删S修性反映了在用戶需求改變或軟件環(huán)境發(fā)生變更時(shí),對(duì)軟件系統(tǒng)進(jìn)行相應(yīng)修改的容易程度。一個(gè)易于維護(hù)的軟件系統(tǒng)也是一個(gè)易理解、易測(cè)試和易修改的軟件,以便糾正或增加新的功能,或允許在不同軟件環(huán)境上進(jìn)行操作。

  8.可擴(kuò)展性

  可擴(kuò)展性反映軟件適應(yīng)“變化”的能力。在軟件開(kāi)發(fā)過(guò)程中,“變化”是司空見(jiàn)慣的事情,如需求、設(shè)計(jì)的變化,算法的改進(jìn),程序的變化等等。現(xiàn)代軟件產(chǎn)品通常采用“增量開(kāi)發(fā)模式”,不斷推出新版本,獲取增值利潤(rùn)。可擴(kuò)展性越來(lái)越重要??蓴U(kuò)展性是系統(tǒng)設(shè)計(jì)階段重點(diǎn)考慮的質(zhì)量屬性。

  9.健壯性

  健壯性是指在異常情況下,軟件能夠正常運(yùn)行的能力。正確性描述軟件在需求范圍之內(nèi)的行為,而健壯性描述軟件在需求范圍之外的行為。開(kāi)發(fā)者往往把異常情況錯(cuò)當(dāng)成正常情況而不作處理,結(jié)果降低了健壯性。用戶才不管正確性與健壯性的區(qū)別,反正軟件出了差錯(cuò)都是開(kāi)發(fā)方的錯(cuò)。所以提高軟件的健壯性也是開(kāi)發(fā)者的義務(wù)。健壯性有兩層含義:一是容錯(cuò)能力,二是恢復(fù)能力。從語(yǔ)義上理解,恢復(fù)不及容錯(cuò)那么健壯。Unix容錯(cuò)能力很強(qiáng),可惜不好用。Windows容錯(cuò)能力較差,但是恢復(fù)能力很好,而且很好用。占了90%的操作系統(tǒng)市場(chǎng)。

  10.可移植性

  指一個(gè)計(jì)算機(jī)系統(tǒng)或環(huán)境轉(zhuǎn)移到另一個(gè)計(jì)算機(jī)系統(tǒng)或環(huán)境的容易程度。主要體現(xiàn)為代碼的可移植性。編程語(yǔ)言越低級(jí),用它編寫(xiě)的程序越難移植,反之則越容易。軟件設(shè)計(jì)時(shí)應(yīng)該將“設(shè)備相關(guān)程序”與“設(shè)備無(wú)關(guān)程序”分開(kāi),將“功能模塊”與“用戶界面”分開(kāi)。

  11.兼容性

  兼容性是指不同產(chǎn)品(或者新老產(chǎn)品)相互交換信息的能力。例如兩個(gè)字處理軟件的文件格式兼容,那么它們都可以操作對(duì)方的文件,這種能力對(duì)用戶很有好處。兼容性的商業(yè)規(guī)則:弱者設(shè)法與強(qiáng)者兼容,否則無(wú)容身之地;強(qiáng)者應(yīng)當(dāng)避免被兼容,否則市場(chǎng)將被瓜分。

評(píng)論  |   0條評(píng)論