臺州市臨海建設(shè)局網(wǎng)站友情鏈接qq群
一、概述
UML:Unified Modeling Language,統(tǒng)一建模語言,支持從需求分析開始的軟件開發(fā)的全過程。是一個支持模型化和軟件系統(tǒng)開發(fā)的圖形化語言、為軟件開發(fā)的所有階段提供模型化和可視化支持
,包括由需求分析到規(guī)格,到構(gòu)造和配置。
組成UML的3個要素
基本構(gòu)造塊(事物、關(guān)系和圖)
- 規(guī)則(支配這些構(gòu)造塊如何放置在一起)
- 機(jī)制(運(yùn)用于整個語言的機(jī)制)
二、事物
事物:也成建模元素
2.1 結(jié)構(gòu)事物
是靜態(tài)部分,類、接口、協(xié)作、用例、活動類、構(gòu)件和節(jié)點(diǎn)
-
類(Class)
是具有相同屬性、相同方法、相同語義和相同關(guān)系的一組對象的集合。一個類可以實(shí)現(xiàn)一個或多個接口。在UML圖中,類用包括類名、屬性和方法的矩形來表示
-
接口(Interface)
接口是指類或組件提供的、可以完成特定功能的一組操作的集合。換句話說,接口描述了類或組件對外的、可見的動作。通常,一個類實(shí)現(xiàn)一個或多個接口。在UML圖中,接口通常用一個圓形來表示。
-
用例(Use Case)
用例定義了系統(tǒng)執(zhí)行的一組操作,對特定的用戶產(chǎn)生可以觀察的結(jié)果。在UML圖中,用例通常用一個實(shí)線橢圓來表示。
-
協(xié)作(Collaboration)
協(xié)作定義了交互的操作,表示一些角色和其他元素一起工作,提供一些合作的動作。一個給定的類可能是幾個協(xié)作的組成部分,這些協(xié)作代表構(gòu)成系統(tǒng)的模式的實(shí)現(xiàn)。在UML圖中,協(xié)作通常用一個虛線橢圓表示。
-
活動類(Active Class)
活動類是指對象有一個或多個線程或進(jìn)程的類?;顒宇惡皖愊嗨?#xff0c;只是它的對象代表的元素的行為和其他的元素同時存在。在UML圖中,活動類的表示方法和普通類的表示方法相似,也是使用一個矩形,只是最外面的邊框使用粗線。 -
組件(Component)
組件是物理上可替換的,實(shí)現(xiàn)了一個或多個接口的系統(tǒng)元素。在UML圖中,組件的表示圖形比較復(fù)雜。
-
節(jié)點(diǎn)(Node)
節(jié)點(diǎn)是一個物理元素,它在運(yùn)行時存在,代表一個可計(jì)算的資源,比如一臺數(shù)據(jù)庫服務(wù)器。在UML圖中,節(jié)點(diǎn)使用一個立方體來表示。節(jié)點(diǎn)通常包括處理器和設(shè)備。
2.2 行為事物
行為事物也稱動作事物,是UML模型中的動態(tài)部分,代表時間和空間上的動作。行為事物主要有兩種:交互和狀態(tài)機(jī)。它們是UML模型中最基本的兩個動態(tài)事物元素,通常和其他的結(jié)構(gòu)元素、主要的類、對象連接在一起。
(1) 交互(Interaction)
交互是在特定上下文中的一組對象,為共同完成一定的任務(wù)而進(jìn)行的一系列消息交換所組成的動作。交互包括消息、動作序列(消息產(chǎn)生的動作)、對象之間的連接。在 UML圖中,交互的消息通常畫成帶箭頭的直線。
(2) 狀態(tài)機(jī)(State Machine)
狀態(tài)機(jī)是對象的一個或多個狀態(tài)的集合。在UML圖中,狀態(tài)機(jī)通常用一個圓角矩形來表示。
2.3 分組事物
組織事物也成為分組事物,是UML模型中組織的部分,可以把它看做一個個的盒子,每個盒子里面的對象關(guān)系相對復(fù)雜,而盒子與盒子之間的關(guān)系相對簡單。組織事物只有一種,稱為包
包:
封裝是唯一一個分組事物可收集結(jié)構(gòu)和行為的東西。
2.4 注釋事物
UML解釋部分, 注釋事物可以被定義為一種機(jī)制來捕捉UML模型元素的言論,說明和注釋。注釋是唯一一個注釋事物。
三、關(guān)系
關(guān)系:UML用關(guān)系把事物結(jié)合在一起
3.1 依賴
兩個事物之間的語義關(guān)系,其中一個事物發(fā)生變化會影響另一個事物的語義
3.2 關(guān)聯(lián)
是一種擁有的關(guān)系,它使一個類知道另一個類的屬性和方法;如:老師與學(xué)生,丈夫與妻子關(guān)聯(lián)可以是雙向的,也可以是單向的。雙向的關(guān)聯(lián)可以有兩個箭頭或者沒有箭頭,單向的關(guān)聯(lián)有一個箭頭。
3.3 泛化
是一種繼承關(guān)系,一般化和特殊化的關(guān)系,描述特殊元素的對象可替換一般元素的對象。
指定了子類如何繼承父類的所有特征和行為。例如:老虎是動物的一種,即有老虎的特性也有動物的共性。
3.4 實(shí)現(xiàn)
類之間的語義關(guān)系,其中的一個類指定了有另一個類保證執(zhí)行的契約。也可以理解為是一種類與接口的關(guān)系,表示類是接口所有特征和行為的實(shí)現(xiàn)。
3.5 總結(jié)
各種類圖關(guān)系
四、圖
UML 視圖:就是對上面圖的分類
- 用例視圖:最基本的需求分析模型,如用例視圖
- 邏輯視圖:也稱為設(shè)計(jì)視圖,如類圖、對象圖以及包圖
- 進(jìn)程視圖:可執(zhí)行線程和進(jìn)程作為活動類的建模,他是邏輯視圖的一次執(zhí)行實(shí)例,描述了并發(fā)與同步結(jié)構(gòu),如狀態(tài)圖、活動圖、時序圖等
- 實(shí)現(xiàn)視圖:對組成基于系統(tǒng)的物理代碼的文件和構(gòu)件進(jìn)行建模,如構(gòu)件圖
- 部署視圖:把構(gòu)件部署到一組物理節(jié)點(diǎn)上,表示軟件到硬件的映射和分布結(jié)構(gòu),如部署圖
4.1 用例圖(UseCase Diagrams):
用例圖主要回答了兩個問題:1、是誰用軟件。2、軟件的功能。從用戶的角度描述了系統(tǒng)的功能,并指出各個功能的執(zhí)行者,強(qiáng)調(diào)用戶的使用者,系統(tǒng)為執(zhí)行者完成哪些功能。用于業(yè)務(wù)建模、需求獲取、定義。靜態(tài)
4.2 類圖(Class Diagrams):
用戶根據(jù)用例圖抽象成類,描述類的內(nèi)部結(jié)構(gòu)和類與類之間的關(guān)系,是一種靜態(tài)結(jié)構(gòu)圖。是軟件的藍(lán)圖
4.3 對象圖(Object Diagrams)
描述的是參與交互的各個對象在交互過程中某一時刻的狀態(tài)。對象圖可以被看作是類圖在某一時刻的實(shí)例。
4.4 狀態(tài)圖(Statechart Diagrams):
是一種由狀態(tài)、變遷、事件和活動組成的狀態(tài)機(jī),用來描述類的對象所有可能的狀態(tài)以及時間發(fā)生時狀態(tài)的轉(zhuǎn)移條件。
4.5 活動圖(Activity Diagrams):
通過動態(tài)來組織,主要用于描述某一方法、機(jī)制或用例的內(nèi)部行為。是狀態(tài)圖的一種特殊情況,這些狀態(tài)大都處于活動狀態(tài)。本質(zhì)是一種流程圖,它描述了活動到活動的控制流?! ?br />
4.6 序列圖-時序圖(Sequence Diagrams):
交互圖的一種,描述了對象之間消息發(fā)送的先后順序,強(qiáng)調(diào)時間順序。序列圖的主要用途是把用例表達(dá)的需求,轉(zhuǎn)化為進(jìn)一步、更加正式層次的精細(xì)表達(dá)。用例常常被細(xì)化為一個或者更多的序列圖。同時序列圖更有效地描述如何分配各個類的職責(zé)以及各類具有相應(yīng)職責(zé)的原因。
消息用從一個對象的生命線到另一個對象生命線的箭頭表示。箭頭以時間順序在圖中從上到下排列。
4.7 構(gòu)件圖(Component Diagrams):
構(gòu)件圖是用來表示系統(tǒng)中構(gòu)件與構(gòu)件之間,類或接口與構(gòu)件之間的關(guān)系圖。其中,構(gòu)建圖之間的關(guān)系表現(xiàn)為依賴關(guān)系,定義的類或接口與類之間的關(guān)系表現(xiàn)為依賴關(guān)系或?qū)崿F(xiàn)關(guān)系。
描述類的實(shí)現(xiàn)環(huán)境
4.8 部署圖(Deployment Diagrams):
描述了系統(tǒng)運(yùn)行時進(jìn)行處理的結(jié)點(diǎn)以及在結(jié)點(diǎn)上活動的構(gòu)件的配置。強(qiáng)調(diào)了物理設(shè)備以及之間的連接關(guān)系。
部署模型的目的:
描述一個具體應(yīng)用的主要部署結(jié)構(gòu),通過對各種硬件,在硬件中的軟件以及各種連接協(xié)議的顯示,可以很好的描述系統(tǒng)是如何部署的;平衡系統(tǒng)運(yùn)行時的計(jì)算資源分布;可以通過連接描述組織的硬件網(wǎng)絡(luò)結(jié)構(gòu)或者是嵌入式系統(tǒng)等具有多種硬件和軟件相關(guān)的系統(tǒng)運(yùn)行模型。
深入學(xué)習(xí):https://www.w3cschool.cn/uml_tutorial/uml_tutorial-c1gf28pd.html