標準建模語言UML可以由下列5類圖來定義。
用例圖 :從用戶角度描述系統功能,并指出各功能的操作者。
靜態圖 :包括類圖和對象圖。類圖描述系統中類的靜態結構,不僅定義系統中的類,表示類之間的聯系,如關聯、依賴、聚合等,也包括類的屬性和操作,類圖描述的是一種靜態關系,在系統的整個生命周期都是有效的。對象圖是類圖的實例,幾乎使用與類圖完全相同的標識。一個對象圖是類圖的一個實例。由于對象存在生命周期,因此對象圖只能在系統某一時間段存在。
行為圖 :描述系統的動態模型和組成對象間的交互關系,包括狀態圖和活動圖。狀態圖描述類的對象所有可能的狀態以及事件發生時狀態的轉移條件,狀態圖是對類圖的補充,活動圖描述滿足用例要求所要進行的活動以及活動間的約束關系,有利于識別并進行活動。
交互圖 :描述對象間的交互關系,包括時序圖和協作圖。時序圖顯示對象之間的動態合作關系,它強調對象之間消息發送的順序,同時顯示對象之間的交互;協作圖描述對象間的協作關系,協作圖跟時序圖相似,顯示對象間的動態合作關系。除顯示信息交換外,協作圖還顯示對象以及它們之間的關系。如果強調時間和順序,則使用時序圖;如果強調上下級關系,則選擇協作圖。
實現圖 :包括組件圖和部署圖。組件圖描述代碼部件的物理結構及各部件之間的依賴關系,組件圖有助于分析和理解部件之間的相互影響程度;部署圖定義系統中軟硬件的物理體系結構。
采用UML來設計系統時,第一步是描述需求;第二步根據需求建立系統的靜態模型,以構造系統的結構;第三步是描述系統的行為。其中在第一步與第二步中所建立的模型都是靜態的,包括用例圖、類圖、對象圖、組件圖和部署圖等5種圖形,是標準建模語言UML的靜態建模機制。其中第三步中所建立的模型或者可以執行,或者表示執行時的時序狀態或交互關系。它包括狀態圖、活動圖、時序圖和協作圖等4種圖形,是標準建模語言UML的動態建模機制。
首先對UML中的各個圖的功用做一個簡單介紹:
1、用例圖
描述角色以及角色與用例之間的連接關系。說明的是誰要使用系統,以及他們使用該系統可以做些什么。一個用例圖包含了多個模型元素,如系統、參與者和用例,并且顯示了這些元素之間的各種關系,如泛化、關聯和依賴。
2、類圖
類圖是描述系統中的類,以及各個類之間的關系的靜態視圖。能夠讓我們在正確編寫代碼以前對系統有一個全面的認識。類圖是一種模型類型,確切的說,是一種靜態模型類型。
3、對象圖
與類圖極為相似,它是類圖的實例,對象圖顯示類的多個對象實例,而不是實際的類。它描述的不是類之間的關系,而是對象之間的關系。
4、活動圖
描述用例要求所要進行的活動,以及活動間的約束關系,有利于識別并行活動。能夠演示出系統中哪些地方存在功能,以及這些功能和系統中其他組件的功能如何共同滿足前面使用用例圖建模的商務需求。
5、狀態圖
描述類的對象所有可能的狀態,以及事件發生時狀態的轉移條件。可以捕獲對象、子系統和系統的生命周期。他們可以告知一個對象可以擁有的狀態,并且事件(如消息的接收、時間的流逝、錯誤、條件變為真等)會怎么隨著時間的推移來影響這些狀態。一個狀態圖應該連接到所有具有清晰的可標識狀態和復雜行為的類;該圖可以確定類的行為,以及該行為如何根據當前的狀態變化,也可以展示哪些事件將會改變類的對象的狀態。狀態圖是對類圖的補充。
6、序列圖(順序圖)
序列圖是用來顯示你的參與者如何以一系列順序的步驟與系統的對象交互的模型。順序圖可以用來展示對象之間是如何進行交互的。順序圖將顯示的重點放在消息序列上,即強調消息是如何在對象之間被發送和接收的。
7、協作圖
和序列圖相似,顯示對象間的動態合作關系。可以看成是類圖和順序圖的交集,協作圖建模對象或者角色,以及它們彼此之間是如何通信的。如果強調時間和順序,則使用序列圖;如果強調上下級關系,則選擇協作圖;這兩種圖合稱為交互圖。
8、構件圖 (組件圖)
描述代碼構件的物理結構以及各種構建之間的依賴關系。用來建模軟件的組件及其相互之間的關系,這些圖由構件標記符和構件之間的關系構成。在組件圖中,構件時軟件單個組成部分,它可以是一個文件,產品、可執行文件和腳本等。
9、部署圖 (配置圖)
是用來建模系統的物理部署。例如計算機和設備,以及它們之間是如何連接的。部署圖的使用者是開發人員、系統集成人員和測試人員。
UML中的四種關系
實列
第一節:初步認識UML
1.UML中的元素
用例、類、接口、組件等
2.UML中的四種關系
關聯、依賴、繼承、實現
3.UML中的九種圖
用例圖、類圖、對象圖、狀態圖、時序圖、協作圖、活動圖、組件圖、配置圖UML學習
Unified Modeling Language(UML),又稱統一建模語言
支持模型化和軟件系統開發的圖形化語言
描述軟件開發的各個階段
進一步認識UML
UML是為面向對象開發提供建模的
一般是為軟件設計提供開發說明的
UML的目的是為了用簡潔的方式說明系統的需求、功能、結構。便于開發人員、用戶、維護人員了解軟件系統
UML構建出的是一個模型。就像一座建筑的框架和功能、以及如何去蓋這座樓。(設計圖?)
UML是一種語言,具有一些標準。(Rational Rose、EA等專業工具繪制)
UML的核心就是抽象、分解。將問題分解,抽象為一個個小模塊。然后分而治之。
第二節:UML中的常用元素
類:相同屬性對象的集合
接口:類或組件提供的,可以完成特定功能的一組操作的集合
用例:系統的一個功能
(用例通常與某個角色相互關聯,代表該角色使用此功能)
節點:一個狀態或一個動作
(如下圖的狀態節點以及判定節點等)
組件:可替換的功能塊
輔助事物:包
注釋
行為事物:四種關系(依賴、關聯、繼承、實現)的交互
第三節:UML四種關系——依賴
UML中的四種關系
依賴關系(Dependency)
表示一個類使用(Use)另一個類,是四種關系中最弱的一種關系
依賴關系是單向的(不推薦雙向依賴)
例如動物依賴水
具體的實現代碼有三種形式
(注:被依賴的類作為局部變量而不能作為成員變量,否則轉化為關聯關系)
Water是公共的類,Animal可以調用
Water是Animal的一個方法中的變量
Water是Animal函數的參數或者返回值
水類
動物類
第四節:UML四種關系——關聯
關聯關系(Association)
表示一個類擁有(has)另一個類,關聯相對于依賴來說大大增強
分為聚合和組合,例如雁群和大雁(聚合,較弱),大雁和翅膀(組合,較強)
關聯關系比依賴關系更強、不存在依賴關系的偶然性、關系也不是臨時性的,一般是長期性的,而且雙方的關系一般是平等的、關聯可以單向、雙向的
具體代碼表現為被關聯類作為一個全局變量或屬性
翅膀類
大雁類(翅膀與大雁間存在組合關系)
雁群類(大雁與雁群間存在聚合關系)
第五節:UML四種關系——泛化
泛化關系(Generalization)
是一個類(稱為子類、子接口)繼承另外的一個類(稱為父類、父接口)的功能,并可以增加它自己的新功能的能力
繼承是類與類或者接口與接口之間最常見的關系
是一種父子關系,兩個類之間的關系非常強
例如鯊魚繼承魚,麻雀繼承鳥
魚類
鯊魚類(通過extends關鍵字繼承Fish類)
數據庫訪問對象基類
具體數據庫訪問對象類(繼承DaoBase)
父接口
子接口(繼承父接口。可以通過接口實現多繼承)
第六節:UML四種關系——實現
實現關系(Realization)
是一個class類實現interface接口(可以是多個)的功能(是類與接口的關系)
是一種最常見的關系,設計時鼓勵使用
接口是一種功能的抽象。例如有兩個接口:飛翔、捕食。一個鳥(class)類可以實現這兩個接口,實現以后,就具有這兩個接口所擁有的功能
在java代碼中使用關鍵字implements表示
飛翔接口
捕食接口
Bird類(繼承Fly接口及Prey接口,并實現其方法)
第七節:UML中的九種圖——用例圖
用例圖實現關系(Use Case Diagram)
作用是幫助開發團隊以一種可視化的方式理解系統的功能需求,捕捉系統的需求,是需求分析階段必備的工具
用例:指一個系統的功能單元
用例圖由用例和角色兩部分構成,主要用來描述“用戶、需求、系統功能單元”之間的關系。它展示了一個外部用戶能夠觀察到的系統功能模型圖。
如何使用用例圖做需求分析
確定系統的參與者,也就是業務主角
分析參與者都能通過系統做什么
將參與者所做的事情,通過用例圖體現出來
以一個圖書館管理系統為例,基于用例圖做一個需求分析
圖書管理系統舉例
圖書管理員可以管理讀者信息、管理圖書的基本信息;還可以查詢某位讀者的信息、某本圖書的借閱情況
讀者可以通過該系統借書、還書、查詢書籍信息、預定圖書等
用例圖的特點
用例是相對獨立完整的,一個用例一般不需要其他用例來完成和它進行交互。但是有時候為了體現功能之間的聯系,用例之間也會存在兩種關系(擴展:extend,包含:include)
用例圖中的包含關系(圖書信息管理模塊包含圖書添加和圖書刪除兩個模塊)
用例圖中的擴展關系(查詢完圖書信息后還可以進行圖書信息導出)
用例的執行結果對于參與者來說是可見的,有意義的
一個用例必須是由一個參與者發起的,不存在沒有角色的用例,用例也不該自動啟動
用例一定是動賓短語(誰(角色)+做什么(用例))
一個用例是一個需求單元、分析單元、設計單元、開發單元、測試單元
第八節:UML中的九種圖——類圖
類圖(Class Diagram)
體現類的屬性和方法以及類與其他類之間的關系的圖
類與類之間的關系:依賴、關聯、繼承、實現
類圖的作用:是對代碼的直接體現
如何在實際中使用類圖分析系統
圖書管理系統舉例
圖書管理員可以管理讀者信息、管理圖書的基本信息;還可以查詢某位讀者的信息、某本圖書的借閱情況
讀者可以通過該系統借書、還書、查詢書籍信息、預定圖書等
第九節:UML中的九種圖——對象圖
對象圖(Object Diagram)
表示某一時刻一組對象以及它們之間關系的圖。對象圖可以看作是類圖在系統某一時刻的實例(相當于系統的運行的一個切片或鏡像)
作用
論證類模型的設計:當設計了類模型時,你可以通過對象圖來模擬出一個運行時的狀態,這樣就可以研究在運行時設計的合理性。同時,也可以作為開發人員討論的一個基礎。
分析和說明源代碼:由于類圖只是展示了程序的靜態類結構,因此通過類圖看懂代碼的意圖是很困難的。因此在分析源代碼時,可以通過對象圖來細化分析。而對于開發人員,對于邏輯較復雜的類交互時,可以考慮畫出一些對象圖來做補充說明。
閱讀對象圖
首先找出所有的類,即在“:”之后的名稱
整理完之后,就可以通過對象的名字來了解其含義
按類來歸納屬性,然后再通過關聯來確定含義
第十節:UML中的九種圖——狀態圖
狀態圖(Statechart Diagram)
描述一個對象在其生存期間的動態行為,表現為一個對象所經歷的狀態序列,引起狀態轉移的事件(Event),以及因狀態轉移而伴隨的動作(Action)
狀態圖的元素
States:對象的生命周期中某個條件或者狀況
Transitions:是兩個狀態之間的一種關系
Event:引起狀態轉移的事件
Actions:是狀態變化過程中執行的操作
作用是幫助開發者梳理一個業務中核心對象的發展狀況
某電商訂單系統狀態圖
第十一節:UML中的九種圖——時序圖(序列圖)
時序圖(Sequence Diagram)
描述對象之間交互的時間順序,也叫序列圖
時序圖的作用:從時間(方法執行先后)角度,描述一個角色額完成一個功能所涉及的對象,調用的所有方法,以及方法調用的順序,甚至方法調用的細節(方法名,參數,返回值等)
時序圖的元素:角色(Actor),對象(Object),生命線(Lifeline),激活期(Activation),消息(Message)
簡單時序圖(只突出大致流程)
標準時序圖(包含類信息,調用方法的方法名、參數類型、返回值等。可用于指導開發)
第十二節:UML中的九種圖——協作圖
協作圖(Collaboration Diagram)
表示在實現一個功能的過程中,一組對象以及這些對象間的消息傳遞
它和時序圖是對應的,時序圖側重于時間順序,協作圖側重于與對象之間的關系
協作圖的作用:顯示對象及其交互關系的空間組織結構,而非交互的順序
時序圖的三要素:
角色:功能的發起者
對象:類的實例
消息流:一個對象向另一個對象發起的操作
第十三節:UML中的九種圖——活動圖
活動圖(Activity Diagram)
活動圖是描述系統在執行某一用例時的具體步驟,它主要表現的是系統的動作。
活動圖的作用
從活動圖中可以看出,系統是如何一步一步的完成用例的,主要用于業務建模階段
活動圖描述的是整個系統的事情。可以說活動圖是對用例圖的一種細化,幫助開發者理解業務領域
活動圖的元素:活動節點(Activity),轉移(Transition),判斷節點(Decision),泳道(Swimlane)
和狀態圖的區別,狀態圖描繪一個對象的狀態,重點描述結果,活動圖描述狀態轉換的過程或者說原因
第十四節:UML中的九種圖——組件圖
組件圖(Component Diagram)
組件圖是用來反映代碼的物理結構。從組件圖中,可以了解各軟件組件(如源代碼文件或動態鏈接庫)之間的依賴關系
組件圖的主要作用
顯示系統組件間的結構關系
提供了將要建立的系統的高層次的架構視圖,這將幫助項目管理者建立階段目標,并決定開發的任務分配
組件圖的核心元素:組件(Component),依賴關系(Dependency)
第十五節:UML中的九種圖——配置圖(部署圖)
配置圖(Deployment Diagram)
配置圖描述的是系統運行時的結構,展現了硬件的配置以及軟件部署到網絡結構中的方式
配置圖也稱部署圖
一個系統模型只有一個部署圖,通常用來幫助理解分布式系統
部署圖的元素
處理器(Processor):能夠執行軟件、具有計算能力的節點、服務器、工作站
設備(Device):硬件設備,如打印機、路由器等
配置圖和組件圖的區別:配置圖有硬件,以一個服務器為單位;組件圖全是軟件結構,以一個程序模塊為單位
第十六節:UML總體使用總結1
UML四種關系和九種圖的作用
關聯,依賴,繼承,實現
用例圖(系統的功能),類圖(類及類間關系),對象圖(類的對象在某時刻的關聯關系),狀態圖(類的對象在整個生命周期的狀態),時序圖(功能按時間的執行順序),協作圖(功能的空間聯系),活動圖(描述功能的動作步驟),組件圖(系統的軟件結構),配置圖(部署結構)
UML九種圖的使用場景
做什么(用例圖),做成什么樣的(類圖或對象圖、狀態圖),怎么做(時序圖、協作圖),怎么用(組件圖、配置圖)
UML九種圖分類
1.用例圖:從用戶角度描述系統功能,并指出各功能的操作者
2.靜態圖(Static Diagram):包括類圖、對象圖
3.行為圖:描述系統動態模型和對象的組成的交互關系(狀態圖和活動圖)
4.交互圖:描述對象之間的交互關系(時序圖,協作圖)
5.實現圖:配置圖
第十七節:UML總體使用總結2
UML在設計過程中的使用
可行性分析、需求分析階段(用例圖)
概要設計(類圖,組件圖(架構圖),對象圖,活動圖,狀態圖)
詳細設計(時序圖,協作圖,也可以有狀態圖,對象圖等)
學習UML的意義
架構師、項目經理:指導開發,分配任務,分析系統
開發人員:理解設計,開發溝通等
測試人員:組織測試,編寫用例等
-
建模
+關注
關注
1文章
308瀏覽量
60782 -
UML
+關注
關注
0文章
122瀏覽量
30872
發布評論請先 登錄
相關推薦
評論