4.1、統一建模語言(Unified Modeling Language UML)
是一種可視化的語言
- 規約系統的制品
- 構造系統的制品
- 建立系統制品的檔案
UML應用范圍
- 可用于物件方法和構件方法
- 可用于所有應用領域和不同的平臺
1.面向物件方法術語/符號
主要有兩類術語:
- 一種是表達結構化事物的術語
- 一種是表達關系的術語
2. UML 術語表
一種是表達結構化事物的術語
-
物件:是系統中用來描述客觀事物的一個物體,一個物件由一組屬性和對這組屬性進行操作一組方法組成,
-
類:是具有相同屬性、操作、關系和語意的一組物件集合
-
屬性:描述了物件的具體特征,屬性具有屬性名和屬性值(屬性狀態)
語法:可見性 屬性名:型別 = 預設值 {性質串}
可見性:public(+)、protected(#)、private(-)、包內的(~)
-
操作(方法):一個操作抽象了一個物件所要做的事情,并且該類的其它物件也要做這件事
語法:可見性 操作名(引數表):回傳型別{性質串}
可見性:public(+)、protected(#)、private(-)、包內的(~)
-
介面: 是操作的一個集合,其中每個操作描述了類、構件或子系統的一個服務
-
協作:是一個互動,涉及互動的三要素:互動各方、互動方式以及互動內容
-
用況:對一組動作序列的描述,系統執行這些動作應產生對特定參與者有值的、可觀察的結果
-
主動類(類似java中的主啟動類的main方法):至少具有一個行程或執行緒的類,
表示:兩條豎線
-
構件:系統設計中的一種模塊化部件,通過外部介面隱藏了它的內部實作
-
制品:系統中包含物理資訊、可替代的物理部件
-
結點:運行時存在的物理元素,通常表示一種具有記憶能力和處理能力的計算機資源
-
多型性(Polymorphism):是指一般了中定義的屬性或服務被特殊類繼承之后,可以具有不同的資料型別或表現出不同的行為
多型性實作的方法:
- 泛化
- 定義一個抽象類或介面類
-
細化:是類目之間的語意關系,其中一個類目規約了保證另一類目執行的契約
-
包:是模型元素的一個分組,一個包本身可以被嵌套在其他包中,并且可以含有子包和其他型別的模型元素
一種是表達關系的術語
-
關聯:反映了類與類之間的靜態關系
-
關聯名(name):關聯可以有一個名字
-
角色(role):一個類參與一個關聯時,有一個特定的角色
-
多重性(multiplicity):類中物件參與一個關聯的數目
-
聚合(aggregation):一種特殊形式的關聯,表達一種“整體/部分“關系,一個類是另一個類的一部分
-
組合(composition):是聚合的一種特殊形式
-
限定符:一個限定符是一個關聯的屬性或屬性表,這些屬性的值將對該關聯相關的物件集做了一個劃分
-
關聯類:一種模型元素,它有關聯和類的特性
-
約束
-
-
泛化/繼承:特殊類(子類)的物件擁有其一般類(超類)的全部屬性和服務,稱作特殊類對一般類的繼承
-
子類可繼承父類的屬性和操作,并可有更多的屬性和操作
-
子類可以替換父類的生明
-
若子類的一個操作的實作覆寫了父類同一個操作的實作,這就是多型性,但兩個操作必須具有相同的名字和引數
-
一個類可以有0個、1個或多個父類,沒有父類且最少有一個子類的類被稱為根類或基類;沒有子類的類稱為葉子類
-
-
依賴:是一種使用關系,用于描述一個類目使用另一類目的資訊和服務
- 系結(bind):表明源的實體化是使用目標給定的實際引數來達到的
- 匯出(derive):表明可以湊夠目標推匯出源
- 允許(permit):表明目標對源而言是可見的
- 實體(instanceOf):表明源的物件是目標的一個實體
- 實體化(instantiate):表明源的實體是由目標創建
- 冪型別(powertype):表明源的目標的冪型別
- 精化(refine):表明源比目標更精細
- 使用(use):表明源的公共部分的語意依賴于目標的語意
-
實作(realization):是類目之間的一種語意關系,其中一個類目規約了保證另一個類目執行的契約
3.靜態模型表達工具 -- 類圖
類圖是給出一組類、介面、協作以及它們之間關系的圖
作用:
- 可用于可視化地表達系統的靜態模型
- 是構件圖和部署圖的基礎
類圖的內容:類、介面、依賴、泛化、關聯
類圖的一般用法
類圖主要用于對系統的靜態設計視圖(投影)進行建模,支持表達系統的功能需求,即系統提供給最終用戶的服務,
-
對系統中的詞匯建模
當需要決策:使用哪些類目和UML關系,作為系統的組成部分;哪些類目和UML關系,處于系統之外,
-
對簡單協作進行建模
當需要一組類來表達系統中的某一事物語意時,可使用類圖詳細描述這組類以及它們之間的關系
-
對邏輯資料庫模式建模
當需要給出資料庫概念設計的指導,可對要在資料庫中存盤的資訊,采用類圖相應的資料庫模式進行建模
系統行為(互動)的建模工具 -- 順序圖
順序圖是一種互動圖,即由一組物件以及這些物件之間的關系組成,其中還包含這些物件之間被發送的訊息
順序圖包含的內容:
- 互動各方:角色或物件
- 互動方式:通信或鏈
- 互動內容:訊息
5點說明:
-
順序圖包含了一些由時間定序的訊息
-
如果訊息是異步的,用枝行箭頭線表示:
-
如果訊息是同步的,
則用實心三角箭頭線表示:
同步訊息的回復用虛線枝行箭頭線表示:
-
-
物件生命線,用于表示一個物件在一個特定的時間段中的存在
-
控制焦點,表達一個物件執行了一個動作的時間段
-
時序,一條生命線上的時序是非常重要的,使訊息集合形成了一個偏序關系,建立了一個因果鏈
-
順序圖中的結構控制
常見的控制型別:
- 選擇執行(Optional execution):一種結構控制型別,標簽為opt
- 條件執行(Conditional execution):一個結構控制型別,標簽為alt
- 并發執行(Parallel execution):一個結構控制型別,標簽為par
- 迭代執行(iterative execution):一個結構控制型別,標簽為loop
系統行為(生存周期)的建模工具 -- 狀態圖
狀態圖是顯示一個狀態機,其中強調了從一個狀態到另一個狀態的控制流
狀態圖包含:
- 簡單狀態和組合狀態
- 事件
- 轉換
狀態:
一個狀態是類目的一個實體(簡稱物件)在其生存周期的一種條件(condition)或情況(situation),該期間該物件滿足這一條件,執行某一活動或等待某一訊息
表示:
狀態的分類:
-
初態:表達狀態機默認的開始位置,用實心圓來表示:
-
終態:表達狀態機的執行已經完成,用內含一個實心圓的圓來表示:
-
正常狀態(中間態):既不是初態又不是終態
狀態的規約:
- 名字:是一個標識狀態的文本串
- 進入/退出效應(effect)
- entry:該標號在進入該狀態時所需要執行的、由相應動作運算式規定的動作,稱為進入動作
- exit:該標號在退出該狀態時所需要執行的、由相應動作運算式規定的動作,稱為退出動作
- 狀態的內部轉移:值沒有導致該狀態改變的內部轉移;動作標號
“do” - 子狀態:如果一個狀態機中引入了另一個狀態機,那么背引入的狀態機稱為子狀態機
- 非正交子狀態機(順序子狀態機)
- 正交子狀態機(并發子狀態機)
事件:
一個事件是對一個有意義的發生的規約,該發生有其自己的時空
- 內部事件:是在系統內物件之間傳送的事件
- 外部事件:是在系統和它的參與者之間傳送的事件
可模型化的4種事件
- 信號(signal):是訊息的一個類目,是訊息的型別
- 呼叫(call):一個呼叫事件表示物件接受到一個操作呼叫的請求
- 可以使用在類的定義中的操作定義來規約呼叫事件
- 該事件或觸發狀態機中的一個狀態轉換,或呼叫目標物件的一個方法
- ”信號“是一種異步事件,而”呼叫“一般是同步事件,但呼叫可以規約為異步呼叫
- 時間事件和變化事件
- 時間事件:是表示推移一段時間的事件
- 變化事件:是表示一個條件得到滿足或表示狀態的一個變化
- 發送事件和接受事件
- 發送事件:表示一個實體發送一個呼叫事件或信號事件
- 接受事件:表示類的一個實體接受一個呼叫事件或信號事件
狀態轉換:
一個狀態轉換是兩個狀態間的一種關系
狀態轉換的規約,5個部分:
- 源狀態:引發該狀態轉換的那個狀態
- 轉換觸發器:在源狀態中由物件識別的事情,并且一旦滿足其監護條件,則使狀態發生轉換
- 監護條件:一個布爾運算式,當某個轉換器觸發器接受一個事件時,如果該運算式有值為真,則觸發一個轉換;值為假,則不發生狀態轉換,并且此時如果沒有其它可以被觸發的轉換,那么該事件就要丟失
- 效應:一個可執行的行為
- 目標狀態:狀態完成后所處的那個狀態
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/503223.html
標籤:其他
