小結
需求工程的任務是為設計和構建活動建立一個可靠堅固的基礎。需求工程發生在與客戶溝通活動和為一般的軟件過程定義的建模活動過程中。軟件團隊成員要實施7個不同的需求工程職能:起始、導出、精化、協商、規格說明、確認和管理。
在項目起始階段,項目干系人建立基本的問題需求,定義最重要的項目約束,以及陳述主要的特征和功能,必須讓系統表現出這些特征和功能以滿足其目標。該信息在導出階段得到提煉和延伸,在此階段中利用有主持人會議、QFD和使用場景的開發進行需求收集活動。
精化階段進一步把需求擴展為分析模型——基于場景、基于類、行為和面向數據流的模型元素的集合。模型可能對分析模式和在不同的應用系統中重復出現分析問題的解決方案加以注解。
當確定需求并且創建分析模型時,軟件團隊和其他項目干系人協商優先級、可用性和每條需求的相對成本。協商的目標是開發一個現實可行的項目計劃。此外,將按照客戶需求確認每個需求和整個需求模型,以確認將要構建的系統對于客戶的要求是正確的。
需求建模的目標是創建各種表現形式,用其描述什么是客戶需求,建立生成軟件設計的基礎,一旦軟件建立就能定義一組可被確認的需求。需求模型為系統級表示層和軟件設計之間的間隔構造了橋梁。系統表示層描述了整個系統和業務功能,軟件設計描述了軟件應用的架構和用戶接口,以及組件級的結構。
基于場景的模型從用戶的角度描述軟件需求。用例是主要的建模元素,它敘述或以模板驅動方式描述了參與者和軟件之間的某個交互活動。在需求獲取過程中得到的用例定義了特定功能或交互活動的關鍵步驟。用例的形式化和詳細程度各不相同,但是最終結果為所有的其他分析建模活動提供了必需的輸入。還可以使用活動圖說明場景,即一種類似于流程圖的圖形表現形式,描述在特定場景中的處理流。泳道圖顯示了如何給不同的參與者或類分配處理流。
數據建模常用于描述軟件構建或操作的信息空間。數據建模由所代表的數據對象開始,這些數據對象必須由軟件所理解的信息組成。每個數據對象的屬性得到識別,數據對象間的關系得到描述。
為了識別分析類,基于類的建模使用從基于場景和面向流的建模元素中導出信息。可以使用語法分析從文本敘述中提取候選類、屬性和操作,并制定了用于定義類的標準。CRC索引卡可以用于定義類之間的聯系。此外,可以使用各種UML建模方法定義類之間的層次、關系、關聯、聚合和依賴。使用一種分析包方式進行分類和分組,從而在某種意義上為大型系統提供了更好的管理。
在數據流對象做處理功能轉換時,面向流程建模關注數據流對象。從結構化分析進行推導,面向流程建模使用了數據流圖,建模符號描述了當數據對象移動通過一個系統時如何將輸入轉化為輸出。由一個處理的規格說明或者敘述來描述轉換數據的每個軟件功能。除了數據流以外,這些建模元素也描述了控制流,控制流是說明事件如何影響系統行為的一種圖示。
行為建模描述了動態行為。行為模型采用從基于場景、面向流程到基于類的輸入,從而把分析類和系統的狀態作為一個整體來表達。為達到這一目的,要識別狀態,定義引起類(或系統)由一個狀態轉換到另一狀態的事件,還要識別當完成轉換后發生的活動。狀態圖和順序圖是行為建模的常用表達方式。
分析模式能讓軟件工程師使用現有的知識領域,便于建立需求模型。一個分析模式描述了一個特定的軟件特性或功能,該特性或功能由一套相關用例描述。
Web應用系統的需求建模能使用大多數的建模元素。但是,只在一套指定的模型中使用這些元素,它涉及駐留于Web應用系統中的內容、交互操作、功能、導航和服務客戶端的配置。