1. 程式人生 > >系統分析與設計UML建模

系統分析與設計UML建模

撰寫 中一 聚合和組合 常見 log 操作 發生 -- mac

UML的歷史

1997年,OMG組織(Object Management Group對象管理組織)發布了統一建模語言(Unified Modeling Language,UML)。UML的目標之一就是為開發團隊提供標準通用的設計語言來開發和構建計算機應用。UML提出了一套IT專業人員期待多年的統一的標準建模符號。通過使用UML,這些人員能夠閱讀和交流系統架構和設計規劃--就像建築工人多年來所使用的建築設計圖一樣。
2003年,UML已經獲得了業界的認同。在所見過的專業人員的簡歷中,75%都聲稱具備UML的知識。然而,在同絕大多數求職人員面談之後,可以明顯地看出他們並不真正了解UML。通常地,他們將UML用作一個術語,或對UML一知半解。大家對UML缺乏理解的這種狀況,促進我撰寫這篇關於UML 1.4的快速入門文章。當閱讀完本文時,您還不具備足夠的知識可以在簡歷上聲稱自己掌握了UML,但是您已具有了進一步鉆研該語言的良好起點。

技術分享

UML的特點

? UML的主要特點包括:

? 統一的標準

? 面向對象。UML是支持面向對象軟件開發的建模語言。

? 可視化、表現能力強

? 獨立於過程,UML不依賴於特定的軟件開發過程。

? 概念明確,建模表示法簡潔,圖形結構清晰,容易掌握和使用。

UML中的視圖

UML視圖

UML總共提供了9種視圖,這些圖從不同應用層次和不同角度為軟件系統分析、設計直到實現提供了有力的支持。在不同的階段建立不同的模型,建模的目的也各不相同。UML的9種圖如下:

(1)用例圖(UseCaseDiagrams)

用例圖描述了系統提供的一個功能單元。用例圖的主要目的是幫助開發團隊以一種可視化的方式理解系統的功能需求,包括基於基本流程的"角色"(actors,也就是與系統交互的其他實體)關系,以及系統內用例之間的關系。

(2)類圖(ClassDiagrams)

類圖表示不同的實體(人、事物和數據)如何彼此相關;換句話說,它顯示了系統的靜態結構。

(3)時序圖(SequenceDiagrams)

UML視圖中的時序圖顯示具體用例(或者是用例的一部分)的詳細流程。它幾乎是自描述的,並且顯示了流程中不同對象之間的調用關系,同時還可以很詳細地顯示對不同對象的不同調用。時序圖有兩個維度:垂直維度以發生的時間順序顯示消息/調用的序列;水平維度顯示消息被發送到的對象實例。

(4)狀態圖(StatechartDiagrams)

狀態圖表示某個類所處的不同狀態和該類的狀態轉換信息。有人可能會爭論說每個類都有狀態,但不是每個類都應該有一個狀態圖。只對”感興趣的”狀態的類(也就是說,在系統活動期間具有三個或更多潛在狀態的類)才進行狀態圖描述。

(5)活動圖(ActivityDiagrams)

UML視圖中的活動圖表示在處理某個活動時,兩個或者更多類對象之間的過程控制流。活動圖可用於在業務單元的級別上對更高級別的業務過程進行建模,或者對低級別的內部類操作進行建模。根據經驗,活動圖最適合用於對較高級別的過程建模,比如公司當前在如何運作業務,或者業務如何運作等。因為與序列圖相比,活動圖在表示上"不夠技術性的",但有業務頭腦的人們往往能夠更快速地理解它們。

活動圖的符號集與狀態圖中使用的符號集類似。像狀態圖一樣,活動圖也從一個連接到初始活動的實心圓開始。活動是通過一個圓角矩形(活動的名稱包含在其內)來表示的。活動可以通過轉換線段連接到其他活動,或者連接到判斷點,這些判斷點連接到由判斷點的條件所保護的不同活動。結束過程的活動連接到一個終止點(就像在狀態圖中一樣)。作為一種選擇,活動可以分組為泳道(swimlane),泳道用於表示實際執行活動的對象。

(6)組件圖(ComponentDiagrams)

組件圖提供系統的物理視圖。它的用途是顯示系統中的軟件對其他軟件組件(如:庫函數)的依賴關系。組件圖可以在一個非常高的層次上顯示,從而僅顯示粗粒度的組件,也可以在組件包層次2上顯示。

(7)部署圖(DeploymentDiagrams)

UML視圖中的部署圖表示該軟件系統如何部署到硬件環境中。它的用途是顯示該系統不同的組件將在何處物理地運行,以及它們將如何彼此通信。因為部署圖是對物理運行情況進行建模,系統的生產人員可以很好地利用該圖。

(8)對象圖(ObjectDiagrams)

對象圖描述了對象以及對象間的關系。如同類圖,對象圖也描述了系統靜態設計視或靜態過程視,但是從實例的角度。

(9)協作圖(CollaborationDiagrams)

UML視圖中協作圖描述了對象間的交互作用,由對象及對象間的關系組成,並包括在對象間傳遞消息,協作圖強調發送和接受消息的對象的結構組織的交互作用圖。與時序圖是同構的,可以彼此轉換。

UML建模工具

市面上UML建模工具很多,比較流行的有Rational Rose ,Microsoft Visio、Enterprise Architect 、Visual UML等。《UML建模-面向對象設計》系列文章使用的UML建模工具是Enterprise Architect 7.0,此工具還是比較好用的。(後面會有博客介紹)

UML的應用領域

UML具有很廣泛的應用領域,其中最常用的是為軟件系統建模,主要領域有:企業信息系統、銀行金融系統、電信、交通、國防、航空、零售領域、科學計算、分布式的基於Web的服務。UML還可以用來描述其他非軟件系統,比如一個機構的組成和機構的工作流程等等。

UML的構成

《UML建模-面向對象設計》系列文章描述了常見的一些UML圖,主要包括了用例圖(Use Case Diagram)、類圖(Class Diagram)、活動圖(Activity Diagram)、時序圖(Sequence Diagram)、狀態圖(Statechart Machine Diagram)、部署圖(Deployment Diagram)、業務處理模型(Business Process Model)、數據建模(Data Modeling Diagram)等等。

1、需求階段如何書寫Use Case

用例描述文檔的書寫是系統分析人員對用戶需求的深刻理解的體現。是後期時序圖和實際開發的重要依據。也可以對作為項目估算的依據,以及根據UC復雜度和開發周期來衡量開發人員的工作效率。因此UC的書寫規範及其重要,就工作用的一些經驗,比如書寫格式、書寫內容及其註意事項與大家分享。

2、設計階段如何畫用例圖(Use-Case Diagram)

例試圖描概括了用例中角色和系統之間的關系,描述了系統功能需求,角色和系統的交互以及系統的反應。是客戶和開發人員全貌理解項目需求功能比較好的一個方式,也是後續功能叠代的依據和方向。

3、類與類之間的關系圖(Class Diagram,UML圖)

本文針對類之間常用的關系進行了簡單的描述,主要有:關聯關系、泛化、依賴、聚合和組合。

4、UML建模之活動圖介紹(Activity Diagram)

活動圖描述的是對象活動的順序關系所遵循的規則,它著重表現的是系統的行為,而非系統的處理過程。活動圖能夠表示並發活動的情形,活動圖是面向對象的。

5、UML建模之狀態圖(Statechart Diagram)

狀態圖重點在於描述對象的狀態及其狀態之間的轉移,狀態圖的基本元素主要有:狀態、轉移、動作、自身轉移、組合狀態、進入節點、退出節點、歷史狀態、並發區域等,狀態中的事件分為調用事件(Call)、變化事件(Change)、時間事件(Time)和信號事件(Singal)。最後以實例對狀態對進行了分析。

6、UML建模之時序圖(Sequence Diagram)

時序圖(Sequence Diagram)是顯示對象之間交互的圖,這些對象是按時間順序排列的。順序圖中顯示的是參與交互的對象及其對象之間消息交互的順序。時序圖中包括的建模元素主要有:對象(Actor)、生命線(Lifeline)、控制焦點(Focus of control)、消息(Message)等等。最後,以課程創建功能演示一時序圖實例。

7、UML建模之業務處理模型(Business Process Model,BPM)

業務處理模型是一組活動的集合,描述了活動從開始到結束在時間或者空間上的順序,以及輸入和輸出。業務處理模型最終輸出要能夠滿足業務需要。包括輸入、輸出、資源、消息和目標等元素。最後以實例進一步說明了業務邏輯模型。

8、UML建模之數據建模(Data Model Diagram)

主要介紹了數據庫建模所涉及建模元素,主要包括模式 Schema、主鍵 Primary、外鍵 Foreign key、關系 Relationship、約束 constraint、索引 Index、觸發器 Trigger、存儲過程 Stored Procedure、視圖 View等等,並配以實例加以說明。

系統分析與設計UML建模