Transcript 包含軟體開發的流程領域
Chap 7 軟體品質管理與流程改善 簡介 何謂軟體品質? • 軟體產品整體的功能和特性,滿足既定需求 的能力(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。 • 不同於以往,v1.2分為三大部分: – CMMI-DEV 包含軟體開發的流程領域 – CMMI-SVC 包含軟體服務的流程領域 – CMMI-ACQ 包含軟體籌獲的流程領域 CMMI • 自2004開始,國內推行CMMI的導入 – 做為推動資訊服務業『大型化』與『國際化』 之基礎工程 – 增強承接大型與複雜專案之能力 ,提升競爭力 • http://www.cmmi-taiwan.org.tw ISO 9000 系列 • ISO 9000系列:各產業制定品質管理制度 的依據。 – 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 條文 結論 • 軟體品質管理的主要範疇包括 – – – – 流程品質管理 產品品質管理 軟體設計人員管理 軟體技術管理 • 軟體品質管理是專案管理一項重要工作。它涉及 的層面相當廣泛,舉凡技術、人員、制度與標準 均對於軟體品質有相當大的影響力。 • 為了達到客戶需求的品質水準,品質策略的制訂、 制度的建立與標準的推行,均為實施軟體品質管 理必要的過程。