摘 要:通過能力成熟度模型集成(CMMI)的框架分析了影響過程改進的主要因素。以過程域中的需求開發作為研究對象,系統闡述了需求開發的主要活動,并以CMMI三級為基礎提出了一套適用于企業實踐的精簡需求開發模型,并討論了相關方法。
關鍵詞:需求開發;過程改進;CMMI三級過程域
1、CMMI模型
CMMI(Capability Maturity Model—Integration)即能力成熟度模型集成,是對于軟件組織在定義、實現、度量、控制和改善其軟件過程的各個發展階段的描述。旨在幫助企業進行對軟件工程過程的管理和改進,增強開發制造能力,從而能按時地、不超預算地制造出高質量的軟件。
CMMI為學科分離構筑了“橋梁”,將各類工程學科集成在一起,形成一個過程改進框架。當出現需求時,為引進新學科提供框架。CMMI來源于傳統的質量工程理論,吸收了Walter Shewart的統計質量控制原理,PhiiipCroseby在“Quality is free”中提出的將質量管理改編為成熟度框架的思想。
2、過程改進和需求開發
在協助組織開發與維護質量產品及服務的研究中,組織可以專注數個改進經營的維度。一般來說,人員、程序和方法,以及工具與設備是其中最重要的3個維度。而組織中使用的過程(Process)將一切結合在一起。過程代表著一系列活動、任務和它們之間的關系,它們共同把一組輸入轉換成所需要的輸出,是產品成本,進度和質量的主要決定因素。過程透過協助人員更敏捷的工作而非費力工作及一致性改進,來參考組織人員符合經營目標。
有效的過程也提供導入與使用新技術的工具,以符合組織的經營目標。優化后的過程改進模型可以改進進度和預算的可預測性,改進開發周期和提高生產率,增加客戶的滿意度和提高員工的士氣
軟件企業存在的過程包括需求開發與管理,項目策劃和監控,需求分析、設計、編碼、測試,配置管理,質量保證等等。所有開發項目都有需求,從項目于維護活動的項目案例來看,產品或產品組件的變更,是基于現有需求、設計、或實現的變更。需求變更可能來自顧客或使用者所記載的變更請求單,或來自于需求開發過程的新需求形式。不論需求來源或型式,變更所驅動的維護活動也要加以管理。需求是設計的基礎,需求的開發包括下列活動:
●誘導、分析、驗證,以及溝通客戶的需要、期望及限制,以獲得客戶需求,并達成千系人的共識
●收集和協調干系人的需要
●開發產品的生命周期需求
●建立客戶需求
●建立與客戶需求一致的原始產品及產品組件需求
3、基于CMMI三級的需求開發模型
在成熟度等級3上,項目執行過程是通過剪裁組織的標準過程集合和組織過程財富產生的“已定義過程”,并具備與該過程相適應的運行環境。其與成熟度等級2的區別在于標準、過程描述、規范的應用范圍是全組織級的。
“需求開發”過程的目的是產生和分析客戶需求、產品需求和產品組件需求。需求開發過程域包括三項特定目標。 [開發客戶需求]特定目標說明如何定義完整的客戶需求,以使用于產品需求開發。收集共同利益者的需要、期望、限制條件和接口,并且把他們轉換成客戶需求。 [開發產品需求]特定目標說明如何定義完整的產品和產品組件需求,以使用于產品和產品組件設計。對客戶需求加以精煉和細化,針對產品生存周期開發產品和組件需求。『分析并確認需求J特定目標說明客戶、產品及產品組件需求須執行的必要分析,以定義、衍生及了解需求。對各項需求進行分析和確認并且開發所要求的功能度的定義。第三項特定目標的特定實踐,用以輔助前兩項特定目標的特定實踐。需求開發過程域的過程和技術解決方案過程域的過程,可彼此相互循環互動。
4、開發流程及過程描述
4.1 相關角色和對應職責
在需求開發模型中,一共涉及需求人員、開發組和客戶等三種角色。需求人員的職責包括制訂需求獲取計劃,獲取客戶需求,評審需求,開發客戶需求,開發產品需求等;開發組的職責包括開發客戶需求,構建快速模型,對需求進行承諾等;客戶的職責則是提出客戶需求,確認需求獲取計劃以及對需求進行承諾。
4.2 過程描述
4.2.1 建立需求獲取的計劃
此階段需求人員要依據《項目綜合計劃》草案,細化需求階段的具體活動安排,形成需求獲取計劃。可將需求計劃增加到項目主計劃中或單獨編寫《需求調研計劃》。然后由項目經理與客戶確認需求獲取計劃。
4.2.2 獲取需求
(1)客戶訪談
為了成功地進行訪談,獲取盡可能多的信息,把訪談分成準備、對話、結束和總結四個階段,每個階段都要有很好的氣氛和對答話人造成心理上的信任感。在準備過程步驟如下:①選好訪談的人員(根據負責的領域、別人的推薦,或者不同層次的人員,上層人員談大局概貌,下層的人員談信息的細節,中層的人則彌合了這兩者的間隙)。②寫出初步議程(訪談議題范圍,避免泛泛而談,提出專門問題)③編寫問題列表或問卷,與被訪談人員建立聯系。④最后正式做出訪談議程。
(2)調查及分析
首先準備調查材料。例如問題列表,問卷等。然后與被調查者建立聯系,確定調查的時間、地點、人員等。之后進行客戶訪談, 將調查結果記錄在《需求調研記錄表》中并得到客戶確認。
需求人員分析調查的記錄(《需求調研記錄表》),根據分析的結果,在組織財富庫中查找是否存在類似的項目。如果存在類似的項目,給客戶演示已有的項目,進一步了解客戶的需求,并將客戶訪談內容記錄在《需求調研記錄表》。如果不存在類似的項目,可以根據需要由開發人員構建快速原型,給客戶演示快速原型,進一步了解客戶的需求,將結果記錄在《需求調研記錄表》中。
(3)分析需求并確認產品需求
對收集到的需求進行分析,分析的結果記錄在《需求規格說明書》中。系統分析負責人根據訪談記錄及分析的結果,確定詳細的業務需求、功能需求和非功能需求、設計約束,劃分需求的等級(子系統、模塊、功能項)、優先級。根據分析的結果編寫《需求規格說明書》,項目組內部參照《評審指南》中評審流程對《需求規格說明書》進行評審。主要從需求開發的成本、開發的進度、和減少開發風險的角度進行評審。項目組內部評審通過后,與客戶進行確認,驗證產品需求是否符合客戶的要求。
根據客戶的要求修改《需求規格說明書》,修改之后要得到客戶的確認。客戶經理依據SRS再進行估計,形成《項目綜合計劃》正式版,對于需求重點將每一個需求分配給不同的小組和個人,將分配的結果寫到進度計劃中。計劃采用:MS Project工具,并與進度計劃相關的成員進行溝通,并取得其承諾。
5、需求分析的方法
除了上述的問答分析方法以外,需求分析常用的方法還包括繪制關聯圖及創建開發原型、可行性分析,需求的圖形分析模型和創建數據字典等。

①繪制系統關聯圖是用于定義系統與系統外部實體間的界限和接口的簡單模型。同時它也明確了通過接口的信息流和物質流。創建開發原型是當開發人員或用戶不能確定需求時,開發一個用戶接口原型,這樣使得許多概念和可能發生的事更為直觀明了。用戶通過評價原型將使項目參與者更好地相互理解所要解決的問題。注意要找出需求文檔與原型之間所有的沖突之處。②分析需求可行性在允許的成本、性能要求下,分析每項需求實施的可行性,明確與每項需求實現相聯系的風險,包括與其它需求的沖突,對外界因素的依賴和技術障礙。③需求的圖形分析模型是軟件需求規格說明極好的補充說明。它們能提供不同的信信與關系以有助于找到不正確的、不一致的、遺漏的和冗余的需求。這樣的模型包括數據流圖、實體關系圖、狀態變換圖、對話框圖、對象類及交互作用圖。④數據字典是對系統用到的所有數據項和結構的定義,以確保開發人員使用統一的數據定義。在需求階段,數據字典至少應定義客戶數據項以確保客戶與開發小組是使用一致的定義和術語。分析和設計工具通常包括數據字典組件。
參考文獻:
[l]劉學仁,邵偉民,黃威基于CMMI三級的企業項目管理系統研究與設計[J],計算機工程與設計,2009,30(13):3100-3103
[2]周金陵,張鵬基于CMMI的軟件過程改進研究[J],計算機工程與設計,2003,24(11):60-62
[3]毛超,林子禹,肖勁松,軟件企業CMMI評估系統的UML建模、設計與實現[J],計算機工程,2004,30(7):66—67.
[4]袁順波,企業知識管理成熟度模型研究[J]江蘇商論,2008(3):105-106
[5]毛明志,基于CMMI的需求管理模型[J],科技管理研究,2008(1):203-205
[6]邢彬彬,姚鄭,CMM/CMMI與軟件生命周期模型關系的研究[J]計算機應用研究2007(11):65-69.
17]白思俊,朱宏超基于CMM與OPM3的軟件項目關鍵成功因素分析[J]管理工程學報2005(19):1-5