摘 要: 探討了應用非線性軟件工程思想實現CMM2需求管理過程域的要求和目標的方法。
關鍵詞: CMM; 非線性軟件工程思想; 需求管理
1 CMM模型介紹
以Watts Humphrey為首的課題組推出了能力成熟度模型CMM(Capability Maturity Model),該模型被業界普遍接受,軟件組織可以用CMM來定義、實施、度量、控制和改進自己的軟件過程。
CMM將軟件組織依據成熟度分為5個等級。需求管理是CMM2(可重復級)的一個關鍵過程域。能否解決需求管理問題是不成熟的軟件組織走向成熟邁出的第一步。
然而,現有的軟件工程體系均采用了線性增量單向迭代模型,都是線性思維和簡單科學的產物,而軟件是由開發團隊和客戶這些非線性的人組成的復雜系統所創造的邏輯思維的產物,其本身也是一個復雜的、非線性的系統,兩者存在根本性的矛盾。因此,采用現有軟件工程體系很難在較高層面實現CMM。
為了在較高層面實現CMM,必須摒棄傳統的線性軟件工程思想,取而代之以非線性、整體性、相關性、關鍵性、層次性、目的性、開放性、動態性、適應性等原則和綜合設計、增量集成、雙向迭代、主動防錯、全程評審、協同開發、信息共享、實時溝通等擴展原則的非線性軟件工程思想。
2 非線性軟件工程思想在需求管理中的應用
依據CMM模型,需求管理這個關鍵過程域的目標有兩個:(1)對軟件需求加以控制,以建立軟件工程和管理活動的基線;(2)軟件計劃、軟件產品和活動均與需求保持一致。該域的執行約定為:項目遵循一書面的、組織上的方針去管理分配給軟件的系統需求。
針對CMM2需求管理的目標,依據非線性軟件工程思想,認為需求管理應按照圖1的流程,通過軟件組織中的多小組協同來開展工作。對此,從以下六個方面加以論述。
2.1 需求采集的全方位
需求不僅來源于軟件組織外部產品的投資者、管理者、使用者等顧客,還來源于組織內部的工程組、系統組、銷售組等小組。這體現了非線性軟件工程整體性的思想及協同開發的原則。
2.2 整個生命周期的需求管理
需求管理工作的開展不僅限于傳統線性軟件工程體系中總體設計前的階段,而是存在于軟件的整個生命周期。
在需求分析前的計劃階段以及之后的總體設計、詳細設計、編碼、測試、集成、維護等階段,都可能存在需求的提出和變更。因此,需求管理必須貫穿整個生命周期,且必須要體現開放性、動態性、適應性的非線性軟件工程思想。
2.3 文檔化
在需求管理中,文檔化是CMM2需求管理關鍵過程域的執行約定,也是其要求的軟件組織必須具備的重要能力之一。
在需求管理過程中,共產生5個文檔,包括需求調查報告、需求建模和分析報告、需求說明書、需求變更控制報告、需求跟蹤報告。這5個文檔產生的時點不同,起到的作用也不同。但是,它們都是實現CMM2需求管理關鍵過程域所建立的軟件計劃、軟件產品和活動均與需求保持一致目標的基礎,也體現了整體性的非線性軟件工程思想。
2.4 雙向可追溯
需求跟蹤報告包含了需求跟蹤矩陣和需求問題處理等內容。其中,需求跟蹤矩陣實現了需求文檔、設計文檔、代碼、測試用例、維護記錄等文檔的雙向追溯,也就是在軟件產品的整個生命周期內實現了雙向可追溯。另外,需求跟蹤報告還將需求問題的描述、識別人、日期、解決措施、結果等進行了詳細記錄。
從圖1中描述的需求管理的流程看,需求管理的各個階段建立在需求管理文檔化的基礎之上,同樣實現了雙向追溯。
上述雙向追溯機制體現了非線性軟件工程思想的雙向迭代的原則,提高了軟件開發、維護的效率及產品的質量。
2.5 評估和評審
評估和評審是CMM2需求管理關鍵過程域所要求開展的活動之一。貫穿于需求管理過程不同階段的評估與評審為實現CMM2需求管理關鍵過程域的對軟件需求加以控制的目標提供了基礎,也為管理活動的基線提供了基礎,保證了需求活動的質量,為雙向追溯提供了判斷依據,是非線性軟件工程思想主動防錯和全程評審原則的體現。
2.6 協同工作
需求的采集和變更由顧客和軟件組織內的各個小組協同完成,建模和規約由需求管理小組完成,五個文檔的編寫由文檔小組完成,各階段的評估和評審工作由項目經理領導下的軟件品質保證組完成。另外,高層管理人員還要對評審工作負責。
總之,需求管理是由軟件組織內、外的多個小組協同實現的,這是CMM2需求管理過程域的要求,也是非線性軟件工程思想信息共享、實時溝通、協同開發原則的體現。
非線性軟件工程思想符合軟件自身的復雜的、非線性系統的特點,因此應用該思想的原則能夠在較高層次實現CMM2需求管理過程域的要求和目標。
參考文獻
[1] 熊繼光.新一代軟件工程體系與實踐——基于現代系統科學與復雜性科學的非線性整體軟件工程體系及其應用[M]. 北京:清華大學出版社,2008.
[2] (美)Roger S. Pressman,著. 軟件工程——實踐者的研究方法(第5版)[M]. 梅宏,譯. 北京:機械工業出版社,2005.
[3] 鄭人杰, 王緯, 王方德,等. 基于軟件能力成熟度模型(CMM)的軟件過程改進—方法與實施[M]. 北京:清華大學出版社,2003.
[4] 李偉波,劉永祥,王慶春. 軟件工程[M]. 武漢:武漢大學出版社,2006.