摘要:該文將模糊集的相關理論應用到軟件可靠性評價上面,取得了較好的評價效果。論文首先介紹了模糊集的相關理論,利用在軟件工程中具有一定模糊度的“軟件可靠性”的概念對軟件可靠性評價方法進行了論述。該方法無論是理論上,還是在軟件可靠性評價中的應用方面,都充分體現了模糊集的特殊價值,并值得計算機軟件人員在今后進行較為深入的研究。
關鍵詞:模糊集;軟件工程;可靠性評價
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2010)02-339-02
Application of Fuzzy Sets on the Software Reliability Evaluation
SONG Jin1, JI Xun-sheng2
(1.Nanjing College of Information Technology, Nanjing 210046, China; 2.College of Communication and Control Engineering, Jiangnan University, Wuxi 214122, China)
Abstract: This paper uses the theory of the fuzzy sets on the software reliability the preferable evaluation effect has been got. Theory of the fuzzy sets and how to evaluate the software reliability by the ambiguity is introduced in detail. The evaluation means fully embodies the fuzzy sets merit and is worthy of being put more research by the soft engineers.
Key words: fuzzy set; soft engineering; reliability evaluation
軟件質量的評價是一項既具有現實意義又有科學價值的工作,目前常用的評價方式主要包括:分析評定式、指標體系評定式、觀察評定式和實驗評定式,其中指標體系評定式是目前國內外用得最多的一種評價方式,它是根據相關的指標體系對軟件性能特征進行評定,常采取定性分析的方法。本文擬以模糊數學為工具對軟件的質量,尤其是軟件得可靠性這一重要指標進行綜合評價。
1 模糊集合與隸屬函數
模糊集合的基本思想是將普通集合中的特征函數靈活化,使元素對集合的從屬程度從只能取{0,1}中的值擴充到[0,1]中的任一數值,一個元素x和一個集合的關系,不一定是“屬于”或者“不屬于”關系,有時必須要考慮它屬于的程度是多少。
設在論域X上給定了映射μ,定義公式(1)
[0,1](1)
則說μ確定了X上的一個模糊集,記為∈φ(X),μ稱為A的隸屬函數,記做μ(x)。
對x0∈X,μ(x0)稱為元素x0關于的隸屬度,它表示元素x0屬于的程度。模糊集合完全由其隸屬函數所刻劃[1]。
隸屬函數是模糊集理論應用于實際問題的基石。確定隸屬函數的方法有多種,包括:模糊統計法、推理確定法、借用已有“客觀”尺度的方法、濾波函數法、帶信任度的德爾菲法—專家調查法、模糊分布[1-2]。其具體實現過程見參考文獻[1]的第一章。
2 軟件質量與軟件可靠性
在軟件開發過程中,軟件的質量問題已經引起了研制部門、使用單位和設計師系統的廣泛關注,但是什么是軟件得質量,如何評價軟件的質量以及如何保證軟件的質量一直是人們廣泛關注而又未能很好解決的問題。
2.1 軟件的可靠性因素
軟件開發過程是一個包括人、開發工具和應用背景等非常復雜的動態過程。在當代社會,軟件成為各種系統的非常關鍵部分,軟件失效會導致設計功能無法正常完成,甚至會使整個系統癱瘓。因此,非常有必要調查軟件可靠性的影響因素,指導軟件得開發過程,并對得到的軟件產品的可靠性進行評估。文獻[3]對包括ATT, BellCore,Chrysler, MCI International等13家組織,對整個軟件開發過程中的影響軟件可靠性的32個主要因素進行問卷調查,并根據其對軟件可靠性影響的輕重程度進行排序。其中,軟件的復雜性、程序員的技能、測試努力程度、測試覆蓋率、測試環境和程序規格說明的改動頻率是其中最重要的6個因素,對如何提高軟件可靠性起到了指導作用。
2.2 軟件質量的模糊屬性
軟件質量的模糊屬性最明顯的表現就是在從適用性的角度評判軟件質量時并非只有徑渭分明的“適用”和“不適用”兩種選擇[4]。在軟件開發過程中,軟件的可靠性指標是人們十分關心的一種適用性指標。假如對于某軟件,軟件任務書要求軟件的失效率應小于5%。那么,按照傳統的符合性質量觀點,若該軟件的失效率大于或等于5%,則該軟件為不合格軟件;若失效率小于5%,則該軟件是否為合格軟件呢?從適用性質量觀點來看,把失效率等于或略大于5%的軟件也視為合格軟件似乎也合情合理,因為實際用戶不會苛求這細小的差別。為了處理在“合格”與“不合格”之間和在各質量等級之間存在的“漸變”和“過渡”,模糊集合論為我們提供了對這種模糊屬性進行定量描述的工具。
2.3 模糊綜合評價方法
模糊綜合評價方法有兩種基本方式:總分法和加權法。
對于總分法,若評價對象有m個因素時,這m個因素的評分分別為Si,則評價對象的總得分S為
然后,按S的大小排序評價對象。
對于加權法,若評價對象有m個因素,對這m個因素的評分分別為Si,設Wi為第i個因素的權重,且滿足,則評價對象的總得分S為
然后按S的大小排序評價對象。
上述兩種方法所得結果都用一個總分值表示,在處理簡單問題時容易做到,而多數情況下評價是難以用一個簡單的數值表示的,這時應該采用模糊綜合評價方法。
2.4 軟件可靠性評價的模糊綜合評價步驟
在進行模糊軟件質量綜合評價時,一般應遵循以下幾個步驟:
1) 建立待評價軟件的因素集U={u1,u2,...,um},因素就是該軟件的各種屬性或性能,
在有些場合也被稱為參數指標或質量指標,它們綜合反映了該軟件的質量,人們就是根據這些因素來評價該軟件的質量;
2) 建立評價集V={v1,v2,...,vn}。例如,軟件產品等級的集合;
3) 進行單因素評價,即對每一個單因素Ui∈U而言, 對它的模糊評價用定義在評價
集V上的一個模糊集{ri1/v1,ri2/v2,...,rin/vn}來表示。這樣,便可以得到一個對軟件質量的評價矩陣R。
(4)
4) 進行綜合評價,由于對U中各因素有不同的側重,需要對每個因素賦予不同的權重,它可表示為U上的一個模糊子集W={w1,w2,...,wm},且滿足。在R與W求出之后,則綜合評價為B=W×R,記B={b1,b2,...,bn},它是V上的一個模糊子集。其中,如果評價結果,應對評價結果進行歸一化處理。
3 模糊集在軟件可靠性評價中的應用
3.1 主要的軟件可靠性因素
一般性因素是指那些影響軟件可靠性的軟件本身的屬性和軟件開發中的常見因素。具體定義如下:
1)軟件的復雜性
軟件越復雜,在開發和維護過程中所消耗的資源也越多,同時在設計中引入錯誤的可能性也越大。盡管復雜性與軟件中的錯誤數未必呈現出簡單的正比關系,但存在這種正相關趨勢是肯定無疑的。
2)軟件類別
不同的軟件類別對軟件的可靠性要求不同,實現難度自然也就不同。按照軟件的性質和功能,軟件可區分為以下類別:支持軟件、應用軟件、系統軟件和測試和維護軟件。
3)開發工作量
投入足夠多的工作量用于開發可以有效減少軟件出錯的次數。工作量常用多少人年來衡量。
4)開發難度
開發難度的定義為k/t(人年/年),其中k是開發工作量,t是開發時間量。
5)開發技術水平
開發技術是設計技術、文檔化技術、編程技術和開發環境的總和。
6)重用代碼的比例
當開發一種新的軟件產品或升級軟件產品時,可以重用已有的正確代碼。
7)編程語言
不同的編程語言具有不同的復雜性和結構。因此,不同的編程語言引入錯誤的可能性也不同。
3.2 軟件可靠性評價實例
現以江南大學某自然科學基金軟件項目為例,運用模糊集的方法進行該軟件的可靠性評價。在這里,對軟件可靠性進行評價時,主要從軟件復雜性、軟件類別和開發工作量三個方面進行綜合考慮。評價時,每個因素可以用描述的方法將其分為類似于“優”、“良”、“中”、“差”四個等級。因此,待評價軟件的因素集為U={u1,u2,...,um}={復雜性,類別,工作量}
評價集為
V={v1,v2,...,vn}={優,亮,中,差}
通過評價專家對軟件測試或軟件運行的質量數據進行分析,得到評價矩陣R為
且評價專家為這三個評價因素的權重分配為W=(0.5,0.2,0.3)。則評價結果為B=W*R=(0.5,0.4,0.3,0.3),歸一化后得到B=(0.33,0.27,0.2,0.2)。
評價結果:從軟件復雜性、軟件類別和開發工作量三個方面來看,該軟件的可靠性等級應為“優”。
4 結論
模糊性和隨機性是客觀事物的兩大固有屬性,本文探討了將模糊可靠性分析方法用于具有模糊屬性的軟件可靠性的評價方面。借助專家與工程人員的實踐經驗,采用模糊綜合評判的方法可以從可接受模型中初步確定一個有效的軟件可靠性模型,并結合權重分配最終確定軟件的可靠性等級。在今后的實際應用中,如果把模糊方法與傳統可靠性分析方法糅合起來,也不失為解決類似問題的有效方法。
參考文獻:
[1] 黃健元.模糊集及其應用[M].寧夏:寧夏人民教育出版社,1999.
[2] 王鐵江,酈萌.軟件可靠性的模糊綜合評估模型[J].計算機工程與應用,2002(20):23-24.
[3] Xuemei Zhang,Hoang Pham.An analysis of factors affecting software reliability[J].The journal of systems and software,2000(50):43-56.
[4] 石柱,何新貴.軟件質量的模糊屬性及其表示[J].計算機工程與設計,2001(8):121-122.
[5] 張海藩.軟件工程導論[M].北京:清華大學出版社,1998.