文章目录
UML,表面上是一种以图来展示的语言,但其本质是一种看待事物的思想和角度。通过UML,我们能够拥有一个抓手,快速去挖掘到事物背后的属性、特征和行为。
它是用一套规范的可视化图形,及建模方法,来描述软件系统的分析、设计等各个阶段,最终形成可视化、文档化的产出。
一、用例图
补充:MIS类型系统常见操作:”四轮马车“(CRUD增删改查)
构成
理解:用例图其实就是展示了一个外部用户能够观察到的系统功能模型图。(帮助开发团队以一种可视化的方式理解系统的功能需求)
1、参与者
用以表示和系统进行交互的参与者就角色,不一定是人也可以是物或系统。
并且参与者不是指人或事物本身,而是表示人或事物当时所扮演的角色。
2、用例
用例就是外部可见的系统功能,对系统提供的服务进行描述。
3、边界
指系统和系统之间的界限。把系统边界以外的同系统相关联的其他部分称为系统环境。
参与者与用例的关系
1、关联
关联关系表示参与者与用例之间的通信,任何一方都可以发送或接受消息。
2、泛化
泛化关系表示的是继承关系(箭头指向父类用例)
3、包含
一种子功能,每次都要执行。
包含关系是把一个较复杂用例所表示的功能分解成较小的步骤。
4、扩展
像是一个if语句。有时会发生的交互。
扩展关系也是用例之间的关系,指在一个基础用例可能有的扩展的用例。比如登录用例有扩展注册用例。因为若已经注册过,则直接登录;若没有,则跳转到注册页面。
扩展关系箭头指向是由扩展用例指向基础用例。
注意:
- 用例需要以动宾的方式来表达。
- 用例表比较约定俗成,需要的时候看P113页和P122页。
- 用例图需要讲清楚用例所涉及的业务概念,业务规则
- 用例的目标,通过用例要达到什么效果
- 该用例的前置条件
- 必须考虑的特殊情况
案例
二、时序图
产品经理_时序图
通过描述对象之间发送信息的时间顺序显示多个对象之间的动态动作。
展示对象之间的交互的顺序。
时序图,与泳道活动图类似。不同的是:时序图更强调对象在交互过程中消息事件的发生顺序。
有时为了了解系统性能,或优化体验,要统计某些交互的时长,用时序图,就很方便定义和描述。
构成
时序图是一个二维图,横轴表示对象,纵轴表示时间,消息在各对象之间横向传递,依照时间顺序纵向排列。
1、角色
系统角色,可以是人,及其其他的系统或者子系统。
2、对象
对象代表时序图中的对象在交互中所扮演的角色。
对象有三种命名方式:
- 对象名和类名
- 匿名对象(只显示类名,不显示对象名)
- 只显示对象名,不显示类名
3、生命线
在时序图里表示从对象图标向下延伸的一条虚线,表示对象存在的时间。
4、控制焦点
控制焦点是时序图中表示时间段的符号,在这个 时间段内对象将执行相应的操作,用小矩形表示
5、消息
消息一般分为同步消息,异步消息和我返回消息,自关联消息。
消息种类:
自关联消息
用来描述对象内部函数的互相调用。
表示方法的自身调用或者一个对象内的一个方法调用另外一个方法。
6、组合片段
- if else
- loop
- opt
- par(并行)
案例
三、类图
1、连接关系
- 泛化关系为继承关系
- 聚合关系理解为包含关系
- 类图从左往右和从右往左读,都要读为1对()
- 进行需求分析时,无论是私有属性还是公有属性,都标记为+即可,无需添加操作(函数)项。
- 直接关联关系,如下图所示,表示A类中成员变量有B类的引用
- 注意:可以用抽象类令逻辑更完整。
- 树形结构可以用递归实现(自己包含自己)
- 注意,试着找出两个类的关联类(三角结构)
四、活动图
4.1 基础
活动图的方框内部是动作
流程中一般只有一个开始,会有一个或多个结束。箭头表示流程的走向,一个圆角矩形表示一个活动,活动可以理解为流程中的一个步骤,需要用主动宾的形式来表达。
- 上面的菱形叫做判断,下面的菱形叫做合并
- 用中括号括起来的内容叫做监护
4.2 并行
- 并行活动用粗短棒
- 第一个粗短棒“单入多出”,叫分叉,表示从这里要并行开展多个活动
- 第二个”多入单出“,叫汇合,表示必须多个活动都完成,才能开展下一步。
- 分叉汇合需成对出现。
4.3 对象
- 引入对象矩形框后可以方便地看到输入输出
- 工作产品1、2是活动A的输入,活动B的输出是工作产品3、4、5,其中,5是活动C的输入
五、泳道图
泳道图一般是会按照角色进行分区,那么在画和浏览时都非常清晰。如下图:
泳道图多角色时,优先考虑。
六、状态机图
== 围绕某个物品的状态来展开流程,如充值、请假==
状态图,用于描述产品为完成某个目标,某个对象的状态变化和流转过程。状态,是对象执行或等待某个事件的条件。
常见的,有电商的订单状态、快递物流状态、支付状态等。
- 一般用形容词或名词表示某种状态
- 箭头文字是用来说明发生了什么事情导致状态变化。