UML模組化
- UML介紹
- 用例圖
- 參與者、用例的基本概念。
- 繪制用例圖。
- 類圖和對象圖
- 類圖的基本概念。
- 分析識别類。
- 順序圖
- 順序圖的組成。
- 順序圖中的消息類型。
- 繪制順序圖。
- 狀态圖
- 狀态機的含義。
- 狀态機圖中的基本标記符。
- 繪制狀态圖。
UML介紹
UML規格定義了兩大類的IML圖:結構圖和行為圖
- 結構圖:結構圖從不同的抽象和實作程度上描述了一個系統和系統建構的靜态結構,并且描述了一個系統的對象如何随着時間額的變化而變化。
- 行為圖:展示了一個系統中的對象的動态行為,它描述了一個系統的對象如何随着時間的變化而變化/
UML體系結構——“4+1”視圖
- Kruchten 提出了一個"4+1"視圖模型,從5個不同的視角包括包括邏輯試圖、程序視圖、實體視圖、開發視圖、場景視圖來描述軟體體系結構。每一個視圖隻關心系統的一個側面,5個試圖結合在一起才能反映系統的軟體體系結構的全部内容。
【UML】UML模組化 - 邏輯視圖:邏輯試圖主要是用來描述系統的功能需求,即系統提供給最終使用者的服務. 在邏輯視圖中,系統分解成一系列的功能抽象、功能分解與功能分析,這些主要來自問題領域(Problem Definition)。 在面向對象技術中,通過抽象、封裝、繼承,可以用對象模型來代表邏輯視圖,可以用類圖(Class Diagram)來描述邏輯視圖。
- 開發視圖:開發視圖主要用來描述軟體子產品的組織與管理(通過程式庫或子系統)。服務于軟體程式設計人員, 友善後續的設計與實作。它通過系統輸入輸出關系的模型圖和子系統圖來描述。要考慮軟體的内部需求:開發的難易程度、重用的可能性,通用性,局限性等等。開發視圖的風格通常是層次結構,層次越低,通用性越好(底層庫:Java SDK,圖像處理軟體包)。
- 程序視圖:程序試圖側重系統的運作特性,關注非功能性的需求(性能,可用性)。服務于系統內建人員,友善後續性能測試。強調并發性、分布性、內建性、魯棒性(容錯)、可擴充性、吞吐量等。定義邏輯視圖中的各個類的具體操作是在哪一個線程(Thread)中被執行。
- 實體視圖:實體試圖主要描述硬體配置。服務于系統工程人員,解決系統的拓撲結構、系統安裝、通信等問題。主要考慮如何把軟體映射到硬體上,也要考慮系統性能、規模、可靠性等。可以與程序視圖一起映射。
跳轉頂部
用例圖
參與者、用例的基本概念。
用例圖的作用:是需求分析中的産物,主要作用就是描述參與者和用例之間的關系,邦族開放人員了解系統的功能
由參與者(Actor)、用例(Use Case) 以及它們之間的關系構成的用于描述系統功能的動态視圖稱為用例圖。其中用例和參與者之間的對應關系又叫做通訊關聯(Communication Association)。
用例圖的構成元素有四個:參與者(角色)、用例、系統邊界和元素
- 參與者(Actor):在村與系統外部并且直接與程式或者系統接觸的人、系統、子系統火類的外部實體的抽象,在UML中使用一個小人來進行表示
【UML】UML模組化 - 用例:用例即使外部可見的系統功能,對系統提供的服務來進行描述,使用橢圓來進行表示
【UML】UML模組化 - 系統邊界:指系統與系統之間的界限,使用方形框+系統名稱來表示
【UML】UML模組化 - 元素間的關系有四個:關聯、泛化、包含關聯:參與者與用例之間的關系,,如何一方都可以接收或者發送資訊(箭頭指向資訊接受方) 泛化:是類元一般描述和具體描述之間的關系,具體描述建立在一般描述的基礎之上,并且對其進行了擴充。具體描述完全擁有一般描述的特性、成員和關系,并且包含補充資訊(類似于Java這繼承關系)。
【UML】UML模組化 依賴:類A的實作需要使用到B,這就是依賴,這種使用關系是具有偶然性、臨時性、非常弱的,并且B類的的變化會影響到A,則A與B就是存在依賴關系,依賴關系是弱的關聯關系,例如:人們依賴計算機去做軟體的開發。【UML】UML模組化 箭頭家虛線不僅僅可以代表依賴關系,還可以代表擴充、包含關系,擴充就是對用例功能的延申,包含就是将一個複雜的功能分解成數個小的功能【UML】UML模組化
跳轉頂部
繪制用例圖。
例題1
在火車票預訂系統中,客戶可以進行購買車票、退訂車票、查詢餘票和查詢列車時刻四個操作。不管是購買車票還是退訂車票,使用者都必須先進行登入系統操作。其中查詢列車時刻主要包括按站站查詢和按車次查詢兩種方式。如果在登入系統的過程中忘記密碼,則還可使用找回密碼功能。
例題2
在學生資訊管理系統的“網上選課子產品”中,學生可以進行“檢視課程資訊”、“選擇課程”和“删除已選課程”三個操作。“檢視課程資訊”主要包括“按課程編号檢視”和“按課程名檢視”兩種方式。
管理者可以進行 “維護課程資訊” 操作。
學生和管理者的所有操作均需“登入系統”後方可完成。如果在“登入系統”的過程中忘記密碼,則還可使用“找回密碼”功能。
跳轉頂部
類圖和對象圖
類圖的基本概念。
類圖是使用最廣泛的一種模型,聰慧例圖的視角來看,系統外部是由一個個用例組成的,用例手機系統的面子,而類圖依賴描述特性中各個對象的類型以及他們之間存在關系,現實的是系統内部的靜态結構,它是系統的裡子類圖是一種靜态模型,代表面向對象的系統
在研究了剋圖之前我們需要先了解類,類是包裝資訊和行為的基本機關,是面向對象的組織核心結構,類由三部分組成,即類名、屬性、操作,在UML中具體表示如下
跳轉頂部
分析識别類。
在UML中可見性分為四級:
- public:使用字首
表示,該屬性或方法對所有類可見+
- protected:使用字首
表示,隻對該類的子類可見#
- private:使用字首
表示,隻在該類内部可見-
- package:使用字首
表示,隻對同一報申明的其他類可見~
接口也是一個類,它定義了一組提供給外界的操作集合的名稱,可以把接口看作是一個特殊的抽象類,他的特殊之處在于:接口不能含有屬性,接口中之喲與抽象操作——隻有操作名,沒有具體的實作方法
接口的圖像表達就是之間的圓圈
類之間可以建立四種關系:關聯、依賴、聚合和泛化,之變隻簡單的說一說聚合關系,聚合就是一些系統特性的組成一個整體,如大雁與雁群的關系
- 聚合中有一個特殊的關系,那就是組合,組合可以看作是更強的聚合操作,他控制着成員對象的建立和結構,部分類需要整體才能存在,如滑鼠和電腦的關系
跳轉頂部
順序圖
順序圖的組成。
順序圖是一種強調消息時間順序的幾乎圖,顯示的是參與互動的對象及對象之間資訊交換的順序,用來表示用例中的行為順序
順序圖的組成
- 活動者,對象、生命線、控制焦點、消息,活動的發起人活着活動的承受者。
- 對象:活動中互動的實體,由三種表示方式
【UML】UML模組化 - 生命線:描述對象的生存周期,對象下方的虛線就是生命線
【UML】UML模組化 - 控制焦點:指活動者或對象執行狀态的時間段
【UML】UML模組化 - 消息:消息用于描述對象間互動的方式和内容
跳轉頂部
順序圖中的消息類型。
資訊描述對象之間的通信,它可以激發某個動作、喚起資訊或導緻目标對象的建立或銷毀
資訊可以分為以下幾類:
- 同步消息:一個對象向另一個對象發出同步消息後,将處于阻塞狀态,一直等到另一個對象的回應。
【UML】UML模組化 - 異步消息:一個對象向另一個對象發出異步消息後,這個對象可以進行其他的操作,不需要等到另一個對象的響應。
【UML】UML模組化 - 傳回消息:同步消息的傳回消息
【UML】UML模組化 - 自身消息:描述對象内部的函數調用
【UML】UML模組化
跳轉頂部
繪制順序圖。
機房示例
跳轉頂部
狀态圖
狀态機的含義。
狀态圖就是開關,是描述狀态變化的圖形。描述了一個對象狀态與狀态的轉變并且象所經曆的狀态序列,引起狀态轉移的事件(Event),以及因狀态轉移而伴随的動作(Action)狀态圖(Statechart Diagram)主要用于描述一個對象在其生存期間的動态行為,表現為一個對(用例圖:描述需求場景;狀态圖:描述業務場景)一般可以用狀态機對一個對象的生命周期模組化,狀态圖用于顯示狀态機,重點在與描述狀态圖的控制流。
一個機器的狀态圖如下:
跳轉頂部
狀态機圖中的基本标記符。
- 一個狀态圖隻能由一個初态,但是可以由0個或多個終态
- 狀态:主要用來描述一個對象在生命周期内的一個時間段。狀态包括:狀态名、内部轉移、進入/退出操作、子狀态、延遲事件等狀态的特征
- 轉換:倆個狀态之間的關系,當滿足條件是,第一個狀态中的對象執行操作變成第二個中的對象
【UML】UML模組化
其中,除了普通的轉換,還有複雜的轉換
- 外部轉換:對事件做出響應,引起狀态變化或自身轉換,同時引發一個特定動作,如果離開或進入狀态将引發進入轉換、離開轉化。
- 内部轉換:對事件做出響應,并執行一個特定的活動,但并不引起狀态變化或進入轉換、離開轉換。
- 進入轉換:當進入某一狀态時,執行相應活動。
- 退出轉換:當離開某一狀态時,執行相應活動。
事件可以分為幾種:信号事件、調用事件、改變事件、時間事件等。
- 信号事件:信号是作為兩個對象之間的通信媒介的實體,它是用來作為對象之間的通信的。
- 調用事件:是指一個對象對調用的接收,這個對象利用狀态的轉換而不是固定的處理過程實作操作。
- 改變事件:是指依賴于特定屬性的布爾表達式所表示的條件滿足時,事件發生改變。
- 時間事件:表示時間表達式被滿足的事件,它代表時間的流逝。
跳轉頂部
繪制狀态圖。
- 開始——白卡——初始化——正常——當機(登出)——回收——初始化——損壞——結束
【UML】UML模組化