Chap 1 軟體品質管理與流程改善 簡介
何謂軟體品質? 軟體產品整體的功能和特性,滿足既定需求的程度 (Schulmeer & McManus, 1996) 。 軟體品質分為兩種類型 (Deutach & Willis, 1988) 「軟體流程品質」(process quality) 「軟體產品品質」(product quality)
軟體品質概念 技術 工具 人員 組織 設備 .... 軟體品質 軟體流程品質 軟體產品品質 文件 設計 程式碼 測試
軟體品質模式 整體性 可靠性 存活性 功能構面 使用性 效率 正確性 績效構面 安全性 交換性 維護性 軟體品質 可擴充性 改變構面 彈性 可管理性 可攜性 使用性 可靠性 再用性 安全性 存活性 可驗證性 軟體品質 功能構面 績效構面 改變構面 管理構面
軟體品質模式
何謂軟體品質管理? 軟體品質管理主要是運用品管的觀念與技術,對於軟體專案進行過程的軟體品質作一系列完整的規劃、執行與控制的活動。 其主要目的是提升軟體品質水準與設計生產力,將軟體的缺點與軟體專案失敗的風險減少至最低程度
軟體品質管理的主要工作 軟體品質管理的主要工作包括: 制訂軟體品質目標與策略。 建立軟體設計人員的品質意識。 軟體發展作業流程制度化與標準化。 軟體文件的建立及軟體工具的應用等。
軟體品質管理的主要範疇 基本上,軟體品質管理的主要範疇包括 流程品質管理 產品品質管理 軟體設計人員管理 軟體技術管理
軟體品質管理的主要範疇 管理與技術 人員專業能力 資產與工具 軟體元件庫 文件管理 客戶滿意 品質機能 展開 軟體生命週期 流程模式 連續流程改進(例:導入CMMI) 軟體設計 人員管理 產品品質 管理 軟體技術 流程品質
軟體專案管理 軟體品質管理是軟體專案管理的重要一部分。 軟體品質管理不能單獨存在,需配合軟體專案管理其他部分,才能真正提升軟體的品質。 例如:不切實際的預算與時程規劃對軟體品質將會產生不良的影響。做好型態管理可控制好軟體的品質。
軟體專案管理的範疇
軟體專案管理的另一觀點 Saners & Curran, 1994
型態管理 在整個軟體生命週期,針對型態項目予以定義和控制各種變更、記錄與報告型態項目的實際狀況,以確保其完整性與可追蹤性的管理過程者。 型態項目:程式碼、各種文件、記錄、資料等。 型態管理也包含版本控制。
型態管理的範疇
何謂流程? 流程是指為某一目的而執行的一系列活動(or 步驟、階段)。 而一個活動內,又可包含一些小流程 軟體流程是指開發或維護軟體的一系列活動,通常也定義所採用的方法與工具等。
軟體開發流程 軟體開發者決定軟體開發模式、在每個階段內的各種小流程,定義所採用的方法、工具,參與的角色等。
軟體開發流程 開發流程中的每一階段,也會影響軟體品質。 知名的軟體開發模式 例如:好的軟體測試可降低軟體的錯誤率。 瀑布模式 漸增模式 雛型模式 RUP模式
軟體測試 測試技術 白箱測試 黑箱測試 測試流程 單元測試 整合測試 系統測試 驗收測試
何謂軟體流程改善? 目的是藉由軟體開發或維護流程的調整,做好軟體專案的管理,並提升軟體品質。
軟體流程改善 軟體流程改善的指引或標準 個人:PSP (Personal Software Process) 團隊:TSP (Team Software Process) 組織:CMMI (Capability Maturity Model Integration)、ISO 9000-3 這些指引或標準只建議你各種流程、準則或方向,採用甚麼方法、工具需依個人/團體/組織的不同及開發軟體的特性而定。
軟體流程改善 CMMI — 改善組織的能力;著眼於管 理面。 TSP — 改善團隊的 績效;著眼於團隊 與產品面。 PSP — 改善個人的 技術與紀律;著眼 於個人。
PSP 目的:改善個人軟體開發流程 評估流程 審查(review)流程 軟體品質管理 設計流程 設計驗證 預估軟體大小 預估開發時程 設計審查 程式碼審查 軟體品質管理 設計流程 設計驗證
TSP 目的:改善團隊軟體開發流程。 計畫性流程 團隊的結構 團隊的啟動 團隊的合作流程 軟體品質管理
CMMI 由美國國防部委託卡內基美隆大學成立軟體工程學院 (Software Engineering Institute, SEI),所發展出來評估軟體公司,軟體開發的能力與成熟度。 早期稱為CMM (Capability Maturity Model) 後來改稱為CMMI (Capability Maturity Model Integration)
CMMI 將軟體組織的能力與成熟度分為5等級。 藉由評鑑決定軟體組織是否達到流程導入的等級。 最新版本為v1.2。 CMMI-DEV 包含軟體開發的流程領域 CMMI-SVC 包含軟體服務的流程領域 CMMI-ACQ 包含軟體籌獲的流程領域
CMMI 自2004開始,國內推行CMMI的導入 http://www.cmmi-taiwan.org.tw 做為推動資訊服務業『大型化』與『國際化』之基礎工程 增強承接大型與複雜專案之能力 ,提升競爭力 http://www.cmmi-taiwan.org.tw
ISO 9000 系列 ISO 9000系列:各產業制定品質管理制度的依據。 ISO 9000-3 ISO 9000, ISO 9000-1, ISO 9000-2, ISO 9000-3, ISO 9001, ISO 9002, ISO 9003, ISO 9004 ISO 9000-3 應用 ISO 9001於軟體業。 針對軟體發展的過程、軟體供給與維護,規定一個最低軟體品質的標準,適合於軟體產業的應用。
ISO 9000-3大綱
ISO 9000-3 條文
結論 軟體品質管理的主要範疇包括 流程品質管理 產品品質管理 軟體設計人員管理 軟體技術管理 軟體品質管理是專案管理一項重要工作。它涉及的層面相當廣泛,舉凡技術、人員、制度與標準均對於軟體品質有相當大的影響力。 為了達到客戶需求的品質水準,品質策略的制訂、制度的建立與標準的推行,均為實施軟體品質管理必要的過程。