生活随笔
收集整理的這篇文章主要介紹了
软件质量基本概念
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
如何理解軟件的質(zhì)量
什么是質(zhì)量? 詞典的定義是:① 典型的或本質(zhì)的特征;② 事物固有的或區(qū)別于其他事物的特征或本質(zhì);③ 優(yōu)良或出色的程度。 CMM對(duì)質(zhì)量的定義是:① 一個(gè)系統(tǒng)、組件或過程符合特定需求的程度;② 一個(gè)系統(tǒng)、組件或過程符合客戶或用戶的要求或期望的程度。 上述定義很抽象,軟件開發(fā)人員看了準(zhǔn)會(huì)一臉迷惘。軟件的質(zhì)量不容易說清楚,但我們今天非得把它搞個(gè)水落石出不可。 就以健康做類比吧。早先人們以為長得結(jié)實(shí)、飯量大就是健康,這顯然是不科學(xué)的。現(xiàn)代人總是通過考察多方面的生理因素來判斷是否健康,如測(cè)量身高、體重、心跳、血壓、血液、體溫等。如果上述因素都合格,那么表明這人是健康的。如果某個(gè)因素不合格,則表明此人在某個(gè)方面不健康,醫(yī)生會(huì)對(duì)癥下藥。同理,我們也可以通過考察軟件的質(zhì)量屬性來評(píng)價(jià)軟件的質(zhì)量,并給出提高軟件質(zhì)量的方法。 一提起軟件的質(zhì)量屬性,人們首先想到的是“正確性”。“正確性”的確很重要,但運(yùn)行正確的軟件就是高質(zhì)量的軟件嗎?不見得,因?yàn)檫@個(gè)軟件也許運(yùn)行速度很低,并且浪費(fèi)內(nèi)存,甚至代碼寫得一塌糊涂,除了開發(fā)者本人誰也看不懂,也不會(huì)使用。可見正確性只是反映軟件質(zhì)量的一個(gè)因素而已。 軟件的質(zhì)量屬性很多,如正確性、精確性,健壯性、可靠性、容錯(cuò)性、性能、易用性、安全性、可擴(kuò)展性、可復(fù)用性、兼容性、可移植性、可測(cè)試性、可維護(hù)性、靈活性等。除此之外還可以列出十幾個(gè),新詞可謂層出不窮。 上述這些質(zhì)量屬性“你中有我,我中有他”。如果開發(fā)人員每天都要面對(duì)那么多的質(zhì)量屬性咬文嚼字,不久就會(huì)迂腐得像孔乙己,因此我們有必要對(duì)質(zhì)量屬性做些分類和整合。質(zhì)量屬性可分為兩大類:“功能性”與“非功能性”,后者有時(shí)也稱為“能力”(Capability)。 從實(shí)用角度出發(fā),本章將重點(diǎn)論述“10大”質(zhì)量屬性,如表1-1所示。 表1-1?“10大”軟件質(zhì)量屬性
| 功?能?性 | 正確性(Correctness) 健壯性(Robustness) 可靠性(Reliability) |
| 非 功 能 性 | 性能(Performance) 易用性(Usability) 清晰性(Clarity) 安全性(Security) 可擴(kuò)展性(Extendibility) 兼容性(Compatibility) 可移植性(Portability) |
其中,功能性質(zhì)量屬性有3個(gè):正確性、健壯性和可靠性;非功能性質(zhì)量屬性有7個(gè):性能、易用性、清晰性、安全性、可擴(kuò)展性、兼容性和可移植性。 為什么碰巧是“10大”呢? 不為什么,只是方便記憶而已(如同國際、國內(nèi)經(jīng)常評(píng)“10大”那樣)。 為什么“10大”里面不包括可測(cè)試性、可維護(hù)性、靈活性呢?它們不也是很重要的嗎? 它們是很重要,但不是軟件產(chǎn)品的賣點(diǎn),所以擠不進(jìn)“10大”行列。我認(rèn)為如果做好了上述“10大”質(zhì)量屬性,軟件將會(huì)自然而然地具備良好的可測(cè)試性、可維護(hù)性。人們很少純粹地去提高可測(cè)試性和可維護(hù)性,勿要顛倒因果。至于靈活性,它有益處也有壞處,該靈活的地方已經(jīng)被其他屬性覆蓋,而不該靈活的地方就不要刻意去追求。 根據(jù)經(jīng)驗(yàn),如果你想一股腦兒地把任何事情都做好,結(jié)果通常是什么都做不好,做事總是要分主次的。什么是重要的質(zhì)量屬性,應(yīng)當(dāng)視具體產(chǎn)品的特征和應(yīng)用環(huán)境而定,請(qǐng)讀者不要受本書觀點(diǎn)的限制。最簡單的判別方式就是考察該質(zhì)量屬性是否被用戶關(guān)注(即賣點(diǎn))。 提高軟件質(zhì)量的基本方法 質(zhì)量的死對(duì)頭是缺陷,缺陷是混在產(chǎn)品中的人們不喜歡、不想要的東西。缺陷越多質(zhì)量越低,缺陷越少質(zhì)量越高。 Bug是缺陷的形象比喻,人們喜歡說Bug是因?yàn)榭梢园袯ug當(dāng)作“替罪羊”。軟件的缺陷明明是人造成的,有了Bug這個(gè)詞后就可以把責(zé)任推給Bug——“都是Bug惹的禍”。唉,當(dāng)一只Bug真是太冤枉了! 軟件存在缺陷嗎?是的,有以下典故為證。
錯(cuò)誤是嚴(yán)重的缺陷。醫(yī)生犯的錯(cuò)誤最終會(huì)被埋葬在地下,從此一了百了。但軟件的錯(cuò)誤不會(huì)自動(dòng)消失,它會(huì)一直騷擾用戶。據(jù)統(tǒng)計(jì),對(duì)于大多數(shù)的軟件產(chǎn)品而言,用于測(cè)試與改錯(cuò)的工作量和成本將占整個(gè)軟件開發(fā)周期的30%,這是巨大的浪費(fèi)。如果不懂得如何有效地提高軟件質(zhì)量,項(xiàng)目會(huì)付出很高的代價(jià),你(開發(fā)人員)不僅沒有功勞,也沒人欣賞你的苦勞,你擁有最多的將只是疲勞。 怎樣才能提高軟件的質(zhì)量呢? 還是先來聽一個(gè)中國郎中治病的故事吧!
提高軟件質(zhì)量的基本手段是消除軟件缺陷。與上述三個(gè)郎中治病很相似,消除軟件缺陷也有三種基本方式: (1)在開發(fā)過程中有效地防止工作成果產(chǎn)生缺陷,將高質(zhì)量內(nèi)建于開發(fā)過程之中。這就是“預(yù)防勝于治療”的道理,無疑是最佳方式,但是要求開發(fā)人員必須懂得正確地做事(門檻比較高)。我們學(xué)習(xí)“高質(zhì)量編程”的目的就是要在干活的時(shí)候一次性編寫出高質(zhì)量的程序,而不是在程序出錯(cuò)后才去修補(bǔ)。 (2)當(dāng)工作成果剛剛產(chǎn)生時(shí)馬上進(jìn)行質(zhì)量檢查,及時(shí)找出并消除工作成果中的缺陷—這種方式效果比較好,人們一般都能學(xué)會(huì)。最常用的方法是技術(shù)評(píng)審、測(cè)試和質(zhì)量保證等(詳見本章1.4節(jié)),已經(jīng)被企業(yè)廣泛采用并取得了成效。 (3)當(dāng)軟件交付給用戶后,用著用著就出錯(cuò)了,趕緊請(qǐng)開發(fā)者來補(bǔ)救,這種方式的代價(jià)最高。可笑的是,當(dāng)軟件系統(tǒng)在用戶那里出故障了,那些現(xiàn)場(chǎng)補(bǔ)救成功的人倒成了英雄,好心用戶甚至還寄來感謝信。J “零缺陷”理念 質(zhì)量的最高境界是什么?是盡善盡美,即“零缺陷”。 “零缺陷”理念來源于國際上一些著名的硬件廠商。盡管軟件的開發(fā)與硬件生產(chǎn)有很大的區(qū)別,但我們?nèi)钥梢越梃b,從中得到啟迪。 人在做一件事情時(shí),由于存在很多不確定的因素,一般不可能100%地達(dá)到目標(biāo)。假設(shè)平常人做事能完成目標(biāo)的80%。如果某個(gè)人的目標(biāo)是100分,那么他最終成績可達(dá)80分;如果某個(gè)人的目標(biāo)只是60分,那么他最終成績只有48分。我們?cè)诳紙?chǎng)上身經(jīng)百戰(zhàn),很清楚那些只想混及格的學(xué)生通常都不會(huì)及格。即使學(xué)習(xí)好的學(xué)生也常有失誤,因而捶胸頓足。 做一個(gè)項(xiàng)目通常需要多人協(xié)作。假設(shè)某系統(tǒng)的總質(zhì)量是10個(gè)開發(fā)人員的工作質(zhì)量之積,即最高值為1.0,最低值為0。如果每個(gè)人的質(zhì)量目標(biāo)是0.95,那么10個(gè)人的累積質(zhì)量不會(huì)超過0.598。如果每個(gè)人的質(zhì)量目標(biāo)是0.9,那么10個(gè)人的累積質(zhì)量不會(huì)超過0.35。只有每個(gè)人都做到1.0,系統(tǒng)總質(zhì)量才會(huì)是1.0。只要其中一人的工作質(zhì)量是0,那么系統(tǒng)總質(zhì)量也就成了0。因系統(tǒng)之中的一個(gè)缺陷而導(dǎo)致機(jī)毀人亡的事件已不罕見。 上述比喻雖然嚴(yán)厲了一些,但從嚴(yán)要求只有好處沒有壞處。如果不嚴(yán)以律己,人的墮落就會(huì)很快。如果沒有“零缺陷”的質(zhì)量理念,也許缺陷就會(huì)成堆。 從理念到行動(dòng)還是有一定距離的,企業(yè)在開發(fā)產(chǎn)品時(shí)應(yīng)當(dāng)根據(jù)自身實(shí)力和用戶的期望值來設(shè)定可以實(shí)現(xiàn)的質(zhì)量目標(biāo)。過低的質(zhì)量目標(biāo)會(huì)毀壞企業(yè)的聲譽(yù),而過高的質(zhì)量目標(biāo)則有可能導(dǎo)致成本過高而拖累企業(yè)(請(qǐng)參見本章1.3節(jié))。 本文節(jié)選自《高質(zhì)量程序設(shè)計(jì)指南:C++/C語言》
林銳,韓永泉編著 電子工業(yè)出版社出版
轉(zhuǎn)載于:https://blog.51cto.com/bvbroadview/1072649
總結(jié)
以上是生活随笔為你收集整理的软件质量基本概念的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。