UML 的基本组成
UML 是由UML构造块、规则、通用机制三部分组成的。而UML构造块由建模元素(事物)、关系和图组成。
建模元素
建模元素是对模型中最具有代表性的成分的抽象。一般情况下,将建模元素分为结构元素、行为元素、分组元素以及注释元素。
结构元素
结构元素是模型的基本物理元素,它有7种类型,分别是类和对象、组件、接口、用例、节点、协作、活动类。在 UML中这7种元素都有自己的图形符号表示,用于组成各种图,描述系统功能
类和对象
类是具有相同属性、相同操作的一组对象的集合的抽象描述。对象是一个具体的内容。在图形中,类用一个矩形来表示,通常矩形中写有类的名称、类的属性和类的操作。
组件
组件是系统中物理的、可替代的部件,是一个描述了一些逻辑元素的物理包。在图形上,组件由一个带有小方框的矩形表示,通常在矩形中致谢该组件的名字
接口
接口是描述了一个类或组件的一个服务的操作集,或者说,接口描述了类或组件对外的、可见的动作。一个类可以实现一个或者多个接口。在图形上,使用一个带有名称的圆来表示。类图中接口用矩形表示,组件图中接口用圆来表示
用例
用例是对一组序列动作的描述,系统执行这些动作,将对用例参与者(actor)产生可以观察的结果。在图形上,用例用实线椭圆来表示,参与者用一个人形来表示
节点
节点是一个物理元素,它在运行时存在,代表一个可计算的资源,例如一台数据库服务器。在图像上,节点用一个立方体来表示
协作
协作是一组类、接口和其他元素的群体,他们共同工作,提供比个组成部分的功能总和更强的合作行为。协作与组件不同,协作不能拥有自己的结构元素,而只能引用其他地方定义的类、接口、组件、节点等结构元素,即协作是系统体系结构中的概念组块,而不是物理块。在图形,协作使用一个包含名称的虚线椭圆来表示。
活动类
活动类能够启动控制活动,因为它的对象至少拥有一个进程或线程。在图形上,活动类的表示方法与普通类相似,也是使用一个矩形,只是最外面的边框使用粗线
行为元素
行为元素是UML中的动词,它是模型中的动态部分。交互和状态机是UML中基本的动态行为元素,他们通常与其他结构元素、主要的类、对象连接在一起
交互
对象都不是孤立存在的,他们之间通过传递消息进行交互。在图形上,交互的消息通常用带有箭头的直线来表示。
状态机
状态机是一个对象或交互在生命周期内响应时间所经历的状态序列。一个状态机是一个行为,它说明对象在它的生命周期中响应事件所经历的状态序列以及它们对那些事件的响应
分组元素
分组元素是UML中的容器,用来组织模型,是模型更加结构化,最主要的分组元素是包,包是把元素组成成组的机制。结构元素、行为元素甚至其他分组元素都可以放进包内。在图形上,包用一个左上角带用一个小矩形的大矩形表示。
注释元素
注释元素是UML中的解释部分,与代码中的注释语句一样,是用来描述模型的。
关系
建模元素之间包含着多种关系,UML中将关系分为4中:依赖关系、关联关系 、泛化关系、实现关系。
依赖关系
依赖是两个元素件的语义关系,其中一个元素(独立元素)发生变化,会影响到另一个元素(依赖元素)的语义。例如,电视机和频道之间就存在一个依赖关系。
关联关系
关联表示两个类之间存在某种语义上的联系。关联关系提供了通信的路径,在图形上是用一条实线来表示关联关系。举例来说,人和汽车之间存在着关联。
泛化关系
泛化关系是一般元素(父类)和该元素较为特殊的子类之间的关系。子类继承父类的属性和操作。可以将泛化关系理解成为继承关系。
实现关系
实现关系将一种模型元素(例如类)与另一种模型元素(例如接口)连接起来,其中接口只是行为的定义而不是结构或实现。也就是说,实现关系中的一个模型元素只具有行为的定义,而行为的具体实现则是由另一个模型元素给出。
图
类图
对象图
用例图 (Use Case Diagram)
顺序图
通信图
状态机图
活动图 (Activity Diagram)
组件图
部署图
包图
组合结构图
交互概览图
时间图
UML 的基本组成的更多相关文章
- UML课程复习重点
第一章 一.UML图示建模工具 二.UML--统一建模语言,以图形符号为基础,描述软件模型既简洁又清晰.它不是开发方法,是独立于任何开发方法之外的语言.它用于描述软件系统分析.设计和实施中的各种模型. ...
- UML图中经常用到几种的关系图例
学习这个东西挺奇怪的,时间一长就容易忘记,或者记不清楚.今天看到一些UML图的关系,发现有些出入了,索性就写下来,以后再忘记的时候过来看看. 在UML的类图中,常见的有以下几种关系: 继承(Gener ...
- UML类图(下):关联、聚合、组合、依赖
前言 上一篇文章UML类图(上):类.继承.实现,讲了UML类图中类.继承.实现三种关系及其在UML类图中的画法,本文将接着上文的内容,继续讲讲对象之间的其他几种关系,主要就是关联.聚合.组合.依赖, ...
- UML类图(上):类、继承和实现
面向对象设计 对于一个程序员来说,在工作的开始阶段通常都是别人把东西设计好,你来做.伴随着个人的成长,这个过程将慢慢变成自己设计一部分功能来实现,自己实现.如果要自己设计,无论是给自己看,还是给别人看 ...
- UML
UML:1.继承关系用空心三角形+实线来表示2.实现接口用空心三角形+虚线来表示3.关联关系用实线箭头来表示4.依赖关系用虚线箭头来表示5.聚合关系用空心菱形+实线箭头来表示6.组合关系用实心菱形+实 ...
- UML类图与面向对象设计原则
1. 引言 从大一开始学习编程,到如今也已经有两年了.从最初学习的Html,Js,JaveSe,再到JavaEE,Android,自己也能写一些玩具.学习过程中也无意识的了解了一些所谓的设计模 ...
- 浅谈UML的概念和模型之UML九种图
1.用例图(use case diagrams) [概念]描述用户需求,从用户的角度描述系统的功能 [描述方式]椭圆表示某个用例:人形符号表示角色 [目的]帮组开发团队以一种可视化的方式理解系统的功能 ...
- UML类图几种关系的总结
在UML类图中,常见的有以下几种关系: 泛化(Generalization), 实现(Realization),关联(Association),聚合(Aggregation),组合(Composit ...
- 我的敏捷、需求分析、UML、软件设计电子书 - 下载(持续更新中)
我将所有我的电子书汇总在一起,方便大家下载!(持续更新) 文档保存在我的网站——软件知识原创基地上(www.umlonline.org),请放心下载. 1)软件设计是怎样炼成的?(2014-4-1 发 ...
- UML类图关系全面剖析
UML的类图关系分为: 关联.聚合/组合.依赖.泛化(继承).而其中关联又分为双向关联.单向关联.自身关联:下面就让我们一起来看看这些关系究竟是什么,以及它们的区别在哪里. 1.关联 双向关联:C1- ...
随机推荐
- hibernate一些方法
session.flush() 同步缓存与数据库数据 session.evict(obj) 关闭指定对象缓存 session.clear() 关闭所有缓存 iterator(会把数据放入缓存) 下次 ...
- 配置处理结果result
Action处理完用户请求后返回一个字符串,整个字符串就是一个逻辑视图名. 除此之外,struts2还支持多种结果映射,struts2将结果转为实际资源时,不仅可以是JSP视图资源,也可以是FreeM ...
- 关于js效果不提示就执行了刷新(解决 在h-ui框架中)
parent.layer.msg('保存成功!<script>setTimeout("window.location.reload();",1100);<\/sc ...
- javascript 获取 class 样式 重新赋值class样式 为div等系列标签内更改内容
name = document.getElementById(project_not_through_id).className; // 获取目标id的 cla ...
- coder
#include <iostream>#include <GL/glut.h>using std::cout;using std::endl;float windowWidth ...
- ASP.NET MVC轻教程 Step By Step 11——数据注解
将验证规则写在Cotroller里不是一个好办法,这样会显得代码很啰嗦,更重要的是将业务逻辑写入Controller,使得Controller变得更“重”,不符合设计原则.更好的办法是使用验证注解属性 ...
- (MVC)验证用户是否登录 登录认证
验证类 using System; using System.Collections.Generic; using System.Linq; using System.Web; using Syste ...
- “未能加载文件或程序集file:///E:/MoneySet.dll或它的某一个依赖项,试图加载格式不正确的程序,行203,位置5. 文件:MReportSet.resx”,
http://bbs.csdn.net/topics/390334265 1.右键卸载项目2.右键选择编辑工程文件,在打开的文件的最后一行</project>之前加以下内容: <Pr ...
- matlab中元胞数组(cell)转换为矩阵
matlab中元胞数组(cell)转换为矩阵. cell转换为矩阵函数为:cell2mat(c),其中c为待转换的元胞数组: 转化之后的矩阵可能不满足我们对矩阵维数的要求,那么也许还需要下面两个函数: ...
- Codeforces Round #131 (Div. 2) : B
首先能被2,5整除的数结尾必须是0: 如果没有0肯定不行: 然后判断他们的和ans%3: 如果==0,直接从大到小输出就行: 如果==1,要么删除它们之间最小的那个%3==1的,要么删除两个小的并且% ...