1. 程式人生 > >淺談軟體需求建模

淺談軟體需求建模

       資料模型常用ER圖表示,ER圖也稱實體關係圖(Entity Relationship Diagram),提供了表示實體型別、屬性和聯絡的方法。用矩形表示實體型,矩形框內寫明實體名;用橢圓表示實體的屬性,並用無向邊將其與相應的實體型連線起來;用菱形表示實體型之間的聯絡,在菱形框內寫明聯絡名,並用無向邊分別與有關實體型連線起來,同時在無向邊旁標上聯絡的型別(1:1,1:n或m:n)。ER圖示例如下圖所示,具體繪製方法不做詳細說明。

       另外,對於設計方面的資料建模包括概念建模、邏輯建模和物理建模,而需求分析中的資料建模相當於設計中第一階段的概念建模。由於是設計方面的建模方法,這裡不再說明,詳細資訊可網上查詢“詳解資料建模的三個階段”。

2.2   功能建模——DFD圖
       當資料或資訊“流”過資訊系統時將會被系統的功能所處理、加工活變換,再將處理或變換後的資料從系統中輸出,DFD圖從資料傳遞和加工角度,以圖形方式來表達系統的邏輯功能、資料在系統內部的邏輯流向和邏輯變換過程。而功能建模正是通過DFD圖將系統所需實現的功能繪製出來的過程。
       DFD圖的基本組成包括資料流、加工、資料儲存和外部實體。通常用箭頭標誌資料流,用圓或橢圓表示加工,用雙槓表示資料儲存,用方框表示外部實體,即資料的源點或終點。DFD圖示例如下圖所示。

2.3  行為建模——STD圖
       STD圖(State Transition Diagram)用於描述系統或物件的狀態,以及導致系統或物件狀態發生改變的事件,從而描述系統的行為。它指明瞭作為特定事件的結果(狀態),在狀態中包含可能執行的行為。

       STD圖中,用圓圈表示可得到的系統狀態,用箭頭表示從一種狀態向另一種狀態的遷移,在箭頭上要寫上導致遷移的訊號或事件的名稱。STD圖示例如下圖所示。

3  面向物件分析方法
       面向物件方法是從內部結構上模擬客觀世界 ,其基本思想認為物件是對現實世界客觀實體的描述 ,均由其屬性和相關操作組成 ,是系統描述的基本單位。面向物件方法更強調運用人類在日常的邏輯思維中經常採用的思想方法和原則 ,例如抽象、分類、繼承、聚合、封裝等 ,這使得軟體開發者能更有效地思考問題 ,並以其他人也能看得懂的方式把自己的認識表達出來。
       面向物件方法包括面向物件需求分析(OOA)、面向物件設計(OOD)、面向物件程式設計(OOP)。而面向物件分析方法主要經過3個建模過程,包括結構建模、行為建模和功能建模,3中建模均採用統一建模語言 UML (Unified Modeling Language)。

       根據UML2.0標準,一共定義了13種不同的圖,其功能各有不同,而OOA主要使用到其中的5種,分別是類圖、活動圖、用例圖、構件圖和部署圖。
3.1  結構建模
       結構建模也叫領域建模或概念建模,是對業務或系統的某個時刻或某段時間內的狀態進行系統化描述,一般使用結構型的UML圖進行結構建模。結構建模所表示的內容一般是靜態的,在一段時間內是不會變化的。如用類圖表示業務及業務之間的關係,用部署圖、構件圖表示系統的部署及架構設計。
       類圖示例如下圖所示:

       構件圖如下圖所示:

       部署圖如下圖所示:

3.2  行為建模
      行為建模是系統化地分析業務活動及業務流程的過程,一般使用行為型的UML圖進行結構建模。行為建模表達的是某段時間內事情是如何發展的,這些發展最後會達到怎樣的效果。
       業務流程分為生產性流程、管理性流程和支援性流程。生產性流程是流程中最重要的部分,是企業/組織價值體現的核心;管理性流程是對生產性流程的管控,通常是有管理層發現的,對一些質量、效率進行監督的控制性流程;支援性流程是對生產性流程的一種補充,通常是由協作部門、本部門員工執行的工作。如果拿軟體開發過程來比喻的話,需求分析、軟體設計、軟體編碼、軟體測試是生產性流程;專案管理、質量保證是管理性流程;而文件配置等屬於支援性流程。通常生產性流程是最容易標識的,而管理性流程和支援性流程比較容易忽略,因此在需求分析時要特別注意。[2]
      活動圖示例如下圖所示:

3.3  功能建模
       功能建模是在結構建模和行為建模的基礎上,識別出通過系統實現的部分,一般使用UML用例圖表現,描述系統應具有的功能,用於實現使用者的日常需要。
      另外,在用例圖的基礎上通過原型工具製作出視覺化原型也屬於功能建模的範疇,通過原型使用者能更直觀地感知即將開發出來的系統的模樣,更好地引出客戶需求,同時避免後期需求變更。目前一般採用Axure原型工具製作系統或功能原型。
       用例圖示例如下圖所示:

4  結束語
       可以看出結構化分析方法和麵向物件分析方法有相同的地方,那就是都需要先理清業務概念及其關係,雖然SA稱為資料建模,而OOA稱為結構建模,但本質是相同的。不同的地方在於SA更偏向對資料流的分析,而OOA更偏向對物件行為的分析,而且在現階段OOA的應用更為廣泛,但不得不說的是,無論SA還是OOA都只是需求分析的方法,關鍵還是在於使用它們的需求分析師。

參考文獻:
[1]軟體需求十步走  新一代軟體需求工程實踐指南_楊巨龍,周永利編著_北京:電子工業出版社
[2]軟體需求最佳實踐:SERU過程框架原理與應用