统一建模语言(UML,Unified Modeling Language)
- Something about UML:
统一建模语言(UML,英语:Unified Modeling Language)是非专利的第三代建模和规约语言。UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。UML展现了一系列最佳工程实践,这些最佳实践在对大规模,复杂系统进行建模方面,特别是在软件架构层次已经被验证有效。
UML集成了Booch,OMT和面向对象软件工程的概念,将这些方法融合为单一的,通用的,并且可以广泛使用的建模语言。UML打算成为可以对并发和分布式系统的标准建模语言。
UML并不是一个工业标准,但在Object Management Group的主持和资助下,UML正在逐渐成为工业标准。OMG之前曾经呼吁业界向其提供有关对象导向的理论及实现的方法,以便制作一个严谨的软件建模语言(Software Modeling Language)。有很多业界的领袖亦真诚地回应OMG,帮助她建立一个业界标准。
- 模型
在UML系统开发中有三个主要的模型:
- 功能模型:从用户的角度展示系统的功能,包括用例图。 (用户、客户、甲方)
- 对象模型:采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类别图、对象图。(程序员、产品经理、乙方)
- 动态模型:展现系统的内部行为。包括序列图,活动图,状态图。 (程序员、产品经理、乙方)
区分UML模型和UML图是非常重要的,UML图,包括用例图、协作图、活动图、序列图、部署图、构件图、类图、状态图,是模型中信息的图形表达方式,但是UML模型独立于UML图存在。XML的当前版本只提供了模型信息的交换,而没有提供图信息的交换。
UML使用一套与Java语言或其他面向对象语言等价物,同时也是本体论等价物的图形标记。
UML并不是一个方法学,也不要求使用一个方法学,但是UML对于Rational 统一过程来说是必不可少的。
- 图形
UML 2.2中一共定义了14种图示(diagrams)。为方便了解,可分类成右侧的结构。

结构性图形(Structure diagrams)强调的是系统式的建模:
-
静态图(static diagram)
- 类别图(Class Diagram)

- 对象图(Object diagram)

- 包图(Package diagram)

实现图(implimentation diagram)
- 组件图(Component diagram)

- 部署图(Deployment diagram)

剖面图(Profile diagram)
复合结构图(Composite structure diagram)
行为式图形(Behavior diagrams)强调系统模型中触发的事件:
交互性图形(Interaction diagrams),属于行为图形的子集合,强调系统模型中的资料流程:
-
通信图(Communication diagram)

交互概述图(Interaction overview diagram,UML 2.0)

时序图(Sequence diagram)

时间图(UML Timing Diagram,UML 2.0)
协定状态机是状态机的子变种。它用来塑造网路通讯协定模型。
UML并不限定UML要素型别非得是某图形上的型别。一般来说,每个UML要素大约会出现在图的所有型别。这种弹性在UML 2.0部分被限定。
为了要保持工程图的传统,在您的UML图上加注用途、约束、或意图永远无伤大雅。
UML 2为了符合模型驱动架构(Model Driven Architecture)的需求做了大幅度的修改除在图形基础上扩充及变化了部份的展现方式外,也增加了一些图形标准元件,比前一版多出了由循序图与互动图所混合而成的互动概图(Interaction Overview Diagram)、强调时间点的时序图(Timing Diagram)与合成结构图(Composite Structure Diagram),此外,在UML2中,UML1合作图转变为通讯图(Communication Diagram),且在循序图中也添加了互动框(Interaction Frame)的概念,还有增加一些运算子(如sd、loop、alt等)。同时,UML2支援模型驱动架构(MDA)倡议,提供稳定的基础架构,容许软件开发程序增添自动化作业。此外,MDA把大型的系统分解成几个元件模型,并与其他模型保持连结,使得UML更加精确。
- 概念
UML从来源中使用相当多的概念。我们将之定义于统一建模语言术语汇表。下面仅列代表性的概念。
对于结构而言
- 执行者,属性,类,元件,接口,对象,包。
对于行为而言
- 活动(UML),事件(UML),消息(UML),方法(UML),操作(UML),状态(UML),用例(UML)。
对于关系而言
聚合(Aggregate):是表示整体与部分的一类关联关系,是“弱”的包含(has a)关系,成分类别可以不依靠聚合类别而单独存在。例如,池塘与(池塘中 的)鸭子。再例如教授与课程就是一种聚合关系。聚集可能不涉及两个以上的类别。图形以空心的菱形与实线来表示。
- 关联(Association)代表一个家族的联系。关联可以命名,并结束一个关联可以饰以角色名称,所有权指标,多重性,可视性,以及其他属性。目前定义有五种不同类型的关联。双向(Bi-directional)和单向(uni-directional)的关联是最常见的。
- 组合(Composition):是一类“强”的整体与部分的包含关系。成分类别必须依靠合成类别而存在。合成类别完全拥有成分类别,负责创建、销毁成分类别。例如汽车与化油器,又例如公司与公司部门就是一种组成关系。图形以实心的菱形与实线表示。
- 相依:
- 广义化/继承(Generalize):又称一般化、通常化、普遍化、概化,是指将事物的定义进行修改或者补充以使其适用于更加大的范围。一个将事物广义化的简单例子是归类。
其他概念
-
构造型—这规范符号应用到的模型
多重性—多重性标记法与资料库建模基数对应,例如:1, 0..1, 1..*
角色
统一建模语言(UML,Unified Modeling Language)的更多相关文章
- UML(Unified Modeling Language)统一建模语言
什么是模型 模型是对现实的简化 模型是提供系统的蓝图,模型可是包括详细计划.也可是是从更高程度考虑系统的总体计划,每个系统可以从不同的方面用不通过的模型来描述.因而每个模型都是在语义上闭合的抽象系统. ...
- 学习笔记之UML ( Unified Modeling Language )
Unified Modeling Language - Wikipedia https://en.wikipedia.org/wiki/Unified_Modeling_Language The Un ...
- UML(Unified Modeling Language)同一建模语言
wiki定义: UML is a general-purpose, developmental, modeling language in the field of software engineer ...
- 统一建模语言 UML
目录 统一建模语言 UML UML定义了5类10种模型图 一用例图用于建立需求模型 二静态图主要描述系统的静态表示和关系包括类图包图对象图 三行为图描述系统动态模型和对象组成的交换关系包括状态图和活动 ...
- UML类图(Unified Modeling Language Class Diagrams)
统一建模语言(UML) | 类图 什么是UML? UML是一种用于可视化描述系统,具有广泛用途的建模语言.作为一种标准化的图形语言,在软件工业中被用于软件系统部件的具体化,可视化,结构化描述以及撰写 ...
- 统一建模语言——UML
一.UML概述 Unified Modeling Language (UML)又称统一建模语言或标准建模语言,是始于1997年一个OMG标准,它是一个支持模型化和软件系统开发的图形化语言,为软件开发的 ...
- 统一建模语言(UML) 版本 2.0
原文: http://www.ibm.com/developerworks/cn/rational/321_uml/ 简介 参考 UML 基础系列的其他文章和教程 UML基础: 统一建模语言简介 UM ...
- The Unified Modeling Language(UML)
统一过程建模语言UML 统一过程建模语言UML是一种标准的可视化建模语言,使用在: 业务建模和类似的过程 居于软件系统的分析.设计.和实现 UML 是一门通用语言,提供给业务分析员,软件架构师和开发 ...
- 公用技术——面向对象领域——UML图——《The Unified Modeling Language User Guide》V2读书笔记——第一章节(建模的意义)
第一章节到第三章节介绍UML的基本概念.第一章节主要介绍了UML语言的历史,介绍了建模的重要性(狗窝,房子,大厦),介绍了UML要实现哪些目标,在最后介绍了在使用UML语言时应该遵循的一些原则或者是规 ...
随机推荐
- Markdown语法图解
Markdown语法图解 文章目录 快捷键 基本语法 对字体设置斜体.粗体.删除线 分级标题 链接 分割线 代码块 引用 列表 表格 常用技巧 换行 缩进字符 如何打出一些特殊符号 字体.字号与颜色 ...
- [HNOI2008][bzoj1009] GT考试 [KMP+矩阵快速幂]
题面 传送门 思路 首先,如果$n$和$m$没有那么大的话,有一个非常显然的dp做法: 设$dp[i][j]$表示长度为i的字符串,最后j个可以匹配模板串前j位的情况数 那么显然,答案就是$\sum_ ...
- Ubuntu 硬盘大小扩展
注:途中所有图均为配置好补的截图,部分来自其它网页. 1.选择硬盘(SCSI) 2.点击扩展,在弹出框填写期望的硬盘大小(不能比原硬盘大小容量小) 3.进入虚拟机,安装GParted. 命令:sudo ...
- [Linux]方便openmp等程序的类似编译
因为总是打参数例如-fopenmp或者-lGL等等有些麻烦,所以特地写一个可以使用的bash文件用来执行简单的操作 首先在.profile中添加 if [ -d "$HOME/bin&quo ...
- Python之数据结构:字符串中的方法
一.过滤字符串 1.strip() (1)去掉行收尾不可见字符 a = ' wejifrow ' print a print a.strip() 结果: wejifrow wejifrow (2)st ...
- jquery 跳转页面传值的问题
关于 跳转页面传值的问题 1. 目前最多的是使用 ajax 方法 //举例 ajax 传值,举例: $.ajax({ type : "post", url : "save ...
- linux的进程管理
进程就是正在运行的程序. 一个程序可以对应多个进程,但是一个进程只对应一个程序. 1.进程和进程控制的概念 查看进程状态: w+用户名 查看个别用户的进程 ps -aux 显示系统进程 a:代表 ...
- poj 3623 Best Cow Line, Gold 后缀数组 + 贪心
题目链接 题目描述 对于一个给定的字符串,可以从左右两端取字符,依次排列构成一个新的字符串. 求可能构成的字符串中字典序 最小的一个. 例:ACDBCB -> ABCBCD 思路 参考自 xue ...
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---5
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下: <Linux命令行与shell脚本 ...
- Python学习杂记_8_从程序外部传参的办法sys.argv
Python用 sys.argv[] 实现从程序外部传参 “外部”的含义,其实就是这些参数不是你在程序中定义的,而是在程序之外通过输入操作传递进来的.sys.argv 会返回一个元组,元组的首个元素即 ...


