认识UML
2015-11-11 20:58
344 查看
UML概述
UML简介
UML(Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过程。UML语义:UML对语义的描述使开发者能在语义上取得一致认识,消除了因人而异的表达方法所造成的影响。
UML表示法:UML表示法定义UML符号的表示法,为开发者或开发工具使用这些图形符号和文本语法为系统建模提供了标准。
UML模型图的构成
事物(Things):UML模型中最基本的构成元素,是具有代表性的成分的抽象关系(Relationships):关系把事物紧密联系在一起
图(Diagrams):图是事物和关系的可视化表示
UML事物
UML包含4种事物:构件事物、行为事物、分组事物、注释事物构件事物
UML模型的静态部分,描述概念或物理元素它包含以下几种:
类:具有相同属性、相同操作、相同关系、相同语义的对象的描述
接口:描述元素的外部可见行为,即服务集合的定义说明
协作:描述了一组事物间的相互作用的集合
用例:代表一个系统或系统的一部分行为,是一组动作序列的集合
构件:系统中物理存在,可替换的部件
节点:运行时存在的物理元素
行为事物
UML模型图的动态部分,描述跨越空间和时间的行为交互:实现某功能的一组构件事物之间的消息的集合,涉及消息、动作序列、链接
状态机:描述事物或交互在生命周期内响应事件所经历的状态序列
分组事物
UML模型图的组织部分,描述事物的组成结构包:把元素组织成组的机制
注释事物
UML模型的解释部分,用来对模型中的元素进行说明,解释注释:对元素进行约束或解释的简单符号
UML关系
依赖
依赖(dependency)是两个事物之间的语义关系其中一个事物(独立事物)发生变化,会影响到另一个事物(依赖事物)的语义关联
关联(association)是一种结构关系,它指明一个事物的对象与另一个事物的对象间的联系泛化
泛化(generalization)是一种特殊/一般的关系。也可看作是常说的继承关系实现
实现(realization)是类元之间的语义关系,其中的一个类元指定了由另一个类元保证执行的契约。各UML图及特征
用例图(Use Case Diagram)用例图是从用户角度描述系统功能,是用户所能观察到的系统功能的模型图,用例图是系统中的一个功能单元。
类图(Class Diagram)
类图描述系统中类的静态结构。不仅定义系统中的类,表示类之间的联系如关联、依赖、聚合等,也包括类的内部结构(类的属性和操作)。
类图是以类为中心来组织的,类图中的其他元素或属于某个类或与类相关联。
对象图(Object Diagram)
对象图是类图的实例,几乎使用与类图完全相同的标识。他们的不同点在于对象图显示类的多个对象实例,而不是实际的类。
顺序图(Sequence Diagram)
顺序图显示对象之间的动态合作关系,它强调对象之间消息发送的顺序,同时显示对象之间的交互。
顺序图的一个用途是用来表示用例中的行为顺序。当执行一个用例行为时,顺序图中的每条消息对应了一个类操作或引起状态转换的触发事件。
协作图(Collaboration Diagram)
协作图描述对象间的协作关系,协作图跟顺序图相似,显示对象间的动态合作关系。除显示信息交换外,协作图还显示对象以及它们之间的关系。
协作图的一个用途是表示一个类操作的实现。
状态图(State Chart Diagram)
状态图是一个类对象所可能经历的所有历程的模型图。状态图由对象的各个状态和连接这些状态的转换组成。
活动图(Activity Diagram)
活动图是状态图的一个变体,用来描述执行算法的工作流程中涉及的活动。
活动图描述了一组顺序的或并发的活动。
构件图(Component Diagram)
构件图为系统的构建模型——构件,即构造应用的软件单元,还包括各构件之间的依赖关系,以便通过这些依赖关系来估计对系统构件的修改给系统可能带来的影响。
部署图(Deployment Diagram)
部署图描述位于节点实例上的运行构件实例的安排。节点是一组运行资源,如计算机、设备或存储器。这个试图允许评估分配结果和资源分配。
各UML图的关系
主要图之间的关系UML语法描述
相关文章推荐
- form表单中get和post请求的区别
- 退役录
- 坐标系的冷知识
- nyoj--138--找球号(二)(hash+邻接表)
- postfix邮件服务器配置DKIM环境
- 实现UIScrollView循环滚动
- WinFrom最小化到托盘
- zabbix 代理报错
- Nginx 中last和break 及 permanent 和 redirect 的爱恨情仇
- 最短路A
- JVM博客
- php,js小数取整数函数,丢弃小数部分,向上取整数,四舍五入,向下取整数 ...
- poj 1083 moving tables 【动态规划】
- 求二维数组的鞍点
- iOS学习笔记--如何为UITextView设置placeholder
- SoapUI启动报错:The JVM could not be started. The maximum heap size (-Xmx) might be too large
- android view的setVisibility方法值的意思
- mysql之触发器的使用
- Myhabtis学习笔记(一)
- 安卓中 dp\px\sp的区别