淺談軟體開發過程的質量度量技術

才智咖 人氣:6.86K

摘要:本文討論軟體開發過程中度量對質量管理的重要性。如果沒有度量,沒有對軟體過程的可見度,就無法控制軟體質量。

淺談軟體開發過程的質量度量技術

關鍵詞:軟體開發質量度量

軟體工程的唯一目標是生產出高質量的軟體“。軟體質量保證”(Software Quality Assurance,簡稱SQA)是一種應用於整個軟體過程的保護性活動。目的是驗證在軟體開發過程中是否遵循了合適的過程和標準。SQA應用軟體質量度量技術使其在軟體生命週期各階段均得以保證。

軟體度量是測度。測度用於整個軟體過程:輔助估算、質量控制、生產率評估、及專案控制,目的是改進它。軟體工程管理和其它工程管理相比有其特殊性。首先,軟體是知識產品,進度和質量都難以度量,生產效率也難以保證。其次,軟體系統複雜程度也是超乎想象的。正因為軟體如此複雜和難以度量,為生產出高質量的軟體這個目的,軟體工程質量度量顯得更加重要。

1、軟體需求是進行“質量”度量的基礎軟體質量度量考慮兩種不同的質量:設計質量和符合質量。設計質量包括系統的需求、規約和設計。符合質量則主要關注實現問題,如果實現了設計、得到的系統滿足需求和效能目標,則符合質量較高,缺乏需求符合性則質量不高;指定的質量標準定義了一組軟體開發的準則,缺乏開發標準就缺少質量“;隱含需求”沒有滿足,軟體質量也值得懷疑。

為了保證軟體產品滿足需求,質量控制應用於整個開發週期的一系列審查、複審和測試。質量控制的任務就是策劃可行的質量管理活動,然後正確地執行和控制這些活動以保證絕大多數的缺陷可以在開發過程中被發現。質量控制在建立工作產品的過程中還包括一個反饋迴圈。度量和反饋相結合,使得監測產品不滿足規約時可調整開發過程。質量控制將視為整個製造過程的一部分。

2、軟體度量的三個步驟

軟體度量有資料收集、度量計算及度量評估三個必須執行的步驟。要度量軟體質量,可通過建立一個包含過程及產品測量的資料庫,讓軟體工程師及管理者能夠更好地瞭解他們所做的工作及所開發的產品各個時段的質量狀態。

軟體工程是一種層次化技術,包括過程、方法和工具,它對技術或實體的分析、設計、建造、驗證和管理。其基礎是過程層,軟體過程是建造高質量軟體需要完成的任務框架,它定義了軟體開發中採用的方法,而方法層是技術上如何實現,工具層對過程和方法提供自動化和半自動化工具的支援。軟體工程探索軟體開發過程的研究現狀,以有組織的質量保證為基礎。質量管理刺激了不斷的過程改進,正是這種改進導致了更加成熟的軟體工程方法的不斷出現。

3、軟體工程用技術度量評估質量軟體工程的最高目標就是產生高質量的系統、應用軟體或產品。為了達到這個目標,軟體工程師必須掌握在成熟的軟體過程背景下對有效的方法及現代化的工具(如CASE)之應用。由於硬體成本持續降低,可支援執行CASE工具的工作站和網路已經成為軟體工程使用的工作平臺,CASE工具可完成一些特定的軟體開發過程。這些工具提供給軟體設計者以圖形方式描述軟體設計的能力,這樣就易於維護、易於交叉檢查、易於理解。除此之外,優秀的軟體工程師及優秀的軟體工程管理者必須不時評估是否能夠達到高質量的目標。

4、有用的軟體質量的測量指標

為了保證軟體質量,人們用直接的或間接的測量方法測度質量因素,書中提出四種常用測量指標:正確性:正確性是軟體完成所需的功能的程度。正確性的最常用的測量是每千行(KLOC)的缺陷數,在這裡,缺陷定義為驗證出來的與需求不符的地方。

可維護性:指遇到錯誤時程式能被修改的容易程度;環境發生變化時程式能夠適應的容易程度,使用者希望改變需求時程式被增強的容易程度。可維護性無法直接測量,採用間接測量。如面向時間的度量用平均修改時間(mean-time-to-change,MTTC),即分析改變的需求、設計合格的修改方案、並將修改的結果釋出給使用者所花的時間。

完整性:現在軟體完整性日益重要。它測量系統在安全方面的抗攻擊能力。這些攻擊可能發生在軟體的三個主要成分上:程式、資料及文件。為了測量完整性必須加入兩個附加的屬性:威脅和安全性。一個系統的完整性可以定義為:完整性=Σ[l—威脅×(1—安全性)]可用性:即“使用者友好性”。根據四個特性量化“使用者友好性”:(1)學會系統所需的體力的和/或智力的投入;(2)使用系統達到中等效率所需的時間;(3)當系統由某個具有中等效率的人使用時,測量到的生產率的`淨增長率(與被該系統替代的老系統相比);以及(4)使用者對系統的態度的主觀評估(可以通過調查表獲得)。

上述的四個因素僅僅是被建議作為軟體質量測量顯的眾多因素中的一個樣板,軟體質量因素還有:健壯性、效率、可用性、風險、可理解性、可維修性、靈活性(適應性)、可測試性、可移植性(、有一種定量度量的方法是:用原來程式設計和除錯的成本除移植時需用的費用)。可再用性、可執行性等等。

5、結語

差異控制是軟體工程質量控制的核心。要生產出高質量的軟體,就要注意差異控制,注意專案需求分析。在需求分析階段要注意:(1)質量指標對不同人群、不同目的、不同時段要求可能不同,具體質量控制指標需供需雙方共同約定;(2)質量指標與度量標準、目的相關,一般的情況是高指標具有高技術難度、需要高投入、較長開發期;(3)軟體開發不同於其他產品的製造,軟體的整個過程都是設計過程(沒有製造過程);(4)軟體開發不需要使用大量的物質資源,而主要是人力資源。

充分認識軟體工程的目標,為確保目標實現切實採用的軟體度量技術,控制所有過程的質量,滿足顧客和組織內部雙方的需要和利益,定期評價質量體系,生產出高質量軟體。