UML中的4+1模型
UML的4+1模型是一個叫Kruchten的人發明的,但網上還有其它版本的4+1 模型:Use case view, Logic view, Process view, Impementation View and Deployment View。
Logic View:對系統各個組成部分進行抽象描述,其焦點在於系統是如何構成的以及構成系統的各個部分之間是如何互動的。我們常用的類視圖(class digram),對象圖(object diagram),順序圖(sequence diagram)/通信圖(communication diagram)都屬於Logic View。
Process View:描述系統中的各種活動,典型的視圖為活動圖(activity diagram)。個人認為活動圖和流程圖非常類似,且目的都是為了將系統中的活動描述清楚。
Development View:從開發者的角度描述系統的構成,典型的視圖為構件視圖(component diagram)
Physical View:該視圖關注軟件構件在硬件上的top結構,以及構件之間的通信。典型的視圖為部署視圖(deployment diagram)
Use case View:對系統用例進行描述,典型的視圖為用例視圖(use case diagram)
UML模型、視圖、圖
UML的概念和模型可以分成以下幾個概念域:靜態結構、動態行為、實現構造、模型組織、擴展機制
UML視圖和圖
靜態視圖
1、 類元
類元是模型中的離散概念,擁有身份、狀態、行為和關系。有幾種類元包括類、接口和數據類型。其他幾種類元是行為概念、環境事物、執行結構的具體化。這些類元中包括用例、參與者、構件、節點和子系統。圖列出了幾種類元和它們的功能。元模型術語類元中包括了所有這些概念。
2、類元之間關系
類元之間的關系有關聯、泛化、各種形式的依賴關系,包括實現關系和使用關系。
關聯:對象通常要和其他對象發生關聯,關聯可以具有多層形式。多重性問題(一對一、一對多)。在UML中關聯用一條直線來表示。
泛化:一個類繼承了其他類的屬性和操作。在UML中泛化用“從之類畫一條帶空心三角形箭頭的連線指向父類”來表示。
依賴:一個類使用了另一個類。在UML中依賴用“從依賴類到被依賴的帶箭頭的虛線”表示。
聚集是關聯的一種,聚集對象由部分對象組成。也就是整體與部分關聯。在UML中用“整體和部分之間用帶空心菱形箭頭的連線連接”來表示。
組合是一種特殊的聚集,在一個組合對象中,部分對象只能作為組合對象的一部分與組合對象同時存在。在UML中用“整體和部分之間用帶實心菱形箭頭的連線連接”來表示。
實現:類和接口之間的關系被稱為實現。在UML中實現關系用一個帶空心三角形箭頭加虛線來表示,箭頭指向接口。
關系的種類
圖舉例:
1.關聯
2.依賴
3.限定關聯
4. 聚集和組成
5.泛化
6.實現關系
用例視圖
當用例視圖在外部用戶前出現時,它捕獲到系統、子系統或類的行為。它將系統功能划分成對參與者(即系統的理想用戶)有用的需求。而交互功能部分被稱作用例。用例使用系統與一個或多個參與者之間的一系列消息來描述系統中的交互作用。參與者可以是人,也可以是外部計算機系統和外部進程。
用例之間的關系:關聯、擴展、泛化、包含。
圖舉例:
1.用例圖
2.用例關系圖
交互視圖
交互視圖描述了執行系統功能的各個角色之間相互傳遞消息的順序關系。類元是對在系統內交互關系中起特定作用的一個對象的描述,這使它區別於同類的其他對象。交互視圖顯示了跨越多個對象的系統控制流程。交互視圖可用兩種圖來表示:順序圖和協作圖,它們各有不同的側重點。協作圖也展示對象之間的交互關系,強調交互的語境和參與交互的對象的整體組織。協作圖按照空間組織布圖(並行),而順序圖按照時間順序布圖(串行)。
1.順序圖
2.協作圖
狀態視圖
狀態視圖是一個類對象所可能經歷的所有歷程的模型圖。狀態圖由對象的各個狀態和連接這些狀態的轉換組成。狀態圖是對單個對象的“放大”,它說明對象所經歷的狀態變化。強調單個對象內狀態的變化。
活動視圖
活動圖是狀態圖的一個變體,用來描述執行算法的工作流程中涉及的活動。活動狀態代表了一個活動:一個工作流步驟或一個操作的執行。活動圖描述了一組順序的或並發的活動。活動視圖用活動圖來體現。活動圖很像流程圖,它顯示出工作步驟,判定點和分支。可用於表達一個對象的操作和一個業務過程。
物理視圖
物理視圖對應用自身的實現結構建模,例如系統的構件組織和建立在運行節點上的配置。這類視圖提供了將系統中的類映射成物理構件和節點的機制。物理視圖有兩種:構件圖和部署視圖。
1.構件圖
2.部署圖
模型管理視圖
模型管理視圖對模型自身組織建模。一系列由模型元素(如類、狀態機和用例)構成的包組成了模型。一個包(package)可能包含其他的包,因此,整個模型實際上可看成一個根包,它間接包含了模型中的所有內容。包是操作模型內容、存取控制和配置控制的基本單元。每一個模型元素包含於包中或包含於其他模型元素中。
擴展機制
UML提供了幾種擴展機制,允許建模者在不用改變基本建模語言的情況下做一些通用的擴展。這些擴展機制已經被設計好,以便於在不需理解全部語義的情況下就可以存儲和使用。由於這個原因,擴展可以作為字符串存儲和使用。對不支持擴展機制的工具來說,擴展只是一個字符串,它可以作為模型的一部分被導入、存儲,還可以被傳遞到其他工具。我們期望后端工具設計成能夠處理各種擴展,這些工具會為它們需要理解的擴展定義特定的語法和語義。擴展機制包括約束、標記值和構造型。
約束是用文字表達式表示的語義限制。
標記值是一對字符串—一個標記字符串和一個值字符串—存儲着有關元素的一些信息。標記值可以與任何獨立元素相關,包括模型元素和表達元素。標記是建模者想要記錄的一些特性的名字,而值是給定元素的特性的值。例如,標記可以是author,而值是對元素負責的人的名字,如Charles Babbage。
標記值
構造型是在一個已定義的模型元素的基礎上構造的一種新的模型元素。構造型的信息內容和形式與已存在的基本模型元素相同,但是含義和使用不同。例如,商業建模領域的建模者希望將商業對象和商業過程作為特殊的建模元素區別開來,這些元素的使用在特定的開發過程中是不同的。它們可以被看作特殊的類—它們有屬性和操作,但是在它們與其他元素的關系上和它們的使用上有特殊的約束。
各種圖匯總