Chap 2 軟體品質管理的基本觀念
什麼是品質良好的軟體? 品質的好壞是左右商品生命的的關鍵。 擁有良好品質的軟體應具有什麼特性: Bug極少。(bug free! possible?) 功能滿足使用者需求,符合既定規格水準。 …
軟體品質定義 軟體產品整體的功能和特性,滿足既定需求的能力 (Schulmeer & McManus, 1996) 。 軟體品質分為兩種類型 (Deutach & Willis, 1988) 「流程品質」(process quality) 「產品品質」(product quality)
軟體品質概念 技術 工具 人員 組織 設備 .... 軟體品質 軟體流程品質 軟體產品品質 文件 設計 程式碼 測試
軟體品質概念 軟體流程品質 軟體產品品質 指軟體產品發展過程的品質,與一些重要資源的綜合運用有關,例如:技術、工具、人員、組織、設備。 指軟體產品擁有的特性,例如:文件的完整性、正確性、可讀性;設計的可追蹤性;程式碼的可靠性;測試的涵蓋性等。
軟體品質模式品質因素 正確性 效率 可擴充性 彈性 整體性 交換性 維護性 可管理性 可攜性 使用性 可靠性 再用性 安全性 存活性 可驗證性 軟體品質 功能構面 績效構面 改變構面 管理構面 開發階段 維護階段
開發階段─功能構面 軟體品質 基本定義 整體性〈Integrity〉 程式與資料庫一致性的設計,以避免蓄意或非蓄意的破壞 可靠性〈Reliability〉 軟體失效的頻率 存活性〈Survivability〉 在錯誤發生時,軟體仍然繼續執行下去的能力 使用性〈Usability〉 學習與使用軟體的容易程度
交換性〈Interoperability〉 開發階段─績效構面 軟體品質 基本定義 效率 〈Efficiency 〉 資源足夠提供必要的功能 正確性 〈Correctness〉 軟體設計與執行符合需求規格的程度 安全性 〈Safety〉 軟體不會產生不安全的狀態 交換性〈Interoperability〉 不同軟體間互動的能力
維護性〈Maintainability〉 維護階段─改變構面 軟體品質 基本定義 維護性〈Maintainability〉 尋找錯誤或改正錯誤的容易程度 可擴充性〈Expandability〉 維護與修改的容易程度 彈性 〈Flexibility〉 針對環境的改變能夠調適的程度 可攜性〈Portability〉 跨越不同平台 (作業系統) 的能力 再用性〈Reusability〉 文件或軟體模組可以重複利用的程度
維護階段─管理構面 軟體品質 基本定義 可驗證性〈Verifiability〉 驗證軟體功能的能力 可管理性 針對軟體修正的管理能力 〈Manageability〉 針對軟體修正的管理能力
影響軟體品質的重要因素
ISO 9126軟體品質模式
多餘的品質 注意:除真正的品質需求外,避免提供多餘且過剩的品質,否則會造成時程、資源之浪費及溝通障礙,且無助於產品附加價值之提升。
軟體品質經常發現的問題 在軟體開發過程中,在軟體品質方面經常發現下列幾個問題: 使用者對於軟體品質滿意程度不高。 未建立一套系統化的開發制度與流程。 軟體文件欠缺或不完整,軟體維護管理相當不易。 軟體業者不重視軟體標準。 軟體品質管理人員未徹底執行確認與驗證工作。
如何建立優良品質的軟體? 設計與程式碼檢驗與測試。 使用現代軟體工程的方法。 使用物件導向開發技術與工具。 流程改善。 軟體標準化。 軟體品質保證。 使用軟體品質評估工具。 獨立確認與驗證(IV&V)。 稽核作業。 軟體度量。 版本管理。 …
軟體品質管理 軟體品質管理主要是運用品管的觀念與技術,對於軟體專案進行過程的軟體品質作一系列完整的規劃、執行與控制的活動。 其主要目的是提升軟體品質水準與設計生產力,將軟體的缺點與軟體專案失敗的風險減少至最低程度
品質管理觀念的變化 過去 現在 品質是工人的責任。 品質是所有人的責任。 品質瑕疵最好不讓顧客知道。 品質瑕疵應被強調,並立刻解決。 品質改善著重在實際改良作業。 品質改善增加專案成本。 品質活動在專案執行中發生。 現在 品質是所有人的責任。 品質瑕疵應被強調,並立刻解決。 記錄品管過程,以做日後改進依循。 品質改進可減少成本,增加商機。 品質活動應及早規劃。
軟體品質管理的主要範疇 基本上,軟體品質管理的主要範疇包括 流程品質管理 產品品質管理 軟體設計人員管理 軟體技術管理
軟體品質管理的主要範疇 管理與技術 人員專業能力 資產與工具 軟體元件庫 文件管理 客戶滿意 品質機能 展開 軟體生命週期 流程模式 連續流程改進(例:導入CMMI) 軟體設計 人員管理 產品品質 管理 軟體技術 流程品質
軟體設計人員管理 軟體設計人員是軟體品質管理最重要的一項關鍵要素。 人員的晉用、訓練、工作生涯規劃與發展、激勵、獎金等,均是軟體設計人員管理的重點。 資訊人員在早期系統開發階段的參與,對資訊系統的瞭解程度亦愈加深入。 軟體工程專家認為人力才是提升軟體設計生產力最重要的關鍵所在。
軟體設計人員管理 專家提出下列幾項建議: 引進高素質的軟體設計人力。 (2) 對於軟體設計工作者不斷進行訓練與教育工作。 (3) 激勵軟體開發人員以提升其績效水準。 (4) 發展績效評估制度以達到個人工作目標與企業組織目標相互結合。 (5) 改進與提升工作環境的品質與作業能力。 (6) 重視人員彼此間有效的團隊合作能力,以生產高品質的軟體為目標。
產品品質管理 產品品質管理的重點在於設計與控制品質於某一特定水準。 專案管理者必須設定軟體品質的標準,隨時追蹤軟體的品質水準。 將發展完成的軟體進行有系統的分類與管理也是產品品質管理的重點之一。 利用標準化、模組化與簡單化的方法加強軟體品質控制,可以降低軟體開發的成本與提升軟體品質。
流程品質管理 重點在於確認與驗證軟體發展工作的品質與每一階段的軟體品質水準, 利用軟體標準的建立、開發流程標準化與品質改進活動等方法,將軟體品質予以控制在某一水準上。 因涉及範圍相當廣,需同時採取管理與工程兩方面的措施。
軟體技術管理 主要包括 技術文件管理 技術安全制度的導入與應用 可再用性軟體元件庫的建立 引進新技術方式 技術創新 …
軟體品質管理主要的工作 制訂品管的目標與策略 建立軟體設計人員的品質意識 認證與驗證 品質改進活動 軟體品質保證 建立品質的標準與品質管理程序 軟體發展作業流程制度化與標準化。 不斷偵測進度與品質 缺點數分析 軟體品質的評估與度量 軟體工具的應用。 …
主管的重視與支持 主管人員對於品質管理的重視與支持,為另一項是否能夠成功的關鍵因素: 認證制度的推行 標準制度的建立 獨立確認與驗證 定期實施稽核 品質保證與評估 均有助於品質管理工作的進行。
結論 本章介紹何謂軟體品質,與軟體品質管理的基本觀念。 軟體品質管理是一個持續性的改善程序。 軟體品質管理涉及範圍相當廣,需要主管人員對於品質管理的重視與支持,否則不易成功。