摘要:將數據挖掘技術運用于軟件質量管理,根據影響系統質量的屬性,建立了質量管理和分析模型,并根據模型給出了系統實現的初步方案。該系統的實施,能夠有效的保證軟件產品的質量。
關鍵詞:軟件質量管理;數據挖掘;聯機分析處理;關聯規則
中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)34-1977-03
Design and Research of Software Quality Management System
GU Rong
(Department of Computer, Guangdong Baiyun University, Guangzhou 510450, China)
Abstract: This Paper applied data mining technology into software quality management, established quality management and analysis model with critical and typical attributes in software process, which provided a new method in utilizing data for quality management.
Key words: software quality management; data mining; OLAP; association rules
1 引言
隨著計算機軟件越來越深入地應用到社會生活的各個方面,尤其是一些關鍵領域,軟件的規模也隨之日益增大,軟件的質量也越來越受到重視[1-2]。軟件的質量不過關,可能會產生嚴重后果。目前中國軟件業尚未形成規模,全國的軟件企業數量不少,但是大規模軟件企業聊聊無幾。我國軟件業競爭力低下固然有產業規模小,資金投入不足、知識產權保護不力等各方面原因,但軟件產品質量不高也是一個不爭的事實,它直接影響到企業的形象及其在市場上的信譽,進而影響到其生產需求,使企業存在潛在的生存危機。
目前,對于軟件質量控制一般都采用ISO9000或者是CMM,通過對軟件開發過程的管理來控制開發質量[3-5]。本文研究了數據挖掘技術在軟件質量管理中的應用,設計了一種基于數據挖掘的軟件質量管理系統。系統通過軟件缺陷的數據,軟件生命周期全過程中關于分析、設計、編碼、測試等階段有關人員素質、開發和管理過程的信息以及軟件屬性、開發機構資質和經驗、目標用戶評價等資料的數據庫,來建立質量預測模型,發現制約質量和過程的規律,從而采取預防缺陷措施。那么就能最大限度的降低開發維護的費用,大大降低軟件故障和失敗的可能。
2 影響軟件質量的各種因素
軟件的設計開發、營銷、服務與支持活動,涉及投資者、管理者、銷售者、軟件產品用戶等各類人員及其組織。因此,需要從全面的軟件質量觀出發,深入分析與軟件生產有關的組織、人員、活動,對軟件生產過程進行模塊劃分,建立通用的模塊化的軟件生產過程模型,以識別影響軟件質量的各種因素。在此基礎上,構架基于過程的軟件質量體系結構,提供構成軟件質量系統的通用概念框架,這就在高層次上找到了滿足用戶的要求,使定量質量管理成為可能。同時建立通過模塊化過程的質量保證以及過程網絡協同運作的質量保證系統,來保證軟件產品質量的質量管理方法。進而建立完善軟件過程質量的質量評價體系,用軟件過程能力指數評價過程質量的高低,以過程的穩定受控來保證軟件產品滿足規定的質量特性要求。
2.1 質量屬性
軟件的質量屬性可分為兩大類:第一類可在運行軟件并觀察其結果的時候進行度量,例如性能、安全性、可靠性和功能性等都屬于這一類。第二類不能夠在運行軟件并觀察其結果的時候進行度量,但可通過對開發或維護過程的觀察進行度量,這一類的質量屬性包括可移植性、適應性、可復用性等。
2.2 軟件體系結構對軟件質量的影響
軟件需求確定后,軟件體系架構在軟件質量中會起重要作用[3],有合理的軟件體系架構,可以使需求變更產生的影響變得更小。如果沒有合理的體系結構,先進的編程技巧也不一定能彌補體系架構對質量的影響。
軟件體系結構問題包括軟件系統總體組織和全局控制、通訊協議、同步、數據存取、給設計元素分配特定功能,設計元素的組織、規模和性能,在各個設計方案間進行選擇。軟件體系結構的設計是從問題域到軟件解空間的第一步。一些體系結構方面的問題對軟件的質量屬性有重大的影響。比如,模塊的層次可能影響系統的可修改性;功能的劃分和封裝可能影響系統的可擴展;構件間的通信協議可能影響系統的效率等。從另一方面看,良好的軟件體系架構并不能確保系統的功能性需求及質量需求。后階段的設計、實現等同樣可以使系統的質量發生變化甚至損壞。畢竟,軟件生命周期的任何階段都對軟件質量有或大或小的影響。因此,好的軟件體系結構是良好系統質量的基礎。
2.3 軟件過程對軟件質量的影響
從質量管理模式來看,軟件企業按照某種軟件生命周期模型來組織軟件項目或軟件產品的開發。目前比較流行的有瀑布型和迭代式開發方法。瀑布型的開發方法適合小型的、需求明確的軟件項目,這種模型有個根本缺陷就是沒有把用戶需求反映在在整個項目當中。迭代式開發方法強調軟件風險管理,把項目分成一個個的開發提交階段,把里程碑處提交的產品提交用戶反饋,并將反饋信息加入到下一個階段的軟件開發當中,其本質是基于產品開發的組織方式。
長期以來,軟件開發過程中需求的變化,特別是軟件使用后需求的變化,一直是制約軟件質量提高的“瓶頸”[4]。隨著軟件產品或項目規模的擴大,軟件產業的興起,軟件生產的組織方式也要從面向產品的生產組織轉向面向過程的組織方式,面向過程的生產是軟件產品生產的主流方向,必須以面向過程的生產組織方式,對軟件需求獲取、設計、開發、維護服務與支持的各過程進行預防為主的過程質量控制,對產品及過程的質量全部量化。
3 數據挖掘技術
3.1 數據挖掘和聯機分析處理OLAP
數據挖掘是20世紀90年代迅速興起的一個十分活躍的研究方向。其目的在于發現大型數據集中隱含的、不為我們所知的潛在有用信息,受到了數據庫、人工智能、統計學和數學等領域研究人員的廣泛重視,成為繼Internet之后的技術熱點[5]。目前,數據挖掘在銷售、金融、電信、保險、教育、政府決策和基因工程研究等許多領域都得到了成功的應用,已產生了巨大的經濟效益和社會效益。數據挖掘過程一般包括三個步驟,即數據準備、數據挖掘和知識分析和獲取。數據準備用于選擇相關數據用于預處理,包括消除數據噪聲、彌補數據缺失和解決數據沖突,然后轉換成適合挖掘的形式;數據挖掘則是采用有關算法對經過清洗的數據進行分析,其結果是大量的規則;知識分析和獲取用于對產生的一系列規則進行評價,并從中抽取有用的知識,以輔助決策,如圖1所示。數據挖掘有分類規則挖掘、聚類規則挖掘、關聯規則挖掘、轉移規則挖掘、例外模式挖掘、序列模式挖掘、Web挖掘、正文挖掘、多媒體數據挖掘、空間數據挖掘和時態數據挖掘等。
聯機分析處理OLAP使用多維數據模型,在數據倉庫中進行一系列統計操作,使分析人員、管理人員或執行人員能夠從多角度對信息進行快速、一致、交互地存取,從而獲得對數據的更深入了解的一類軟件技術。OLAP的目標是滿足決策支持或者滿足在多維環境下特定的查詢和報表需求。在企業當中得到越來越廣泛的應用。
3.2 數據挖掘在軟件質量管理中的應用
在軟件質量管理中,為了找到對質量起關鍵作用的因素,組成質量評價模型。我們首先嘗試對軟件產品某些屬性進行度量,即為該屬性賦予數值,如代碼行數、方法調用層數、構件個數等,近年來也出現了一些針對高層設計的度量,軟件體系結構度量便是其中之一。
軟件計劃進度也對質量產生影響。如果在計劃周期內,時間、資源沒有很好的安排。到了項目后期,如果時間不夠,必然出現為了趕進度而出現質量下降的情況。所以為了對計劃進度進行度量,可以使用用例點數(Use Case Point)和工作分解結構(Work Breakdown Structure)的方式,這些度量方式,同樣可以使用在質量管理模型中。
4 基于數據挖掘的軟件質量管理系統
4.1 系統結構
為了做好軟件質量管理,本文提出了一種基于數據挖掘技術的軟件質量管理系統。控制影響質量管理的主要因素,使軟件全過程都處于受控狀態,即做到事前管理、事中控制、事后分析[6]。整個系統的體系結構如圖2所示。
4.2 系統實現模型
4.2.1 數據獲取途徑
在軟件質量管理系統中,數據量集中在測試數據方面,它也是對質量起關鍵作用的數據。因此,該系統可以通過一個缺陷跟蹤管理系統來獲取這方面的數據。另外,可以通過衡量用例點數等方法獲取需求分析數據,可以通過從UML圖抽取關于體系結構的分析數據,可以通過分析代碼行數和模塊個數和層次數來獲取代碼分析的數據。
對于項目管理方面,可以通過投資收益分析,掙值分析等獲取成本分析數據;從工作分析結構(WBS)和甘特圖(Gantt Chart)等抽取任務時間關系分析數據。
有些分析數據不能直接衡量,必須建立度量評價體系。首先,建立要衡量的屬性和度量之間的映射原則,然后根據特征分等級給予分值和權重,再請有經驗的人員予以評分。比如,系統可以通過建立員工績效考核系統來獲取員工素質分析的屬性數據,包括技巧熟悉度,用戶支持度,這些對一個項目的成敗有關鍵作用。那么可以將用戶的參與程度根據特征分成多個等級來評分。由于這種度量方式存在較大主觀性,在系統中應作為參考數據加以運用。
4.2.2 數據預處理
將獲取的數據進行分析,去掉對分析沒有幫助的數據,比如序號,名稱,描述等字段,留下具有分析價值的字段,比如代碼行數,缺陷類型,嚴重程度。然后將屬性進行離散化,比如,代碼行數,可以根據一定的范圍,將其轉化為標注大型軟件,中型軟件,小型軟件,甚至可以自定義分成多種等級。然后將離散化的數據進行概念分層。員工素質可以根據評分范圍分成多個等級。
4.2.3 使用OLAP進行缺陷數據分析
由于缺陷數據隨著軟件開發項目的增多,不斷累計,為了能夠更加充分的利用數據,可以根據OLAP思想,把缺陷數據重新組織,確定主題,統一管理。通過需求分析,可以確定以下主題:
1) 項目主題:該主題包括項目基本信息,模塊基本信息,缺陷基本信息,缺陷與產品關系等;
2) 員工主題:該主題包括員工素質信息,缺陷基本信息,缺陷與員工關系;
3) 質量主題:該主題包括缺陷信息,缺陷類型頻率與質量屬性的關系;
4) 項目管理主題:該主題包括風險信息,成本資源信息,任務時間信息,機構資質信息,質量屬性等;
該系統的邏輯模型采用雪花模型。根據確定的主題設計維表和事實表。例如在項目主題中,項目信息與缺陷構成的雪花模型關系圖如圖3所示。
設計出邏輯模型后,即可以根據該模型設計物理表。為了提高查詢分析效率,物理表的設計將不采用規范化方式設計,這是為了減少連接查詢產生的效率損耗。
4.2.4 使用多層關聯規則進行數據挖掘
除了對缺陷數據的OLAP分析,我們也可以構建如圖2的邏輯結構的質量管理數據挖掘系統。根據系統結構,根據得出的各項目分析結果,可以建立分層。使用多層關聯規則挖掘算法,根據不同層次的支持度,挖掘出不同層次間的頻繁項集,既而嘗試得出新的規則和知識。而不同層次的支持度,需要根據組織的質量管理經驗,使用結果對系統進行反饋計算,不斷校正,使其能得到更實用的規則。
5 結束語
通過分析影響軟件質量的各種因素以及數據挖掘技術的基礎上,設計了基于數據挖掘技術的影響軟件質量的各項屬性質量管理系統模型。按照企業實際,先實施缺陷OLAP分析系統,再針對其他因素對質量的影響進行了實施方案的探討。本系統的目的是充分挖掘質量管理信息,輔助管理者制定正確的質量決策。該系統的實施和進一步研究,會取得良好的經濟效益。下一步研究工作的重點是進行更一步的細化,以達到更好的軟件質量管理。
參考文獻:
[1] 劉健昌,雷偉.軟件質量管理[J].計算機工程,1990(4):26-32.
[2] 徐帆.應用軟件質量模型的建立與研究[J].計算機工程與設計,2003(6):11-14.
[3] 張文濤.基于CMM 項目管理平臺的系統設計[J].計算機科學,2008,35(4):276-279.
[4] 劉玲.基于ISO 9001與CMM的軟件質量管理體系分析比較與協調實施[J].信息技術與標準化,2007(6):37-41
[5] 霍英, 陳志剛. 面向小型軟件企業/小型軟件項目的CMM應用研究[J]. 計算機應用研究,2007(2):73-74
[6] 周欣,黃璜,孫家骕,燕小榮.軟件體系結構質量評價概述[J].計算機科學,2003,30(1):49-52.
[7] 蘇秦.軟件過程質量管理的途徑初探[J].計算機應用研究,2001(6):4-8.
[8] Han J W,Kamber M.數據挖掘-概念與技術[M].范明,孟小峰,譯.北京:機械工業出版社,2002.
[9] Lewis W E.Software Testing and Continuous Quality Improvement[M].Texas,USA:Software Testing Associates,CRC Press LLC,2000.