淺析軟件質(zhì)量的評價
摘要:本文針對軟件質(zhì)量的問題,通過可維護性、可靠性、可理解性和效率四個方面對軟件進行質(zhì)量評價,從而獲得衡量軟件質(zhì)量好壞的標(biāo)準(zhǔn)。
關(guān)鍵詞:軟件質(zhì)量;
1、引言
如何評價一個軟件的質(zhì)量,是最終獲得高質(zhì)量的軟件的重要問題。以前,對小型程序,人們一般比較強調(diào)程序的正確性和效率,近年來隨著軟件規(guī)模的增大和復(fù)雜性的上升,對問題的看法已發(fā)生了變化。目前,軟件質(zhì)量的定義還是非常模糊的,人們對此尚未形成一致的看法,但一般說來傾向于從可維護性、可靠性、可理解性和效率等方面對軟件作較全面的評價,下面分別討論之。
2、可維護性
軟件在運行階段尚需不斷“修正”,因為軟件雖經(jīng)測試但不可避免地總還隱含著各種錯誤,這些錯誤在運行階段會逐步暴露出來,因而就要進行排錯。
軟件在運行階段尚需不斷“完善”,因為系統(tǒng)經(jīng)過一個時期的使用后,用戶必然會逐步提出一些更改或擴充要求,軟件就需要相應(yīng)地不斷作修改。
軟件在運行階段往往還需作“適應(yīng)性”修改,近年來計算機業(yè)發(fā)展迅速,一般在3至5年內(nèi),硬件或系統(tǒng)軟件就會出現(xiàn)更新?lián)Q代的新產(chǎn)品,于是應(yīng)用軟件系統(tǒng)也就需要作相應(yīng)的調(diào)整或移植。
在運行期中,對軟件所做的上述修正性、完善性和適應(yīng)性修改,總稱為“維護”,它涉及再分析、再設(shè)計、再編程、再測試等活動。考慮到大型軟件系統(tǒng)的運行期可達(dá)10年以上,所以維護的工作量是極大的。
另外,維護工作也是相當(dāng)困難的,由于軟件邏輯上的復(fù)雜性,修改往往會帶來新的錯誤。據(jù)統(tǒng)計,軟件錯誤中有19%是由于修改造成的;有人還統(tǒng)計出,如果一個修改設(shè)計5至10個語句,修改成功的可能性是50%,如果一個修改設(shè)計40至50個語句,則修改成功的可能性下降至20%,因此軟件維護是很困難,很冒風(fēng)險的。
說明了在計算機軟硬件的總投資中,軟件維護所占的比例。可以看出,維護費用近年正在迅速上升,按這樣的趨勢發(fā)展下去,現(xiàn)有的人力物力將全部被束縛在維護原有系統(tǒng)上,就可能再也沒有力量去開發(fā)新的系統(tǒng)了。因此軟件維護引起了人們的普通關(guān)注,人們已意識到,一個軟件系統(tǒng)及時其他方面都相當(dāng)理想,但是如果不容易維護,他將不會有什么實際使用價值,所以,“可維護性”應(yīng)該作為評價軟件質(zhì)量的重要準(zhǔn)則。
3、可靠性
可靠性通常包括正確性和健壯性這兩個相互補充的方面。
正確性是指軟件系統(tǒng)本身沒有錯誤,所以在預(yù)期的環(huán)境條件下能夠正確地完成期望的功能。毋庸置疑,正確性對系統(tǒng)正常發(fā)揮作用是完全必要的。
對于一個小型程序,我們可以希望它是完全正確的,但對長達(dá)幾萬行甚至幾十萬行的大型軟件,我們一般不能奢望它是“完全”正確的,而且這一點也是無法證實的。此外,一個大型系統(tǒng)運行時,完全可能遇到一些意外遭到意想不到的破壞。
曾有報道:“操作員手指的一滑使稅收損失30萬美元”。這就產(chǎn)生了一個新的概念——“健壯性”,其含義是指:當(dāng)系統(tǒng)萬一遇到意外時(具體是什么意外,事先是很難預(yù)料的)能按某種預(yù)定的方式作出適當(dāng)?shù)奶幚恚缒芰⒓匆庾R到異常情況的出現(xiàn),保護起重要的信息,隔離故障區(qū)防止事故蔓延,并能及時通知管理人員請求人工干預(yù),事后從故障狀態(tài)恢復(fù)到正常狀態(tài)亦比較容易,所以健壯的系統(tǒng)應(yīng)該能避免出現(xiàn)災(zāi)難性的后果。
正確性與健壯性是相互補充的,有些系統(tǒng)可能是正確的,但它不是健壯的;而健壯的程序并不一定是絕對正確的。
總的說來,可靠的軟件系統(tǒng)在正常情況下能夠正確地工作,而且在意外情況下,亦能適當(dāng)?shù)刈鞒鎏幚恚蚨粫斐蓢?yán)重的損失。所以,“可靠性”無疑是絕對重要的。人們寧可在開發(fā)時多花些代價,提高系統(tǒng)的可靠性,與發(fā)生事故后造成的損失相比,這些代價還是值得的。
4、可理解性
在相當(dāng)長一段時間中,人們一直認(rèn)為程序只是提供給計算機的,而不是給人閱讀的,所以只要它邏輯正確,計算機能按其邏輯正確執(zhí)行就足夠了,至于它是否易于被人理解則是無關(guān)緊要的。但是隨著軟件規(guī)模的增大,人們逐步看到,在整個軟件生命期中,為進行測試、排錯或修改,開發(fā)人員經(jīng)常需要閱讀本人或他人編寫的程序和各種文檔。如果軟件易于理解,無疑將提高開發(fā)和維護的工作效率,而且出現(xiàn)錯誤的可能性也會大大下降。所以,可理解性應(yīng)該是評價軟件質(zhì)量的一個重要方面。
可理解性通常是指簡單性和清晰性,對于同一用戶要求,解決的方案可以有多個,其中最簡單、最清晰的方案往往被認(rèn)為是最好的方案。
5、效率
效率是指系統(tǒng)能否有效地使用計算機資源,如時間和空間等。這一點以前一直是非常強調(diào)的,這是過去硬件價格昂貴造成的結(jié)果。由于以下一些原因,目前人們對效率的看法已有了變化:首先,硬件價格近年來大幅度下降,所以效率已不像以前那樣舉足輕重了。第二,人們已認(rèn)識到,程序員的工作效率比程序的效率遠(yuǎn)為重要,程序員工作效率的提高不僅能減少開支,而且出錯率也會降低。第三,追求效率同時追求可維護性、可靠性等往往是相互抵觸的。
所以,效率雖然是衡量軟件質(zhì)量的一個重要方面,但在硬件價格下降、人工費用上升的情況下,人們有時也寧可犧牲效率來換取其他方面的得益。
綜上所述,一個軟件系統(tǒng)的質(zhì)量應(yīng)該從可維護性、可靠性、可理解性、效率等多個方面全面地進行評價。對于不同的軟件系統(tǒng),各個目標(biāo)的重要程度是不同的,每個目標(biāo)要求達(dá)到什么程度又受經(jīng)費、時間等因素的限制,所以在開發(fā)具體軟件系統(tǒng)的過程中,開發(fā)人員應(yīng)該充分考慮各種不同的方案,在各種矛盾的目標(biāo)之間作權(quán)衡,并在一定的限制條件下(經(jīng)費、時間、可用的軟硬件資源等)使可維護性、可靠性、可理解性和效率等性質(zhì)最大限度地得到滿足。
posted on 2013-03-22 10:00 順其自然EVO 閱讀(265) 評論(0) 編輯 收藏 所屬分類: 測試學(xué)習(xí)專欄