作者:mobiledu2402851377 | 来源:互联网 | 2023-10-13 06:33
1.前言
软件开发里,设计先行的理念非常重要,我自己也很菜,这也是听大佬们说的,实测确实可以提高效率,所以在正式进入Java之前,先学学UML图,至少把类图画清楚。本文肯定不可能详细,不懂的位置请自行百度。
2.概述
UML目前是2.0版本,总共13种图,其中包图也许可以被忽略,另外三个新增模型是啥玩意我也不知道,结合实际开发,类图和时序图相对来说比较重要。结合书本,后期会补画7个图。
13种图分为静态图和动态图。
静态图包括:类图,对象图,用例图,组件图,部署图,包图,复合结构图
动态图包括:时序图(顺序图),通信图(协作图),状态机图,活动图,定时图,交互概观图
工具是Enterprise Architect,自行百度破解版和教程(比较新一点版本的教程很少)
3.画图
--------------------------------------------静态图---------------------------------------------
3.1 用例图
用例图描述系统(完整程序)的各个功能,每个用例代表一个功能模块。主要目的就是帮助开发人员以一种可视化的方式理解系统的需求功能,对具体实现不做任何说明。
组成:用例,角色,角色-用例关系,用例-用例关系。
图:
3.2 类图
类图表示系统中应该包含哪些实体,各实体之间的关系。其中关系主要是三种:关联(组合,聚合),泛化(继承),依赖。
组成:实体(属性,方法),实体-实体关系
图:
3.3 组件图
组件图提供系统的物理视图,目的是显示系统中软件对其他软件组件(如各种库函数)的依赖关系。
组成:组件,接口,端口。组件图中无法描述形状的就是组件,实心圆就是接口,边界上的矩形就是端口(Port)
图
3.4 部署图
部署图用于描述软件系统如何部署到硬件环境中,用途是显示软件系统不同的组件在何处物理运行,以及它们之间的通信。
组成:组件图组成部分,节点。三维立方体表示节点。
节点是各种计算机资源的通用名称,主要包括处理器(具有计算能力,能够执行程序)和设备(不具有计算能力)两类。
图
--------------------------------------------动态图---------------------------------------------
3.5 时序图
时序图表示不同对象之间的调用关系,同时还可以显示对不用对象的不同调用。描述了对象之间的交互,重点在于描述“消息”及其时间顺序。
垂直维度和水平维度
图
总结:绘制时序图主要是帮助开发者对某个用例的内部执行清晰化,当需要考察某个用例内部对象行为时,使用时序图。时序图擅长表现出对象之间的协作顺序,不擅长表现行为的精准定义。(摘自《疯狂JAVA》)(具体看图,暂无)
3.6 活动图
用于描述用例内部的活动或者方法的流程,如果去掉活动图中的并行活动描述(并发),它就变成流程图。
活动图和状态机图都被称为演化图,演化图有5个要素(重要组成部分):
- 状态 2.事件 3.动作 4.活动 5.条件
对于引起状态改变的事件主要有两类:内部事件,调用;外部事件,键鼠操作。
圆角矩形表示活动,带箭头实线表示事件,菱形框表示条件
图
总结:以活动为中心,只有一个开始活动,可以有多个结束活动。具体看图(暂无)
3.7 状态机图
状态机表示某个对象所处的不同状态和该类的状态信息转换信息。只有在系统活动期间具有三个以上的潜在状态的某个对象才需要考虑使用状态机图进行描述。
结合演化图,具体有5个基本元素(元素要素别深究,没意义,都是代表组成部分)
- 初始状态 实心圆
- 状态之间的转换 带箭头的线段
- 状态 圆角矩形
- 判断点 空心圆
- 一个或多个终止点 包含实心圆的圆
图
总结:只描述单个对象,只有一个初始状态,可以有多个终结状态。状态要表示对象的关键快照(快照意思就是比较稳定的一个瞬间记录),有重要意义。事件方法要明确。状态机图擅长表现单个对象的跨用例行为。
4.总结
图片暂无,学会用EA,有项目,再来补图。003写注释。