(承德電信局豐寧支局,河北 承德 068350)
需求分析階段建立的模型主要有場景模型和概念模型。場景模型對初始需要和系統特性進行分析,需要考慮業界友商實現情況、規格、系統界面友好程度、產品的競爭力等內容。場景模型可以使用組網圖、用例圖、順序圖來表達,一般先使用組網圖對主要的使用場景進行建模。如場景復雜,則用例圖和順序圖對子場景進行展開分析。場景分析時需使用概念模型統一術語。
需求分析是對輸入的初始需求(IR)、系統特性(SF)進行詳細分析的過程,需弄清楚問題和要求,輸入是什么輸出是什么。需考察業界友商實現情況,考慮產品競爭力。通過嚴謹的需求分析推導過程,整理輸出需求分析文檔,得到系統需求清單。需求分析建模的入口是進行場景建模。場景模型可使用組例圖或順序圖進行表達。
通過組網圖對業務進行概要分析是理解初始需求的重要手段。可從客戶/研發/維護/用戶等多個角度對初始需求做概要設計分析,劃分場景,明確對初始需求和系統特性描述的理解。使用組網圖劃分場景和概要分析之后,可使用例圖和順序圖對子場景建模,做進一步分析。
通過用例圖收集系統需求,需要從系統外部觀察系統。從系統使用者的角度提取系統功能和對系統的要求。對于系統需求明確的場景,可跳過用例圖、直接使用順序圖做詳細分析。使用用例圖分析場景只能得到整體功能的描述,但不清楚交互的細節。如果想詳細分析描述交互細節,可以使用順序圖建立順序模型,進一步分析外部角色與系統的交互過程,收集外界對系統的需求。在有些復雜的交互協議中,系統與外部角色交互過程多,通訊接口復雜,建議使用順序圖進行詳細分析。
場景模型描述系統需求發生的場景,用于產品業務場景分析。通過組網圖、用例圖和順序圖進行分析。如果場景比較復雜,可以把場景進一步細分成子場景或者子子場景。是否需要拆分子場景進行分析,取決于問題的復雜程度。
(一)組網圖。在需求分析的最初階段,需要明確系統有哪些應用場景,確認如下問題:
系統有哪些應用場景?提供哪些網絡功能?系統所處的網絡層次如何?在網絡中處于什么位置?系統的應用環境、周邊設備都是怎樣?上、下行設備、同級設備有哪些?系統主要提供何種業務?其業務模型如何?與哪些服務器發生業務處理?系統的業務流量模型如何?網絡狀況、性能、安全性如何?需要從功能性能、安全性等幾方面考慮:系統的應用用戶類型都有哪些?是否存在用戶管理問題?
為了回答上述問題,可以使用組網圖來分析。畫組網圖時,確定設備或者性的組網環境、應用、業務模型,畫出組網拓撲圖。
(二)用例圖。對于場景模型,僅僅知道整體的組網和特性使用方式還不夠,需進一步明確待分析的系統要實現哪些具體功能?從而整理輸出一個需求列表。
一種收集系統需求的方式是使用用例圖分析,從系統外部參與者的視角,收集從系統外部觀察到的系統表現方式收集系統需求。即,從系統邊界和不同參與者對系統使用的角度出發,分析系統的操作或運行場景,提取系統需求。注意,不要以時間維度將一個完整的業務切分成很多“場景”輸出用例圖時,要識別參與者、用例和系統邊界。
(三)順序圖。用例圖只是表達了系統從外部參與者觀察、要實現的需求,但是沒有需求的具體描述,只有一段簡短文字,一般不夠具體,架構師、系統設計師和相關設計人員只有一個大概的方向,但是不了解具體要求。可能存在需求范圍和業務功能的理解歧義。所以作為一份嚴謹的需求描述,應該對用例圖展開進行明確闡述。明確描述用例的建模方法,一般是使用順序圖。
有兩種情況可能會在需求階段輸出順序圖。一種是用順序圖展開分析用例的詳細過程;另一種是場景非常明確,并且場景個數不多的情況。對于第二種情況,輸出用例圖的必要性不大,可直接用順序圖分析。
描述系統用例的順序圖,包含兩部分:生命線和交互過程。順序圖將交互關系表示為一個二維圖。縱向是時間軸,時間沿豎線向下延伸。橫向軸代表了在協作中各個參與者。參與者用生命線表示。當參與者存在時,角色用一條虛線表示,當對象的過程處于活動狀態時,生命線是一段實線段。
在需求分析過程中,會遇到問題領域中的一些名詞、術語,利益相關人經常因為各人對這些名詞、術語的理解不一致,導致無謂的溝通障礙。需求分析之后,往往因為混亂不堪的術語,導致架構設計、代碼實現與前期需求討論不一致,從而最終開發的產品易用性不好或功能實現不正確。為解決上述溝通和設計問題,使用概念模型。人們對現實世界中的一些領域中的現象和事物進行實踐、總結,得到一些深刻認識,即領域知識。對領域知識建模,得到概念模型。概念模型包含概念和概念之間的關系,在認識問題、設計架構時有重要的參考作用,是問題領域到解域的橋梁。概念模型一般使用類圖來表達。用類圖表達概念;用類之間的關系表達概念之間的關系。通過用類圖描述人們對于領域知識的理解,可以統一理解、將功能概念經需求分析向架構設計轉化。