張衛民 賈山剛
(北京航天飛行控制中心)
能力成熟度模型(Capability Maturity Model Integration for Development,以下簡稱為 CMMI)是一種用于產品和服務開發與維護的過程改進成熟度模型[1],已經被廣泛應用于產品開發企業的能力成熟度評價和過程改進。在國內,特別是在軟件開發行業,該模型的應用也越來越普遍。國軍標《軍用軟件研制能力成熟度模型》(GJB5000A-2008)也等效采用了該模型。在很多大型工程項目中,通過能力成熟度評價,獲得一定的能力成熟度等級資質,已經成為軟件研制單位承擔軟件開發任務必須具備的資質條件。但是,由于CMMI模型中并沒有包括安全性能力相關的目標和實踐,一個研制單位即使通過了高等級的CMMI能力成熟度評估,也不一定具有開發安全關鍵產品的過程能力。而目前在很多領域,比如航空、航天等領域,存在大量的安全關鍵產品開發任務,如何改進和提高安全關鍵產品開發企業的安全性過程能力,以及如何選擇安全關鍵產品供應商,是保證產品具有高安全性需要解決的一個非常重要的問題。
產品開發安全性能力成熟度模型(+SAFE)是由澳大利亞國防部和美國卡內基梅隆大學共同開發的[2],是對CMMI模型的一種擴展,其主要目的是識別安全關鍵產品供應商的安全性強項和弱項,并且在產品獲取過程的早期關注識別出的弱項。該模型特別關注安全性,給出了改進組織開發安全關鍵產品能力的安全性特定實踐,為評價和改進組織提供安全關鍵產品的能力提供了清晰的、需要特別關注的內容。
下面的第2節介紹了安全性能力成熟度模型的組成;第3節討論了安全性能力成熟度模型與CMMI,以及與安全性標準之間的關系;第4節給出了使用安全性能力成熟度模型需要注意的事項。
安全性能力成熟度模型+SAFE共有兩個過程域,一個是屬于項目管理類的安全性管理過程域,另一個是屬于工程類的安全性工程過程域。其中每個過程域除了具有各自的專用目標(SG)外,還具有與CMMI其它過程域類似的共用目標(GG)。該模型的結構如表1所示。
安全性管理是一個項目管理類過程域。安全性管理的目的是確保對安全性活動進行計劃、根據計劃對安全性活動的績效和結果進行監控,并對偏離計劃的偏差進行修正。

表1 安全性能力成熟度模型+SAFE的結構
安全性管理過程域包括如下內容:
(1)利用安全性原理、準則和目標為實現安全性需求的安全性活動建立計劃;
(2)執行計劃,監控安全性事件,并根據計劃對這些事件進行管理;
(3)為獲取安全性相關產品和服務,開發并執行與供應商間的協議。
安全性管理過程域關注于項目有效地考慮安全性的需要,以及如何通過管理活動和技術方法來滿足安全需求。當項目外部的供應商被用來提供產品、部件和服務時,安全性管理可以確保相關的需求被合并到供應商協議中,并且使這些協議得到履行。
安全性管理是一個持續的過程,它跨越項目的整個生存周期,并且采用如下的管理原理:
(1)安全性事項應在項目生存周期的早期得到關注,并在整個生存周期過程中得到追蹤;
(2)安全性保證要求對產品和過程的獨立的可見性;
(3)安全性保證必須可以傳遞到項目外部的團體(包括供應商);
(4)必須采用一種迭代的、持續的和不斷演化的過程。
安全性管理過程域共有3個專用目標和5個共用目標。實現5個共用目標的共用實踐與CMMI其它過程域的共用實踐類似,這里不再敘述。實現3個專用目標的專用實踐如下。
2.1.1 開發安全性計劃
安全性管理過程域的第一個目標是開發安全性計劃。該計劃是在整個項目生存周期內管理安全性的基礎,是基于安全性需求、安全性準則和安全性管理原理來建立和維護的。實現該目標的專用實踐為:
·確定規定需求、法定需求和標準;
·建立安全性準則;
·建立項目的安全性組織結構;
·建立一個安全性計劃。
2.1.2 監控安全性事件
通過實現該目標,使得安全性事件得到監控、報告、分析和解決。實現該目標的專用實踐為:
·監控和解決安全性事件。
2.1.3 管理安全相關供應商
該目標要求根據包含安全性需求的正式協議管理、從項目外部供應商獲得安全相關產品和服務的獲取過程。實現該目標的專用實踐為:
·建立包括安全性需求的供應商協議;
·履行包括安全性需求的供應商協議。
安全性工程是一個工程類過程域。安全性工程的目的是確保在工程過程的所有階段,安全性得到了充分的關注。
安全性工程過程域包括如下內容:
(1)識別危險、事故和危險源,分析識別的結果以評估安全性相關的風險;
(2)開發關注安全相關風險的安全性需求;
(3)在整個項目生存周期應用安全性原理,確保安全性需求得到滿足;
(4)開發能夠支持安全性驗收,并提供確認安全性策略、安全性計劃和計劃實施所需信息的審核索引。
安全性工程過程域關注安全性需求的技術分析和技術工程,以及技術解決方案開發中安全性工程原理的應用。綜合考慮安全性工程和其它工程過程(包括需求開發、技術解決方案、集成和驗證等),可以確保需求和技術方案的安全性方面在項目生存周期的適當時間點得到策劃和設計,確保安全性方面相對于其它需求或解決方案特性的優先權被明確地描述。
安全性工程過程域的專用實踐使用如下技術上的安全性原理:
(1)安全性最好是利用已應用過并且可信的技術來實現;
(2)必須有一個迭代、持續和演化的開發過程;
(3)關鍵功能應該盡可能簡單,并且與產品的其他部分隔離;
(4)對于最關鍵的情況,可以采用正式的數學證明方法證明其正確性。
安全性工程過程域共有5個專用目標和5個共用目標。實現5個共用目標的共用實踐與CMMI其它過程域的共用實踐類似,這里不再敘述。實現5個專用目標的專用實踐如下。
2.2.1 識別危險、事故和危險源
危險識別、危險分析和風險評估是在項目生存周期中多次執行的迭代過程的幾個步驟。實現該目標的專用實踐為:
·識別可能的事故和危險源;
·識別可能的危險。
2.2.2 分析危險,執行風險評估
該目標要求對于每個危險,分析可能的原因、概率和結果,評估該危險所呈現風險的嚴重性。實現該目標的專用實踐為:
·分析危險,評估風險。
2.2.3 定義和維護安全性需求
該目標要求開發描述危險、風險和安全性準則的安全性需求,為每個安全性需求確定安全性目標,并在整個項目生存周期中維護這些需求。實現該目標的專用實踐為:
·定義安全性需求;
·定義為每項安全性需求的安全性目標;
·將安全性需求分配到部件。
2.2.4 安全性設計
該目標要求在項目生存周期全過程應用安全性原理,實現安全性需求。實現該目標的專用實踐為:
·應用安全性原理;
·收集安全性保證證據;
·進行變更安全性影響分析。
2.2.5 支持安全性驗收
該目標要求通過獨立的安全性評估和獨立的安全性活動假設確認,建立和維護危險日志及安全性案例,以支持安全性驗收過程。實現該目標的專用實踐為:
·建立危險日志;
·開發安全性案例論據;
·確認產品在計劃運行任務中的安全性;
·進行獨立的評價。
建立安全性能力成熟度模型的目的是對CMMI進行擴展,以提供一種清晰、明確的開發復雜安全關鍵產品的功能安全性的框架,它以一種獨立使用的方式表示,可由具有CMMI經驗的用戶使用,而不需要太多來自安全性領域專家的支持。
由于安全性能力成熟度模型+SAFE是CMMI的一種擴展,所以它采用了與CMMI相同的假設、模型結構、習慣表示法和術語,并且受到普通的CMMI固有的過程域和能力水平相互作用的影響。
安全性能力成熟度模型+SAFE框架并不限定于任何一種特定的安全性標準。定義安全性原理、方法、技術、工作產品和產品評估的任何適用標準,都可以用來實現框架的目標。
安全性能力成熟度模型+SAFE的背景及其與CMMI部件、安全性標準和評估與評價方法之間的關系如圖1所示。

圖1 安全性能力成熟度模型+SAFE與CMMI、安全性標準間的關系
安全性能力成熟度模型+SAFE可以看作是CMMI的一個附加的過程域集合。如果去掉+SAFE的獨立使用要求,除了下述幾點之外,+SAFE的過程域可以無縫地集成到CMMI的項目管理過程域類和工程過程域類。
(1)+SAFE過程域的資料性材料要比CMMI過程域中典型描述的更多、更詳細(例如,實踐描述中的例子、典型工作產品、子實踐、注釋、學科擴充、共用實踐詳細描述和參考資料等)。這樣做的目的是為了減少對學科專門知識的依賴。
(2)+SAFE過程域與其他過程域的交叉引用要比CMMI過程域中典型描述的要多。這是因為有些CMMI過程域將安全性描述為產品的非功能屬性,因此+SAFE的過程域與這些過程域中的實踐之間就會存在重疊或冗余。
(3)CMMI中通用的習慣表示方法,即“必須的”成分(專用和共用目標)、“期望的”成分(專用和共用實踐)和“資料性”成分(其他的所有內容)等在+SAFE中被進一步加強,以確保資料性的內容不被當作規定性的要求使用。術語“例如”、“樣本”、“指標可包括”,以及對外部標準的參考等明確地將“資料性”內容與“必須的”或“期望的”內容區分開來。
為了支持其獨立使用,安全性能力成熟度模型+SAFE還包含一些與CMMI完全冗余的材料。其中包括為不熟悉CMMI并且要為+SAFE應用提供支持的安全性從業人員提供了一些CMMI概念方面的材料,以及一些可能與CMMI冗余的資料性內容(例如,典型工作產品、子實踐、注釋、學科擴充、共用實踐詳細描述和參考資料等)。
安全性能力成熟度模型+SAFE不要求采用任何特定的安全性標準。作為對CMMI的一種擴展,安全性能力成熟度模型主要是用于定義目標,以及提高績效能力水平。該擴展的資料性部件只是如何能夠實現目標的指示器,這些部件并不是強制的,一個組織可以選擇它希望采用的方法來實現這些目標,這其中也包括對特定標準的選擇。
安全性能力成熟度模型+SAFE試圖與澳大利亞國防標準“國防系統獲取中的安全性工程”保持一致,也試圖與當代其他安全性標準(例如,IEC的“機器安全性—安全相關電器、電子與可編程電子控制系統的功能安全性”,美國軍用標準“系統安全性項目需求”,英國國防標準“國防系統的安全性管理要求,第1部分第2和第3期”,以及任何可行的領域特定安全性標準)的原理保持一致。
安全性能力成熟度模型+SAFE不打算用于評估產品本身的安全性(即,基于這一擴展的評價并不類似于定義于IEC的“機器安全性—安全相關電器、電子與可編程電子控制系統的功能安全性”中的“功能安全性評估”)。
安全性能力成熟度模型+SAFE的用法與CMMI相同。作為一個用于評價安全關鍵產品供應商或潛在供應商能力的結構框架,該模型可以由經過培訓具有資格的CMMI評估師使用,根據SCAMPI或其它適當的評價方法來進行安全性能力評價,而不需要特定的安全性專業知識。作為一個用于改進一個組織開發、支持、維護和管理安全關鍵產品能力的結構框架,該模型可以由具有CMMI和IDEAL專門知識的組織使用,來改進其安全性能力。
一個安全性能力成熟度評價或改進活動可以與一個CMMI評價或改進活動集成在一起,也可以作為獨立的安全性評估或改進活動。當采用連續表示法時,在評價或改進活動中安全性能力成熟度模型的應用方法與CMMI的其他過程域完全一樣。
任何一種適用于CMMI的評價方法都可以應用于安全性能力成熟度模型。該模型是基于以下假設編寫的,即評估師已經過正常的CMMI培訓,并經過附加的+SAFE模塊培訓。+SAFE并不假設評估師具有很高水平的安全性知識,但是與任一CMMI過程域的評價一樣,評價組必須評估它所具有的專門知識水平,如果需要還要補充主題專門知識。
盡管+SAFE過程擴展是采用與CMMI-DEV過程模型相分離的方式給出的,這種方法僅僅是為了鼓勵在評價中將關注焦點集中在安全性方面。+SAFE過程域可以作為更廣泛的CMMI評價的一部分來進行評價,也可以與其它CMMI過程域一樣,獨立地進行評價。
與標準的CMMI部件一樣,一個組織的過程描述以及這些描述的組織方式反映了組織運行中的過程,而不是+SAFE中描述的通用的過程。為了簡化和縮短評價,在評價之前應當建立組織的安全性過程及術語與該擴展中的過程及術語間的映射關系。這一映射關系也有可能識別出對于特定評價可以剪裁的部分+SAFE過程域。
如果對一次評價進行了剪裁,則經過剪裁后的評價結果具有特定的用途,在其它環境下不能重用。例如,一次評價剪裁掉了與外部供應商管理相關的專用實踐,則如果被評價組織要使用外部供應商,則該次評價結果就不太適用于組織的內部過程改進和獲取風險管理。
在項目中常見的關于安全性的三種基本情況是:
(1)產品是安全關鍵的,并且嘗試了安全性活動;
(2)產品是安全關鍵的或者其安全特性是未知的,并且沒有嘗試開展安全性活動;
(3)產品不是安全關鍵的,并且沒有嘗試開展安全性活動
一次理想的安全性能力成熟度評價應當包括各種情況的樣本,這是因為,安全關鍵項目和非安全關鍵項目都影響一個組織實施安全性活動的方式。
因此,是否將某個項目當作+SAFE評價的一個樣本的決策依賴于對該項目是否為安全關鍵項目所作的安全性評價。安全關鍵性的決定不是對產品性質僅有簡要了解的+SAFE評價組的任務。然而,+SAFE評價組應當決定是否評價一個或多個沒有嘗試進行安全性活動的項目,這一決定應基于納入這些項目將對組織實施安全性活動的全面評價所產生的影響做出。
在確定安全性能力成熟度模型的哪些部分應用于評價項目時,可以應用下面的指南。在評價過程中,應當實施一定的剪裁。
(1)如果一個項目有可能是安全相關的,則應該對照安全性管理過程域的專用實踐和安全性工程過程域中的“SG1識別危險、事故和危險源”及“SG5支持安全性驗收”對其進行評價。
(2)如果一個項目達到了安全性工程過程域的SG1和SG5,并且因此確定該項目是安全相關的,則應對照安全性工程過程域中的“SG2分析危險,進行風險評估”對其進行評價。
(3)如果一個項目達到了安全性工程過程域的SG2,并且因此確定該項目存在安全性需求,則應對照安全性工程過程域中的“SG3定義和維護安全性需求”和“SG4安全性設計”對其進行評價。
表2說明了可以選擇的安全性能力成熟度模型過程域和目標。

表2 過程域選擇示例
對項目決策正確性的評估,包括對安全關鍵或非安全關鍵分類正確性的評估,不是對照安全性能力成熟度模型進行評價的組成部分。
對于一個組織如何獲得安全性活動的能力,安全性能力成熟度模型+SAFE提供了指南。與其它CMMI過程域一樣,指南也包括如下三部分。第一,組織實施其安全性活動必須達到什么目標,即過程域的專用和共用目標,這些目標是“必需的”部分;第二,組織如何能夠達到這些目標,即“期望的”和“資料性的”部分,包括專用實踐、共用實踐詳細說明、學科擴充和子實踐等部件;第三,使用能力水平表示的過程域結構,即改進優先級和依賴關系的指南。
另外,安全性能力成熟度模型還提供了下述使用安全性過程域的專用指南。
(1)安全性能力成熟度模型不要求使用特定的安全性標準。如果組織已經選擇了特定的標準,或者是合同要求了特定的標準,安全性能力成熟度模型框架是為適應這些標準的方法和技術開發的,適用時,包括+SAFE專用和共用實踐的可替代實踐。
(2)安全性過程高度依賴于支持類過程域,特別是配置管理、過程和產品質量保證,以及決策分析和決定過程域。在較低程度上,安全性過程域還依賴于測量和分析,以及原因分析和決定過程域。這些過程域的有效實施對于安全能力的持續改進是至關重要的。
(3)安全性過程特別強調驗證和確認資源的獨立性,以及向安全性管理人員和參與人員通報的渠道,特別是問題上報渠道的獨立性。
安全性能力成熟度模型作為CMMI在安全性方面的擴展,為改進產品開發企業的安全性過程能力,以及評估一個企業的安全性過程能力水平和等級提供了一個模型框架。通過該模型的應用,可以有效地提高安全關鍵產品開發企業的安全性過程能力,并且為選擇安全關鍵產品開發企業提供了手段。因此,在國內安全相關領域應盡早開展安全性能力成熟度模型的應用和推廣工作,將安全性能力成熟度模型和產品開發能力成熟度模型結合起來,全面提高和改進安全關鍵產品開發企業的開發過程能力和安全性過程能力,并將兩個模型綜合起來作為評價和選擇安全關鍵產品開發企業的基礎和標準。 ◇
[1]CMMI Product Development Team.CMMI for Development,Version 1.2.Pittsburgh, PA:Software Engineering Institute, Carnegie Mellon University,August 2006.
[2]Australian Department of Defence.+SAFE,V1.2-A Safety Extension to CMMI-DEV,V1.2.Pittsburgh,PA:Software Engineering Institute,Carnegie Mellon University,March 2007