包含軟體開發的流程領域

Download Report

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 條文
結論
• 軟體品質管理的主要範疇包括
–
–
–
–
流程品質管理
產品品質管理
軟體設計人員管理
軟體技術管理
• 軟體品質管理是專案管理一項重要工作。它涉及
的層面相當廣泛,舉凡技術、人員、制度與標準
均對於軟體品質有相當大的影響力。
• 為了達到客戶需求的品質水準,品質策略的制訂、
制度的建立與標準的推行,均為實施軟體品質管
理必要的過程。