qileilove

          blog已經轉移至github,大家請訪問 http://qaseven.github.io/

          淺析軟件質量的評價

           摘要:本文針對軟件質量的問題,通過可維護性、可靠性、可理解性和效率四個方面對軟件進行質量評價,從而獲得衡量軟件質量好壞的標準。

            關鍵詞:軟件質量;

            1、引言

            如何評價一個軟件的質量,是最終獲得高質量的軟件的重要問題。以前,對小型程序,人們一般比較強調程序的正確性和效率,近年來隨著軟件規模的增大和復雜性的上升,對問題的看法已發生了變化。目前,軟件質量的定義還是非常模糊的,人們對此尚未形成一致的看法,但一般說來傾向于從可維護性、可靠性、可理解性和效率等方面對軟件作較全面的評價,下面分別討論之。

            2、可維護性

            軟件在運行階段尚需不斷“修正”,因為軟件雖經測試但不可避免地總還隱含著各種錯誤,這些錯誤在運行階段會逐步暴露出來,因而就要進行排錯。

            軟件在運行階段尚需不斷“完善”,因為系統經過一個時期的使用后,用戶必然會逐步提出一些更改或擴充要求,軟件就需要相應地不斷作修改。

            軟件在運行階段往往還需作“適應性”修改,近年來計算機業發展迅速,一般在3至5年內,硬件或系統軟件就會出現更新換代的新產品,于是應用軟件系統也就需要作相應的調整或移植。

            在運行期中,對軟件所做的上述修正性、完善性和適應性修改,總稱為“維護”,它涉及再分析、再設計、再編程、再測試等活動。考慮到大型軟件系統的運行期可達10年以上,所以維護的工作量是極大的。

            另外,維護工作也是相當困難的,由于軟件邏輯上的復雜性,修改往往會帶來新的錯誤。據統計,軟件錯誤中有19%是由于修改造成的;有人還統計出,如果一個修改設計5至10個語句,修改成功的可能性是50%,如果一個修改設計40至50個語句,則修改成功的可能性下降至20%,因此軟件維護是很困難,很冒風險的。

            說明了在計算機軟硬件的總投資中,軟件維護所占的比例。可以看出,維護費用近年正在迅速上升,按這樣的趨勢發展下去,現有的人力物力將全部被束縛在維護原有系統上,就可能再也沒有力量去開發新的系統了。因此軟件維護引起了人們的普通關注,人們已意識到,一個軟件系統及時其他方面都相當理想,但是如果不容易維護,他將不會有什么實際使用價值,所以,“可維護性”應該作為評價軟件質量的重要準則。

            3、可靠性

            可靠性通常包括正確性和健壯性這兩個相互補充的方面。

            正確性是指軟件系統本身沒有錯誤,所以在預期的環境條件下能夠正確地完成期望的功能。毋庸置疑,正確性對系統正常發揮作用是完全必要的。

            對于一個小型程序,我們可以希望它是完全正確的,但對長達幾萬行甚至幾十萬行的大型軟件,我們一般不能奢望它是“完全”正確的,而且這一點也是無法證實的。此外,一個大型系統運行時,完全可能遇到一些意外遭到意想不到的破壞。

            曾有報道:“操作員手指的一滑使稅收損失30萬美元”。這就產生了一個新的概念——“健壯性”,其含義是指:當系統萬一遇到意外時(具體是什么意外,事先是很難預料的)能按某種預定的方式作出適當的處理,如能立即意識到異常情況的出現,保護起重要的信息,隔離故障區防止事故蔓延,并能及時通知管理人員請求人工干預,事后從故障狀態恢復到正常狀態亦比較容易,所以健壯的系統應該能避免出現災難性的后果。

            正確性與健壯性是相互補充的,有些系統可能是正確的,但它不是健壯的;而健壯的程序并不一定是絕對正確的。

            總的說來,可靠的軟件系統在正常情況下能夠正確地工作,而且在意外情況下,亦能適當地作出處理,因而不會造成嚴重的損失。所以,“可靠性”無疑是絕對重要的。人們寧可在開發時多花些代價,提高系統的可靠性,與發生事故后造成的損失相比,這些代價還是值得的。

            4、可理解性

            在相當長一段時間中,人們一直認為程序只是提供給計算機的,而不是給人閱讀的,所以只要它邏輯正確,計算機能按其邏輯正確執行就足夠了,至于它是否易于被人理解則是無關緊要的。但是隨著軟件規模的增大,人們逐步看到,在整個軟件生命期中,為進行測試、排錯或修改,開發人員經常需要閱讀本人或他人編寫的程序和各種文檔。如果軟件易于理解,無疑將提高開發和維護的工作效率,而且出現錯誤的可能性也會大大下降。所以,可理解性應該是評價軟件質量的一個重要方面。

            可理解性通常是指簡單性和清晰性,對于同一用戶要求,解決的方案可以有多個,其中最簡單、最清晰的方案往往被認為是最好的方案。

            5、效率

            效率是指系統能否有效地使用計算機資源,如時間和空間等。這一點以前一直是非常強調的,這是過去硬件價格昂貴造成的結果。由于以下一些原因,目前人們對效率的看法已有了變化:首先,硬件價格近年來大幅度下降,所以效率已不像以前那樣舉足輕重了。第二,人們已認識到,程序員的工作效率比程序的效率遠為重要,程序員工作效率的提高不僅能減少開支,而且出錯率也會降低。第三,追求效率同時追求可維護性、可靠性等往往是相互抵觸的。

            所以,效率雖然是衡量軟件質量的一個重要方面,但在硬件價格下降、人工費用上升的情況下,人們有時也寧可犧牲效率來換取其他方面的得益。

            綜上所述,一個軟件系統的質量應該從可維護性、可靠性、可理解性、效率等多個方面全面地進行評價。對于不同的軟件系統,各個目標的重要程度是不同的,每個目標要求達到什么程度又受經費、時間等因素的限制,所以在開發具體軟件系統的過程中,開發人員應該充分考慮各種不同的方案,在各種矛盾的目標之間作權衡,并在一定的限制條件下(經費、時間、可用的軟硬件資源等)使可維護性、可靠性、可理解性和效率等性質最大限度地得到滿足。

          posted on 2013-03-22 10:00 順其自然EVO 閱讀(262) 評論(0)  編輯  收藏 所屬分類: 測試學習專欄

          <2013年3月>
          242526272812
          3456789
          10111213141516
          17181920212223
          24252627282930
          31123456

          導航

          統計

          常用鏈接

          留言簿(55)

          隨筆分類

          隨筆檔案

          文章分類

          文章檔案

          搜索

          最新評論

          閱讀排行榜

          評論排行榜

          主站蜘蛛池模板: 宜宾市| 杨浦区| 温州市| 上饶县| 通渭县| 桃江县| 汾西县| 修文县| 宁晋县| 抚远县| 三亚市| 岚皋县| 石景山区| 东乡县| 资源县| 桃源县| 渭南市| 兴义市| 中山市| 自治县| 汶上县| 安徽省| 肃宁县| 巨鹿县| 封开县| 社旗县| 翁牛特旗| 和硕县| 漯河市| 武清区| 岱山县| 新源县| 洪洞县| 高密市| 南华县| 盘锦市| 苏尼特左旗| 九龙坡区| 双柏县| 札达县| 宁陕县|