UML建模综述
一、概念
UML-Unified Model Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。作为一个支持模型化和软件系统开发的图形化语言,UML为软件开发的所有阶段提供模型化和可视化支持,包括由需求分析到规格,到构造和配置。
UML规范用来描述建模的概念有:类(对象的)、对象、关联、职责、行为、接口、用例、包、顺序、协作,以及状态。
二、分类
在UML系统开发中有三个主要的模型:
功能模型: 从用户的角度展示系统的功能,包括用例图。
对象模型: 采用对象,属性,操作,关联等概念展示系统的结构和基础,包括类图、对象图、包图。
动态模型: 展现系统的内部行为。 包括序列图,活动图,状态图。
UML定义了5类,10种模型图
五种类图定义:
用例图:从用户角度描述系统功能,并指各功能的操作者。
静态图:包括类图,包图,对象图。
类图:描述系统中类的静态结构
包图:是包和类组成的,表示包与包之间的关系,包图描述系统的分层结构
对象图:是类图的实例
行为图:描述系统动态模型和对象组成的交换关系。包括状态图和活动图
活动图:描述了业务实现用例的工作流程
状态图:是描述状态到状态控制流,常用于动态特性建模
交互图:描述对象之间的交互关系
顺序图:对象之间的动态合作关系,强调对象发送消息的顺序,同时显示对象之间的交互
合作图:描述对象之间的协助关系
实现图:描述系统的实际体系结构安排
配置图:定义系统中软硬件的物理体系结构
十种图定义:
UML包括用例图、类图、构件图、部署图、顺序图、协作图、状态图、活动图
(1)类图(Class Diagram)。展现了一组对象、接口、协作和它们之间的关系。类图描述的是一种静态关系,在系统的整个生命周期都是有效的,是面向对象系统的建模中最常见的图。
(2)对象图(Object Diagram)。展现了一组对象以及它们之间的关系。对象图是类图的实例,几乎使用与类图完全相同的标示。
(3)用例图(UseCase Diagram)。展现了一组用例、参与者(actor)以及它们之间的关系。用例图从用户角度描述系统的静态使用情况,用于建立需求模型。
(4)交互图。用于描述对象间的交互关系,由一组对象和它们之间的关系组成,包含它们之间可能传递的消息。交互图又分为序列图和协作图,其中序列图描述了以时间顺序组织的对象之间的交互活动;协作图强调收发消息的对象的结构组织。
(5)状态图(State Diagram)。由状态、转换、事件和活动组成,描述类的对象所有可能的状态以及事件发生时的转移条件。通常状态图是对类图的补充,仅需为那些有多个状态的、行为随外界环境而改变的类画状态图。
(6)活动图(Active Diagram)。一种特殊的状态图,展现了系统内一个活动到另一个活动的流程。活动图有利于识别并行活动。
(7)组件图(Component Diagram)。展现了一组组件的物理结构和组件之间的依赖关系。部件图有助于分析和理解组件之间的相互影响程度。
(8)部署图(Deployment Diagram)。展现了运行处理节点以及其中的组件的配置。部署图给出了系统的体系结构和静态实施视图。它与组件图相关,通常一个节点包含一个或多个构建。
(9)包图((Package Diagram))。包图描述系统的分层结构。在UML1.1版本中,包图不再看作一种独立的模型图。
三、十种模型图具体描述
1.类图(概念类图Class Diagram/Conceptual Class Diagram / Domian Model)
类图是描述系统中的类,以及各个类之间的关系的静态视图。能够让我们在正确编写代码以前对系统有一个全面的认识。类图是一种模型类型,确切的说,是一种静态模型类型。类图表示类、接口和它们之间的协作关系。
2.活动图(Activity Diagram)
描述用例要求所要进行的活动,以及活动间的约束关系,有利于识别并行活动。能够演示出系统中哪些地方存在功能,以及这些功能和系统中其他组件的功能如何共同满足前面使用用例图建模的商务需求。
3.状态图(状态机图State Diagram/State Machine Diagram)
描述类的对象所有可能的状态,以及事件发生时状态的转移条件。可以捕获对象、子系统和系统的生命周期。他们可以告知一个对象可以拥有的状态,并且事件(如消息的接收、时间的流逝、错误、条件变为真等)会怎么随着时间的推移来影响这些状态。一个状态图应该连接到所有具有清晰的可标识状态和复杂行为的类;该图可以确定类的行为,以及该行为如何根据当前的状态变化,也可以展示哪些事件将会改变类的对象的状态。状态图是对类图的补充。
4.用例图(Use Case Diagram)
描述角色以及角色与用例之间的连接关系。说明的是谁要使用系统,以及他们使用该系统可以做些什么。一个用例图包含了多个模型元素,如系统、参与者和用例,并且显示这些元素之间的各种关系,如泛化、关联和依赖。
5.序列图(顺序图Sequence Diagram)
序列图是用来显示你的参与者如何以一系列顺序的步骤与系统的对象交互的模型。顺序图可以用来展示对象之间是如何进行交互的。顺序图将显示的重点放在消息序列上,即强调消息是如何在对象之间被发送和接收的。
6.协作图(通讯图Communication Diagram)
和序列图相似,显示对象间的动态合作关系。可以看成是类图和顺序图的交集,协作图建模对象或者角色,以及它们彼此之间是如何通信的。如果强调时间和顺序,则使用序列图;如果强调上下级关系,则选择协作图;这两种图合称为交互图。
7.对象图(设计类图Object Diagram/Design Class Diagram)
与类图极为相似,它是类图的实例,对象图显示类的多个对象实例,而不是实际的类。它描述的不是类之间的关系,而是对象之间的关系。
8.包图(Package Diagram)
包图用于描述系统的分层结构,由包或类组成,表示包与包之间的关系。
9.组件图(构件图Component Diagram)
描述代码构件的物理结构以及各种构建之间的依赖关系。用来建模软件的组件及其相互之间的关系,这些图由构件标记符和构件之间的关系构成。在组件图中,构件是软件单个组成部分,它可以是一个文件,产品、可执行文件和脚本等。
10.部署图(配置图Deployment Diagram)
是用来建模系统的物理部署。例如计算机和设备,以及它们之间是如何连接的。部署图的使用者是开发人员、系统集成人员和测试人员。部署图用于表示一组物理结点的集合及结点间的相互关系,从而建立了系统物理层面的模型。
三、十种模型图对比
UML建模综述的更多相关文章
- 三大UML建模工具Visio、Rational Rose、PowerDesign的区别
本文源自http://developer.51cto.com/art/201006/207993.htm UML建模工具Visio .Rational Rose.PowerDesign的比较 RO ...
- 本节向大家介绍一下UML建模误区
本节向大家介绍一下UML建模误区,这里向大家介绍九个误区,希望通过本节的学习,你对UML建模有清晰的认识,以免在以后使用过程中产生不必要的麻烦.下面让我们一起来看一下这些建模误区吧. UML建模误区 ...
- UML建模类型(转载)
区分UML模型, UML建模用于不同类型的不同的图.有三个重要类型的UML建模: 结构建模: 系统结构建模捕捉静态功能.它们包括下列各项: 类图 对象图 部署图 包图 复合结构图 组件图 结构模型代表 ...
- 使用Visio进行UML建模
http://www.qdgw.edu.cn/zhuantiweb/jpkc/2009/rjkf/xmwd/Visio_UmlModel.htm#_Toc80417837 内容提纲: 1.VISIO中 ...
- UML建模文章总结
一.为什么要学习UML UML是Unified Modeling Language(统一建模语言)的简称.UML是对软件密集型系统中的制品进行可视化.详述.构造和文档化的语言.制品{Artifact} ...
- 五个免费UML建模工具推荐
UML工具很多是商用的,价格不菲:而免费的UML建模工具,功能完善的很少.以下推荐的是五个免费的UML建模工具,相对而言还算功能比较不错. 1.免费UML建模工具推荐:JUDE – community ...
- UML建模系列文章总结
本文转载:http://www.cnblogs.com/ywqu/tag/UML建模/ 本人总结: UML类图按照关系分为三大类:继承关系.拥有关系.整体与部分的关系. 继承关系:泛化.实现 拥有关系 ...
- EA UML 建模——类图
Enterprise Architect(EA) 是一个功能比较强悍的建模工具,本篇文章仅使用其 UML 建模功能,其他更多功能,可以Google. 一.简单梳理C#中类与类.类与接口.接口与接口的关 ...
- Enterprise Architect UML 建模之活动图
EA(Enterprise Architect) UML 建模之活动图 一.活动图的概念作用 活动图本质上是一种流程图,它描述活动的序列,即系统从一个活动到另一个活动的控制流. 活动图的作用:描述 ...
随机推荐
- K2 BPM_如何将RPA的价值最大化?_全球领先的工作流引擎
自动化技术让企业能够更有效的利用资源,减少由于人为失误而造成的风险损失.随着科技的进步,实现自动化的途径变得更加多样化. 据Forrester预测,自动化技术将在2019年成为引领数字化转型的前沿技 ...
- iOS13新坑(转自Cocoachina)
1.用presentViewController而非navigator,但在iOS13里默认是可下拉折叠的对话框,这样带来一个界面排版的高度并不是屏幕高度,从而影响界面效果.可以将viewcontro ...
- 异步处理的框架Sanic的使用方法和小技巧
Sanic是异步处理的框架,运用Sanic可以开发快速异步响应的web程序.想必大家看到这个都会比较期待和兴奋. 那么如何使用Sanic来实现快速响应呢?我们先来看一看Sanic的基本介绍. Sani ...
- web开发:web前端初识
一.前端三剑客 二.编辑器 三.第一个页面 四.基本标签 五.标签分类 一.前端三剑客 html:完成页面架构的搭建 css:完成页面样式布局 js:完成页面功能 二.编辑器 插件: 插件管理器 ct ...
- springboot无法获取证书内容
最近项目里面在接第三方验证的时候,需要用到生成的公钥和私钥证书.在demo测试的时候,发现在resources里面直接建立一个key文件夹放入证书文件,然后使用文件方式去获取,大概代码如下: File ...
- 【CEOI1999】Sightseeing trip
Description https://loj.ac/problem/10072 Solution 现在我连普及组题都不会了?(bushi) 懒得讲了,看这吧.
- pip报错以及指向错误
在终端中输入无论是pip3 -V或是pip -V都指向python3 如下图所示: 然后在卸载或更新pip 时都出现了报错: 就是卸载也卸不了更新也更不了 解决报错: Traceback (most ...
- 在js中获取 input checkbox里选中的多个值
思路:利用name属性值获取checkbox对象,然后循环判断checked属性(true表示被选中,false表示未选中).下面进行实例演示: 1.html中展示: <input type=& ...
- localstorage ie11不支持
据我所知,localstorage在高版本的ie.谷歌.火狐下都是支持的,以前没在ie上看过,不清楚,今天我用ie11打开我vue编译后的html,竟然发现不支持localstorage了,用仿真的i ...
- 题解 【NOIP2003】神经网络
[NOIP2003]神经网络 Description 问题背景: 人工神经网络( Artificial Neural Network )是一种新兴的具有自我学习能力的计算系统,在模式识别.函数逼近及贷 ...