本文定義并描述ISO 9000和IEEE軟件標準,以及SEI能力成熟度模型集成(CMMI)的開發、服務和獲取評估模型。
軟件工程協會(SEI Software Engineering Institute)將標準定義為 "制定并用于規定獲取、開發或服務的一致方法的正式要求,"(SEI 2010)。標準通過對規則、要求、指南或特征的說明,為軟件開發和其他活動定義了一種有規律的、一致的方法。標準旨在促進社區或組織的最佳利益,并應以科學、技術和實踐經驗的綜合成果為基礎。
在指定、開發、審查、審計、評估或測試一個系統、過程或產品時,標準被用作比較的基礎。當一個組織和/或其人員將標準中所說的應該做的事情與該組織和/或其人員實際所做的事情相比較時,就符合了標準。當標準要求的內容與產品的實際特性、內容或狀態相匹配時,產品就符合了標準。一個標準通常是由標準實踐規定的,或者是由指定的標準機構(ISO、IEC、IEEE、OMG等)定義的。標準可以指定對項目或活動的要求,包括。
- 大小:例如,一個外部接口標準可能規定通信包的大小為32字節。
- 內容 :。例如,IEEE關于系統和軟件工程配置管理的標準828(IEEE 2012)規定了配置管理計劃應包括的內容
- 價值:例如外部接口標準可能會規定在該接口上傳輸的錯誤代碼的價值。
- 質量:例如,建模和編碼標準提供了生產高質量軟件工作產品的工藝標準,ISO 9001:2015標準(ISO 2015)規定了有效實施質量管理體系(QMS)的要求。
在組織層面,標準使專業人員更容易在組織內的項目和產品團隊之間流動,減少了培訓所需的努力。通過使用標準,組織內不同小組開發的軟件更加一致和統一,因此更容易集成和重復使用。事實上,每個人都知道并理解獲取、開發和/或維護軟件產品的標準方式,這就允許用統一的方法來審查產品和項目的狀態。
在行業層面上,標準可以通過提供良好的實踐機會來提高學科的專業性,這些實踐是由軟件行業有經驗的從業者定義的。許多公司以ISO和IEEE標準為基準,作為改進自己的流程和實踐的基礎。標準還可以幫助將新的技術和方法引入軟件行業。例如,來自對象管理小組(OMG 2015)的系統建模語言(SysML)標準幫助引入了一種一致的方法,可用于指定、分析、設計、驗證和確認系統和系統中的面向對象的需求和設計。
應該注意的是,指南(guidelines)與標準不同。標準和指南通常都是由一些權威機構發布的。然而,標準定義了要求,而指南定義了建議的實踐、建議、方法或程序,被認為是良好的實踐,但不是強制性要求。
模型是對一個項目或過程從一個特定角度的抽象表述。一個模型表達了一個項目或過程的某些方面的基本內容,而沒有給出不必要的細節。模型的目的是使有關人員能夠思考、討論和理解這些基本要素,而不被過多或復雜的細節所困擾。與標準不同,模型是溝通的工具,而不是強制性要求。用于開發的能力成熟度模型集成(CMMI)(SEI 2010)和生命周期模型(瀑布式、V型或螺旋式)是模型的例子。
ISO 9000
國際標準化組織(ISO)是一個由國家標準機構(ISO成員機構)組成的全球聯盟"(ISO 2015)。ISO制定了9000系列標準,以定義質量管理和質量保證領域的良好做法。這些標準定義了質量管理系統的基本、第一層次。它們的實施并不能保證高質量。
在ISO 9000系列中,核心標準包括。
- ISO 9000:2015質量管理體系-基礎和詞匯
- ISO 9001:2015質量管理體系-要求
- ISO 9004:2009 為組織的持續成功而管理--質量管理方法
ISO還提供了一套輔助標準/指南,以幫助組織建立和改進其質量管理體系、流程或活動。這些支持性標準/指南的清單包含在ISO 9001:2015標準(ISO 2015)的附件B中。
ISO 9000系列標準基于七項質量管理原則,適用于任何組織,包括軟件、制造和/或服務,包括。(ISO 2015; ISO 2015a)
- 以客戶為中心
- 領導力
- 人員參與
- 過程方法
- 改進
- 基于證據的決策
- 關系管理
ISO 9001:2015標準定義了一套具體的質量管理體系要求,這些要求被注冊機構用來審核和認證組織。ISO 9001:2015采用過程方法,其中包含了計劃-執行-檢查-行動(PDCA Plan-Do-Check-Act )循環和基于風險的思考。
一些行業對ISO 9000系列標準做出了特定的解釋,或稱附加條款。這樣做是為了規范其行業對ISO 9001:2015的解釋和/或增加行業特定的額外要求。這些特定行業的解釋也有助于確保審核員接受培訓并了解這些行業的具體需求。行業特定標準的例子包括。 - ISO/IEC 90003:2014 軟件工程--ISO 9001:2008對計算機軟件的應用指南,截至本書出版之日,尚未更新為ISO 9001:2015版本
- 用于航空、航天和國防的AS9100(以及針對可交付軟件的AS9115)。
- 用于汽車行業的ISO/TS 16949
- 電信業的TL9000
- 醫療設備的ISO 13485和醫療設備軟件的ISO 62304
- 石油、石化和天然氣的ISO/TX 29001
- 核電的NQA 1
IEEE軟件工程標準
IEEE計算機協會的軟件和系統工程標準委員會制定并維護一套軟件和系統工程標準。這套IEEE標準并不總是被逐字逐句地使用,但它們被廣泛地用作基準、模板和行業良好實踐的例子,各組織根據自己的具體要求進行調整。對于確定其軟件流程的組織,這些標準可以提供指導,最大限度地減少時間和精力。這些標準也可以作為檢查清單,幫助驗證重要項目不被忽視。
ISO 9001:2015和CMMI模型為良好的軟件質量工程實踐集提供了路線圖,而IEEE的軟件和系統工程標準則提供了更詳細的 "如何做 "的信息和指導。截至本出版物發布之日,IEEE軟件和系統工程標準的當前列表包括以下與注冊軟件質量工程師(CSQE)知識體系主題密切相關的標準。請參閱IEEE軟件和系統工程標準網站,了解這些和其他IEEE軟件和系統工程標準的最新版本。
- 730-2014-軟件質量保障流程
- 828-2012-系統和軟件工程的配置管理
- 829-2008-軟件和系統測試文件
- 982.1-2005-《軟件可依賴性方面的標準衡量標準》。
- 1008-1987(2009年重申)--軟件單元測試
- 1012-2012-系統和軟件核查與驗證
- 1016-2009-系統設計-軟件設計說明
- 1028-2008-軟件審查和審計
- 1044-2009-軟件異常情況的標準分類
- 1061-1998(2009年重申)--軟件質量度量方法學
- 1062-2015--軟件采購的推薦做法
- 1220-2005(2011年重申)--系統工程過程的應用和管理
- 1228-1994(2010年重申)--軟件安全計劃
- 1320.1-1998 (2004年重申) - 功能建模語言-IDEF0的語法和語義
- 1320.2-1998(2004年重申)-概念建模語言-IDEF1X97(IDEFobject)的語法和語義
- 1490-2011-采用項目管理協會(PMI?)標準--《項目管理知識體系指南》(PMBOK?指南)--第四版
- 1517-2010-系統和軟件生命周期過程-重用過程
- 1633-2008-軟件可靠性的推薦實踐
- 12207-2008-系統和軟件工程-軟件生命周期過程
- 14102-2010-采用ISO/IEC 14102:2008《信息技術--CASE工具的評估和選擇指南
- 14471-2010-采用ISO/IEC TR 14471:2007《信息技術--軟件工程--CASE工具采用指南》。
- 14764-2006-ISO/IEC軟件工程國際標準-軟件生命周期過程-維護
- 15026-n-采用ISO/IEC 15026-1《系統和軟件工程-系統和軟件保證》的標準
- 第1-2014部分。概念和詞匯
- 第2-2011部分。保證案例
- 第3-2013部分。系統完整性等級
- 第4部分-2013年。生命周期中的保證
- 15288-2015-ISO/IEC/國際標準--系統和軟件工程--系統壽命周期過程
- 15289-2015-ISO/IEC/國際標準--系統和軟件工程--生命周期信息產品(文檔)的內容
- 15939-2008-標準采用ISO/IEC 15939:2007-系統和軟件工程-測量過程
- 16085-2006-ISO/IEC 16085:2006-軟件工程-軟件生命周期過程-風險管理
- 16326-2009-ISO/IEC/International Standard 系統和軟件工程-生命周期過程-項目管理
20000-n-標準-采用ISO/IEC 20000-1:2011,信息技術-服務管理- 第1-2013部分。服務管理系統要求
- 第2-2013部分。服務管理系統的應用指南
- 24748-n-指南--采用ISO/IEC TR 24748系統和軟件工程--生命周期管理
- 第1-2011部分。生命周期管理指南
- 第2-2012部分。ISO/IEC 15288(系統生命周期流程)應用指南
- 第3-2012部分。ISO/IEC 12207(軟件生命周期流程)應用指南
- 24765-2010-系統和軟件工程-詞匯表
- 24774-2012-指南-采用ISO/IEC TR 24474:2010系統和軟件工程--流程描述的生命周期管理指南
- 26702-2007-ISO/IEC系統工程-系統工程過程的應用和管理
- 29119-n-軟件和系統工程-軟件測試
- 第1-2013部分。概念和定義
- 第2-2013部分。測試過程
- 第3部分-2013。測試文件
- 第4-2015部分。測試技術
- 29148-2011-系統和軟件工程-生命周期過程-需求工程
- 42010-2011-ISO/IEC系統和軟件工程-架構描述
應該注意的是,除了ISO 9000系列標準外,還有許多ISO/IEC信息技術、軟件工程、系統和軟件工程標準通過ISO/IEC JTC 1/CS 7編寫/正在編寫。這些標準中的一些已經被IEEE采用,另一些可能在未來取代上面列出的現行IEEE標準。目前的ISO/IEC標準的清單可以在http://www.iso.org/iso/home/store/catalogue_tc/catalogue_tc_browse.htm?commid=45086 上找到)。
能力成熟度模型集成(CMMI
軟件工程協會(SEI)推動軟件工程從一種臨時的、勞動密集型的活動演變為一門由技術管理和支持的學科。根據SEI的網站,SEI的主要工作領域包括。
- "軟件工程管理實踐。這項工作的重點是組織在獲取、構建或增強軟件系統時預測和控制質量、進度、成本、周期時間和生產力的能力。"
- "軟件工程技術實踐。這項工作的重點是軟件工程師分析、預測和控制軟件系統選定屬性的能力。這一領域的工作涉及在獲取、構建或增強軟件系統時必須做出的關鍵選擇和權衡"。
作為這項工作的一部分,SEI建立了CMMI模型(現在由CMMI協會支持),其目的是傳達一套良好的實踐,供追求企業范圍內流程改進的組織使用。由此產生的CMMI框架允許生成多個CMMI模型,這取決于表現形式(階段性或持續性)和學科。
能力成熟度模型集成(CMMI)用于開發(CMMI-DEV)(SEI 2010)。為組織提供良好實踐的路線圖,以改善他們的產品開發實踐,從而生產出高質量的產品,滿足客戶、用戶和其他利益相關者的需求。
服務的能力成熟度模型集成(CMMI)(CMMI-SVC)(SEI 2010a)。為有意為客戶和用戶提供高質量服務的組織提供良好實踐路線圖用于采購的能力成熟度模型集成(CMMI)(CMMI-ACQ)(SEI 2010b)。為組織提供良好實踐的路線圖,以改善其產品和服務獲取實踐,從而啟動和管理高質量產品和服務的獲取,滿足客戶、用戶和其他利益相關者的需求。
在階段性表述中,三個CMMI模型中的每一個都被細分為五個級別(或階段),用來衡量組織的成熟度。每個模型都包括一個四級結構(2到5級)的良好實踐,旨在提高產品和服務質量,以及項目績效。在這三個CMMI模型的階段性表示中,從2到5的每個級別都是由過程領域組成的。
每個CMMI過程領域都是用詳細的要求、期望和信息組件來定義的,包括。
- 必要組件。
- 具體目標:每個過程領域都有一個或多個專門適用于該過程領域的目標,組織需要在該過程領域實現這些目標。
- 通用目標:該模型還包括一組通用目標,組織必須為每個過程領域實現這些目標。每個過程領域的描述都解釋了這些通用目標以及它們如何適用于該過程領域。
- 預期的組成部分。
- 具體實踐 : 每個具體的目標都有相關的實踐,專門適用于該過程領域的該目標。組織應該實施模型中記錄的具體實踐,或可接受的替代實踐,從而實現相關的具體目標。
- 一般性實踐。每個通用目標都有適用于該通用目標的相關實踐。組織應該實施模型中記錄的通用實踐,或可接受的替代實踐,從而實現相關的通用目標。
- 信息化部分。
- 每個流程領域都有一個目的聲明,定義了該流程領域的目的,以及介紹性說明,描述了該流程領域所涵蓋的主要概念,還有一個相關流程領域的列表,并定義了具體的聯系。
- 每個具體的實踐都有子實踐、相關的注釋、例子和參考資料,它們提供了解釋和實施具體實踐的細節。
- 每個通用實踐都有子實踐,提供解釋和實施通用實踐的細節。每個通用實踐都有一個關于該通用實踐如何適用于所規定的流程領域的詳細說明。
舉例來說,CMMI的發展測量和分析過程領域的具體目標(SG)和具體實踐(SP)是。(SEI 2010)
- SG 1:調整測量和分析活動
- SP 1.1: 建立測量目標
- SP 1.2:指定測量方法
- SP 1.3: 明確數據收集和存儲程序
- SP 1.4: 明確分析程序
- SG 2: 提供測量結果
- SP 2.1: 收集測量數據
- SP 2.2: 分析測量數據
- SP 2.3: 存儲數據和結果
- SP2.4:交流結果
所有三個CMMI模型都有相同的2級和3級通用目標(GG)及其相關的通用實踐(GP)。(SEI 2010; SEI 2010a; SEI 2010b)
-
第2級。GG 2:將管理的流程制度化
- GP 2.1: 建立一個組織政策
- GP 2.2: 規劃流程
- GP 2.3: 提供資源
- GP 2.4: 指派責任
- GP 2.5: 培訓人員
- GP 2.6: 控制工作產品
- GP 2.7: 識別并讓相關的利益相關者參與進來
- GP 2.8: 監測和控制過程
- GP 2.9: 客觀地評估遵守情況
- GP 2.10: 與更高級別的管理層一起審查狀態
-
第3級。GG3: 將確定的流程制度化
- GP 3.1: 建立一個明確的程序
- GP 3.2: 收集改進信息
在評估一個組織的成熟度水平時,階段性表示中的過程領域是累積的。一個組織要達到2級成熟度,就必須。
通過實施所有相關的具體實踐或可接受的替代實踐,實現所有2級流程領域的所有具體目標。
通過實施所有相關的通用實踐或可接受的替代實踐,實現每個2級過程領域的所有2級通用目標。
為了向前邁進并達到3級成熟度,哪個組織將不得不。
通過實施每個二級流程領域的所有相關通用實踐或可接受的替代實踐,為每個通用目標增加實現所有三級通用目標的機會
通過實施所有相關的具體做法或可接受的替代做法,實現所有三級過程領域的所有具體目標。
通過實施每個3級過程領域的所有相關通用做法或可接受的替代做法,實現每個3級過程領域的所有2級和3級通用目標。
由于在分階段表述中沒有通用的4級或5級目標,為了向前邁進并達到4級成熟度,一個組織必須通過實施所有相關的具體實踐或可接受的替代實踐來實現所有4級流程領域的所有具體目標。為了向前邁進并達到5級成熟度,一個組織必須通過實施所有相關的具體實踐或可接受的替代實踐,來實現所有5級流程領域的所有具體目標。
到目前為止,我們只討論了CMMI的階段性表示。在連續表示法中,使用了相同的過程領域。然而,在連續表示法中,每個過程領域被獨立地評估為能力水平,指定為0級到3級,并描述如下,而不是組織被評估為成熟度水平。
- 能力水平-0,不完整。流程能力的初始水平,表明該流程根本沒有被執行,或其相關的一個或多個具體目標沒有被實現。
- 能力水平-1,已執行。一個具有第1級的過程領域已經通過實施所有相關的具體實踐或可接受的替代實踐,實現了其所有的具體目標。
- 能力水平-2,管理。具有第2級的過程領域,除了實現第1級的所有具體目標外,還通過實施每個通用目標的所有相關通用做法或可接受的替代做法,實現了所有第2級通用目標。
- 能力3級,已定義。一個達到3級的過程領域,除了實現其1級的所有具體目標和2級的通用目標外,還通過實施每個通用目標的所有相關的通用做法或可接受的替代做法,實現了所有3級的通用目標。
實現高成熟度是通過同等的階段性概念來實現的。一旦所有的2級和3級過程領域的分階段表示達到了3級能力,4級高成熟度則通過組織過程績效和量化項目管理過程領域達到3級能力來實現。一旦達到4級高成熟度,5級高成熟度將通過在因果分析和解決以及組織績效管理方面達到3級能力而達到。
人員能力成熟度模型
除了三個CMMI模型之外,還有一個人員能力成熟度模型(P-CMM)(SEI 2009)。該模型提供了一個良好實踐的路線圖,以幫助組織解決其關鍵的人員問題,并改善管理和發展組織的員工隊伍的過程。