UML2.0最新版入门图解
一、UML概述
UML(UnifiedModelingLanguage)统一建模语言,是面向对象软件的标准化建模语言。由于面向对象软件开发需要经过OOA(面向对象分析),OOD(面向对象设计),OOP(面向对象编程)三个阶段,每个阶段都需要统一的符号设计描述和交流,而UML就是这种统一的符号表示。
本文主要讲述UML2.0(最新版本)的各种图的定义及用法,UML2.0一共包括13种图形(大致分成静态图和动态图两类):活动图,类图,通信图(对应UML1.x的协作图),组件图,复合结构图(UML2.0新增),部署图,交互概观图(UML2.0新增),对象图,包图,顺序图,状态机图,定时图(UML2.0新增),用例图,如下图所示:

其中,最常用的UML图包括:用例图,类图,组件图,部署图,顺序图,活动图,状态机图等。
二、用例图
用例图主要应用于系统需求分析阶段,从用户角度描述系统的需求功能,方便与客户交流,保证需求的唯一性。
用例图包括用例、角色、用例和角色的关系,其中,用例以一个椭圆表示,用例的名称放在椭圆得中心或下面;角色以一个人形符号表示与系统交互的实体;用例和角色的关系用线段来表示。
用例图所表示的要么是整个系统的全部用例,要么是某一具体功能的一组用例。下图是一个简单的用户管理模块的部分用例示意图:

从用例图中可以很容易看出,普通用户有登录、修改密码、查看个人信息的功能;管理员功能包括:新增用户、查看用户信息、修改用户信息、删除用户、修改密码。
三、类图
类图表示系统中有哪些实体及其它们之间的关系,用于系统设计阶段。
类图用三个矩形表示,最上面的部分标识类的名称;中间的部分标识类的属性;最下面的部分标识类的方法,如下图所示:

类之间的基本关系:关联(包含聚合和组合)、泛化(继承)、实现、依赖
♣ 关联
关联是一种拥有的关系,具有方向性,如果一个类单方向的访问另一个类,则称为单向关联(用一个箭头的实线表示);如果两个类对象可以互相访问,则称为双向关联(用两个箭头或不用箭头的实线表示);一个对象能访问关联对象的数目叫做“多重性”。
【箭头及指向】:带普通箭头的实线,指向被拥有者。
或不用箭头的实线。
♣ 聚合
整体与部分的关系,当某个实体聚合成另一个实体时,该实体还可以是另一个实体的部分,例如,学生既可以是足球俱乐部的成员,也可以是羽毛球俱乐部的成员。
【箭头及指向】:带空心菱形的实线,菱形指向整体。
♣ 组合
整体与部分的关系,组合比聚合更加严格,当某个实体组合成另一个实体时,该实体还不可以是另一个实体的部分,例如手臂和人之间存在的是组合关系。
【箭头及指向】:带实心菱形的实线,菱形指向整体。
♣ 泛化
泛化与继承是同一个概念。
【箭头及指向】:带三角箭头的实线,箭头指向父类。
♣ 实现
一种类与接口的关系。
【箭头及指向】:带三角箭头的虚线,箭头指向父接口。
♣ 依赖
如果一个类的改动会影响到另一个类,则两个类之间存在依赖关系,一般而言,依赖是单向的。
【箭头及指向】:带普通箭头的虚线,箭头指向被依赖者。
下面用一张图涵盖类图中类的基本关系:

四、组件图
组件图用来表示组件与组件之间、类或接口与组件之间的关系图,使用
符号表示组件,使用圆圈表示接口。
组件除了可以对外提供服务接口外,组件还可能依赖某个接口,下图显示包含组件关系的组件图:

其中,Oder组件提供了OrderQuery接口,Order组件需要依赖于Customer组件提供的CustomerLookup接口和Product组件提供的ProductQuery接口。
五、部署图
部署图包括了组件图中的符号,另外还增加了节点的概念,节点主要包括处理器(如计算机主机)和设备(如打印机),UML图中使用三维立方体表示节点,节点的名称位于立方体的顶部。如下图所示:

六、顺序图
顺序图也叫时序图,描述对象之间消息的发送顺序,强调时间顺序。用箭头表示消息、用竖虚线表示对象生命线。如下图所示:

如需转载,请注明作者(冰湖一角)和链接 https://www.cnblogs.com/bingyimeiling/p/10235223.html
欢迎关注微信公众号【Java典籍】,收看更多Java技术干货!
▼微信扫一扫下图↓↓↓二维码关注

UML2.0最新版入门图解的更多相关文章
- 探索Antlr(Antlr 3.0更新版)
版权声明:转载时请以超链接形式标明文章原始出处和作者信息及本声明 http://www.blogbus.com/dreamhead-logs/10756716.html <探索Antlr> ...
- PHPCMS9.6.0最新版SQL注入和前台GETSHELL漏洞分析 (实验新课)
PHPCMS9.6.0最新版中,由于/modules/attachment/attachments.php的过滤函数的缺陷导致了可以绕过它的过滤机制形成SQL注入漏洞,可导致数据库中数据泄漏. 而且在 ...
- SiteServer CMS 5.0 源码入门
开发者中心 STL 语言 文 档 博 客 论 坛 Github 二次开发 提示:文档中心正在完善中,我们将不断发布新文档,敬请期待... 新手入门 SiteServer CMS 能做什么 Site ...
- SVN入门图解教程(超详细)
SVN入门图解教程(超详细) 一.总结 一句话总结: 二.SVN入门教程 1. 什么是SVN SVN全名Subversion,即版本控制系统.SVN与CVS一样,是一个跨平台的软件,支持大多数常见的操 ...
- MySQL5.0版本的安装图解教程
MySQL5.0版本的安装图解教程是给新手学习的,当前mysql5.0.96是最新的稳定版本. mysql 下载地址 http://www.jb51.net/softs/2193.html 下面的是M ...
- C#创建Windows服务入门图解(VS2010)
C#创建Windows服务入门图解(VS2010) Windows服务大家都知道,比如Audio.Theme都是大家比较熟悉的服务,他们可以设为自动启动的,并且在注册表的开机自启动项里是没有痕迹的.所 ...
- Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据
Asp.Net MVC4.0 官方教程 入门指南之五--控制器访问模型数据 在这一节中,你将新创建一个新的 MoviesController类,并编写代码,实现获取影片数据和使用视图模板在浏览器中展现 ...
- Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型
Asp.Net MVC4.0 官方教程 入门指南之四--添加一个模型 在这一节中,你将添加用于管理数据库中电影的类.这些类是ASP.NET MVC应用程序的模型部分. 你将使用.NET Framewo ...
- Asp.Net MVC4.0 官方教程 入门指南之三--添加一个视图
Asp.Net MVC4.0 官方教程 入门指南之三--添加一个视图 在本节中,您需要修改HelloWorldController类,从而使用视图模板文件,干净优雅的封装生成返回到客户端浏览器HTML ...
随机推荐
- 《Java从入门到精通》学习总结3
1. 3种构成重载的条件: 参数类型不同.参数个数不同.参数顺序不同 只有返回值类型不同并不足以区分两个方法的重载. 2. import关键字除了导入包之外,还可以导入静态成员,这是JDK 5.0以上 ...
- 安装使用aria2下载百度网盘内容(转)
原文地址:https://blog.csdn.net/wudi1107/article/details/80728891 安装使用aria2下载百度网盘内容 目前在Linux中没有好用的百度网盘客户端 ...
- setTimeout与Promise的区别
1,4,3,2 Promise是一个micro task 主线程是一个task micro task queue会在task后面执行 setTimeout返回的函数是一个新的task macro ...
- JavaSE基础知识(5)—面向对象(5.7 final关键字)
一.说明 final属于一种修饰符,可以用于修饰类和属性.方法.局部变量 二.特点 1.修饰类 该类不能被继承,如String.Integer等 2.修饰方法 该方法不能被重写 3.修饰变量(属性和局 ...
- (C#)日志接口请求响应时间
日志接口响应时间,记录接口请求信息,响应结果以及响应时间等.可以清楚的分析和了解接口状态. 如果一个一个地在接口下面做日志,那不是我们想要的结果.所以,我们选择做一个特性来控制接口要不要记录请求响应日 ...
- iOS.mach_msg_trap()
mach_msg_trap() 1. mach_msg() mach_msg_trap() " > The Debugger window shows the calling stac ...
- swift 实现拍照 选择相册
//点击按钮的方法 func photos() { self.showBottomAlert() } /// 屏幕底部弹出的Alert func showBottomAlert(){ let aler ...
- 《笨方法学Python》加分题20
加分练习通读脚本,在每一行之前加注解,以理解脚本里发生的事情.每次 print_a_line 运行时,你都传递了一个叫 current_line 的变量,在每次调用时,打印出 current_line ...
- AX2009 批处理作业中使用多线程---独立任务模式
每个工单独立一个任务. Class /* 独立任务模式 */ class DemoBatchIndividualTasks extends RunBaseBatch { str 20 SalesOrd ...
- 9 个 Yoinkmac使用小技巧,提升你的 Mac 文档解决效率
Yoinkmac是一个工具类应用程序,用于在苹果电脑上进行临时文档暂存,就像一个“中转站”将文件从一个窗口轻松移动到另一个窗口.类似的软件包括苹果电脑上的Dropshelf和Unclutter,但相比 ...