UML (Unified Modeling Language)

翻译 2012年03月24日 00:14:03

UML語言的目標是把系統的構造可視化。分為兩個部分:Structural,系統的靜態特點;Behavioral:系統的動態特點。

 

Structural具體組成如下:

Class: 提供分類和類的接口。

Object: 類的對象。

Component: 一些組成物理實現的邏輯元素。

Deployment: 節點和它們的關係。

Package: 把一些UML元素集合起來就是Package。``

 

Behavioral具體組成如下:

Use Case:系統的基本Behavior。

Interaction Diagram: 分為Sequence(用於表現時間序列)和Collaboration(用於表現不同Object之間的交互)。

Statechart:用於事件處理和不同狀態的系統。

Activity:用於控制流。

 

工程設計的一般流程如下:

1、 Use Case Diagram建立需求

2、 Class Diagram標識主要對象和其關係

3、 使用Sequence或Collaboration建立Scenarios。

4、 使用State或Activity來描述Behavior

5、 在Component和Deployment加入細節

 

下面分別分析每一個概念。

 

UseCase

Use Case相當於一個函數。比如如下就是一個Use Case:

Format a document

Reverse Car

Use Case的目標是實現User Goal, 注意不是User Interaction(user實現goal的做法),如下:

Change a style

Use Case是一個短小的描述,實現了系統的一個特徵,一個系統通常包含很多Use Case。

介紹一個具體例子,這裡使用了開源軟件ArgoUML。


以上圖標說明了超市裡收銀員和顧客之間的交互關係。外面的方框是邊界。這種模型也叫POST模型(Point ofSale Terminal)。其中,橢圓型的物件就是UseCase。

 

Use Case之間也會有交互,用箭頭和雙引號表示,如下:


Include表示某Use case包含指向的Use case。Extend表示某Use case擴展了指向的Use case。這兩種交互的作用是使整個圖表更容易理解。

 

現在,仔細分析一個UseCase, 比如“購買”,

Actors: 顧客,收銀員

Type:Primary and Essential

Description: 顧客到收銀台就所購買的物品付錢,收銀員收錢,之後顧客拿著商品離開。

Cross Ref.: requirement XX, YY, ZZ

Use-cases: 收銀員必須已經完成“登錄”

 

Class

 

類(Class)是對象(Object)的抽象名稱。類有兩個屬性:Attribute(屬性)和Operation(方法)。類有幾個特點:Polymorphism(多態)和Inheritance(繼承)。

類的標識(ID)一般不再屬性中列出。

Association,Aggregation和Inheritance是類的三大關係。

 

類間的關係有Association,畫有小箭頭和文字的連線表示,比如

Issued-by

Works-for

Has-capital

Is-issued

使用接了線的菱形表示高階Association,比如Language, Project和Person。

一個特別的Association是Multiply,使用0..*的小箭頭連線表示,比如一個人持有多張信用卡。

Link Attribute:一種特殊的類,比如工資是員工和公司的Link attributes

Role Name: 與連線標在一起,表明類的職務,比如Boss, employee等。

 

類間關係的Aggregation使用貼著類的菱形箭頭表示,從A指向B表示A是B的一部分。比如句子指向段落,段落指向文檔。再比如汽車的部件指向汽車。

 

Inheritance使用白色三角形箭頭表示繼承關係,A指向B表示A是B的子類。比如信用卡類是卡片類的子類。

 

DynamicModel

 

下面介紹類的Behavior,也叫動態模型。動態模型刻畫了模型轉換狀態(State)的過程。
1
Interactiondiagram
分為sequencediagrams (invaluable in multitasking不適用於多任務 )collaboration diagrams(stack structure靜態結構)

 


2Activitydiagram (狀態轉換,不同對象的不同Use-case)

不適合對象間Collaboration,也不適合時間相關的模型,只適合分析一些Use-casesMulti-thread和多物體並行(Parallelism)運行。下面是一個煮咖啡的例子。


3
Statetransition diagram(是狀態機State Machines的圖像化表示,同一對象的不同Use-case


適合Concurrency的情況。在商業中應用廣。不適合多對象的交互(Interaction

定義幾個概念:事件(Event在某時候發生的事情),條件(Condition持續發生的事情),狀態(State某個對象的一些抽象屬性的集合),Action(Operation,限於某個State時的動作)

每個Statetransition分幾種Scenarios,以下是打電話的兩種Scenarios



狀態圖如下:


Condition的例子如下:


Concurrency是指在某個State之中有可能出現兩種情況,比如AlarmsDisable這個StateConcurrency圖如下:


隱藏一些State叫做Hiding,某些狀態分類叫做Hierarchy,分別如下:

 


Component和Deployment

最後分析Component(集結一些類)和Deployment(設一些節點)問題。


Package可以打包很多類和Component。

Component在處理源文件、可執行文件、物理數據庫和適應性模型有很大優勢。Component是由一些類加上一些接口(Interface)組成。

 

Deployment把模型分為很多節點,每個節點由諸如類或Component等組成。下面是一個互聯網模型。

 

擴展UML

 

Stereotype: 用於限定一些Problem Domain,使用雙引號表示。比如《Sensor》至於Embeddedsystem。前面提過的《include》《extend》也是這類。

Tagged Value: 元素的補充信息,用大括號括在元素內部。

 

Constraint:用大括號括在元素之外,表示一些規則。

Dependency: 需要一些前置模型部件的模型元素。

 

Metamodeling(元建模): 是一些*概念的集合。

一般来说,模型是真实事物的抽象。而元建模是对模型本身的抽象。就好象程序代码模拟汽车前进,而程序语法又规范和抽象代码一样。严格来说,元建模是一种针对模型框架(Frame),规则(Rule),约束(Constraints)的构造(Construct)和分析(analyse)的理论。Cheng的表述为元建模是一种类图标,它就像一个盒子,描述了语法(Syntax),消息(Message)等内容来表现语言的元素(Element)和它们之间的联系(Relation and Coinnection)。

值得提出的是Meta-这个前缀在英语中是表示“抽象”的意思。比如Metadata就是对数据的抽象,或者说,是关于数据的数据。一本书是一个数据集合,这本书的作者、出版日期等数据可以说就是数据的数据。Meta目前没有特别确切的翻译,一般翻译为“元”。

 


參考資料

Betty Cheng, Michigan State University, softwareengineering lectures

 

统一建模语言(UML,Unified Modeling Language)

1.在UML系统开发中有三个主要的模型: 功能模型:从用户的角度展示系统的功能,包括用例图。对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图。 动态模型:展现系统的...
  • andywangcn
  • andywangcn
  • 2012年12月02日 21:35
  • 3157

UML(Unified Modeling Language)

1. 静态建模 1.1 用例图(Use Case Diagram) Admin可以Add、Update、Delete以及Query Guest只能Quest 1.2 类图(Cl...
  • carabbit
  • carabbit
  • 2011年11月19日 17:54
  • 274

UML(Unified Modeling Language) 总结

模型:  (1)概念:是对现实系统的简化或模拟,是对现实系统本质特征的一种简化、直观、类比和抽象的描述。  (2)模型的表示包括文字或图形  (3)从抽象程度分:     ①概念模型—系统的雏形,对系...
  • fanfan4569
  • fanfan4569
  • 2016年11月02日 15:30
  • 403

UML(Unified Modeling Language)统一建模语言

什么是模型 模型是对现实的简化 模型是提供系统的蓝图,模型可是包括详细计划。也可是是从更高程度考虑系统的总体计划,每个系统可以从不同的方面用不通过的模型来描述。因而每个模型都是在语义上闭合...
  • qq_35409640
  • qq_35409640
  • 2017年08月06日 22:00
  • 314

UML(unified Modeling Language)

统一建模语言(UML是 Unified Modeling Language的缩写)是用来对软件密集系统进行可视化建模的一种语言。UML为面向对象开发系统的产品进行说明、可视化、和编制文档的一种标准语言...
  • mcy478643968
  • mcy478643968
  • 2009年07月16日 16:05
  • 618

UML/RUP 系列

 UML/RUP 系列:[Roff,2003]UML: A Beginners Guide by Jason T.RoffUML基础教程 张瑜 译  清华大学出版社[Fowler,2000] UML ...
  • ncsidy0324
  • ncsidy0324
  • 2008年02月12日 18:18
  • 342

UML basics: An introduction to the Unified Modeling Language

Way back in the late twentieth century -- 1997 to be exact -- the Object Management Group (OMG) re...
  • mindhawk
  • mindhawk
  • 2008年03月17日 14:55
  • 877

Introduction to OMG's Unified Modeling Language™ (UML®)

Updated July 2005 to reflect formal adoption of UML 2.0 Superstructure. Large enterprise application...
  • huangxf_2008
  • huangxf_2008
  • 2007年05月05日 02:37
  • 1310

UML(Unified Modeling Language)统一建模语言--类图详解

类图是面向对象系统建模中最常见的图,类图显示了一组类、接口、协作以及它们之间的关系。类图用于对系统的静态设计视图建模。 在UML中类以矩形表示,具有名称、属性、操作、和关系等描述。接下来我们将全面的对...
  • traysine
  • traysine
  • 2013年08月23日 12:04
  • 600

Unified Modeling Language

统一建模语言
  • u012603711
  • u012603711
  • 2014年05月29日 15:55
  • 203
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UML (Unified Modeling Language)
举报原因:
原因补充:

(最多只允许输入30个字)