3. CMMI級別三的需求管理
在CMMI級別三中,組織需要建立、歸檔所有項目中所使用的公共的和一致的流程。
過程域:需求開發(fā)
需求開發(fā)過程將解釋如何抽取責(zé)任人的需要、導(dǎo)出用戶的需求聲明,并把這些用戶需求進一步分析/總結(jié)成為相應(yīng)的系統(tǒng)需求。
CMMI對需求開發(fā)定義了以下幾個目標(biāo):
組織必須能夠?qū)⑹占瘉淼呢?zé)任人的需求轉(zhuǎn)換成用戶需求
CMMI中建議:
“將收集來的責(zé)任人的需要,期望值,約束條件和接口定義轉(zhuǎn)換成用戶需求?!?/P>
在一般情況下,責(zé)任人的需要并沒有被很好地定義和理解,這些需要甚至可能是不一致或相互矛盾的。一個責(zé)任人的典型代表必須參與產(chǎn)品開發(fā)的整個生命周期。在這個生命周期中,必須反復(fù)地定義,闡述和明確這些需求,最后總結(jié)出一組清晰的,被正確理解的用戶需求。
以上過程非常類似于邀請客戶代表進入項目隊伍參與全周期的開發(fā)工作。此外,對需求采集和闡釋的技巧也是極其重要 的,目前較流行的是Use Cases方法。Use Cases方法是一套在不同的使用場景下,從用戶的角度出發(fā),構(gòu)造和記錄功能性需求的方法。單個的UseCase只能記錄簡單的文本,最好的方式是使用 UML中的Use Case視圖對一組UseCases進行描述,并表示它們之間的相關(guān)關(guān)系。
因此,需求管理工具必須能夠支持在文本說明的需求聲明中插入相關(guān)的UML視圖,并可將文本和視圖同時顯示在一個文檔中。
組織必須可從用戶需求分析出系統(tǒng)需求
CMMI中建議:
“對用戶需求進行推敲和細化以開發(fā)出對系統(tǒng)需求?!?/P>
對用戶需求進行徹底的分析,識別出所有已暗示但沒有被清晰表述的需求,再結(jié)合所開發(fā) 目標(biāo)產(chǎn)品的技術(shù)架構(gòu)細節(jié),可得出該產(chǎn)品的系統(tǒng)需求。系統(tǒng)需求根據(jù)產(chǎn)品的規(guī)模和復(fù)雜度,可細化成系統(tǒng)需求、子系統(tǒng)需求、模塊需求等。在這個過程中,必須同時 建立起不同需求之間的可追蹤性,為后續(xù)的決策指定提供參考,并支持需求變更影響度分析。
根據(jù)CMMI要求,在技術(shù)架構(gòu)的基礎(chǔ)上,通過對用戶需求的分析可推導(dǎo)出系統(tǒng)需求。因此,需求管理工具需要支持實 現(xiàn)這種推導(dǎo),這種推導(dǎo)的支持不僅包括在不同層次的需求之間創(chuàng)建可追蹤性,還包括提供可分析上層需求的技術(shù)和相關(guān)方法。在UML建模方法中,可通過 UseCase視圖,Activity視圖和Sequence視圖等有效的方法來幫助分析和導(dǎo)出新的需求,上層的技術(shù)架構(gòu)通過Architecture視 圖(也稱為復(fù)合結(jié)構(gòu))進行描述。這些方法都要求在需求文檔中建立模型,用來記錄分析和決策過程,從而為下一步提出開發(fā)技術(shù)方案提供指導(dǎo)。
組織必須能夠驗證需求
CMMI中建議::
“需求必須可以被分析和驗證,同時必須開發(fā)出對“必需的功能性”的定義。”
當(dāng)那些非正式的需要轉(zhuǎn)化為正式的需求時,需求的分析和驗證對于確定責(zé)任人需要、用戶需求、系統(tǒng)需求等是否可行,是否可以在預(yù)算范圍內(nèi)達到,是否跟當(dāng)前系統(tǒng)運行環(huán)境相匹配都是非常必要的。
用于需求分析和驗證的技術(shù)包括按時間順序的使用場景驗證需求,并提推導(dǎo)新的需求。場景方法是一種有效的采集,闡述和推導(dǎo)需求的方法,在這個方法中我們常用UML中的Activity視圖或Sequence視圖來表示場景。
“必需的功能性”的定義是通過功能性分析建立起一整套功能性的架構(gòu)。功能性分析描述了系統(tǒng)的行為,時序活動,輸 入輸出以及其他所有對該系統(tǒng)應(yīng)用的描述。功能性架構(gòu)則從邏輯上描述了一組功能(或服務(wù))和需求是怎樣相互滿足的。UML的Activity視圖能夠從工作 流的角度描述系統(tǒng)的活動行為,并且可以識別負責(zé)這些工作流的相應(yīng)組件,這些視圖在描述功能性分析,以及將需求進一步分配到子系統(tǒng)級別時非常