【虚构案例声明】 本课程中的"美好家园"物业集团、"清华园社区"、"智慧邻里2.0"项目及全部人物均为教学所用的虚拟项目与虚构人物,详见第 01 讲首次声明。
一、上节作业讲评
1.1 三个人要的三张动态图
上一讲的核心作业:方姐交来"业主提交报修"的顺序图,五条生命线十二条消息,张主管说看不出哪一步慢,李经理说看不出出了错怎么办,王主任说还是想看流程。要你回答顺序图能答什么不能答什么、三个人各需要哪种图、活动图状态图顺序图各画什么给谁看。
先说顺序图的边界。教材定义:顺序图是一种交互图,"由一组对象或参与者以及它们之间可能发送的消息构成","强调消息的时间次序"。它能答的是"谁先给谁发什么消息",它不能答的是"每步花多长时间",那是定时图的事,教材说定时图"强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序";它也不擅长答"出错了怎么办",那是状态图的事,工单进入"异常"状态以后怎么转出来,状态图一眼看清。
再按人配图。张主管管运维,他要的是"哪一步慢",给他定时图,或者在顺序图上标注每条消息的服务级别时限,从"提交"到"推荐维修工"不超过十秒。李经理管经营,她要的是"出了错怎么办",给她状态图,工单从待派单到已关闭中间每个异常状态的出路:维修工不接单转回待派单、业主不满意转回维修中、超时上报主管。王主任管业委会,他要的是流程,给他活动图,用泳道把业主、客服、维修工分开,每条泳道里的活动就是"业主报修以后经历了什么"。
最后是三张图各画什么。顺序图画"业主提交报修"这一个用例内部的对象消息,给方姐团队开发用;状态图画"工单"这一个对象的一生,给李经理和客服主管定异常处理规则用;活动图画"报修"这一整条业务流程,给王主任和业委会看。同一件事三张图,三个视角,这就是教材说的"不同类型的系统需要不同的架构"在图上的版本:不同的人需要不同的图。
这道作业的判断方法就是上一讲 1.1 节说的:先分结构还是行为,再在同类图里按教材一句话里的关键词选。三张动态图的关键词分别是:顺序图"时间次序",状态图"状态、转移、事件和活动",活动图"控制流和数据流""业务流程建模"。
二、工单的一生:本讲目标
2.1 为什么动态图更难也更值钱
静态图画组成,学起来像认字;动态图画互动,学起来像写句子。难在哪?难在同一个业务可以用三四种动态图画,你要知道每种图强调什么,才能选对。值钱在哪?案例分析和论文里,考官最想看到的不是你有多少个类,而是你能不能把一个业务的来龙去脉讲清楚,动态图就是讲来龙去脉的工具。
教材十四种图里动态的六种:顺序图、通信图、定时图、交互概览图这四种交互图,加状态图和活动图。真题对动态图的考法有三种:给图问是什么图(2015 年下半年第 27 题、2018 年下半年第 27 题考状态图),问哪个属于交互图(2017 年下半年第 26 题),问图上元素的规矩(2019 年上半年第 26 题考顺序图上对象的排列顺序),以及和别的流程图的区别(2020 年下半年第 58 题考活动图和业务流程图)。
本讲要拿下三件事:
第一,四种交互图各自强调什么,能在四个里面选对;顺序图的生命线、消息和对象排列规矩。
第二,状态图的四要素和活动图的元素、泳道,能看图判断是状态图还是活动图,能说清活动图和业务流程图、数据流图的区别。
第三,把报修工单的一生画成三张图:业主提交报修的顺序图、工单的状态图、报修流程的活动图,并且知道每张图给谁看。
2.2 本讲任务地图
| 任务 | 教材位置 | 考试形态 | 项目落点 |
|---|---|---|---|
| 顺序图 | 表 5-3 | 对象排列顺序、强调时序 | 提交报修顺序图 |
| 通信图、定时图、交互概览图 | 表 5-3 | 哪个是交互图、各强调什么 | 定时图标服务级别 |
| 状态图 | 表 5-3 | 识图、四要素 | 工单状态图 |
| 活动图 | 表 5-3 | 业务流程建模、与业务流程图区别 | 报修流程活动图 |
| 十四种图总复习 | 表 5-3 | 分组、不存在的图 | 需求文档的图清单 |
2.3 静态图上的元素怎么进动态图
两讲之间有一条线要接上。上一讲的静态图给动态图提供了全部"演员":顺序图上的生命线是类图上的类的实例和用例图上的参与者;状态图的主语是类图上的某一个类;活动图的泳道是用例图上的参与者。反过来,动态图也在检验静态图:画顺序图时发现某条消息没有对象能接,说明类图漏了一个类;画状态图时发现某个状态转移需要一个属性来判断,说明类图漏了一个属性;画活动图时发现某条泳道上什么活动都没有,说明这个参与者可能根本不该出现在用例图上。
教材在讲分析模型时把这条线说得很明白:"每一个用例对应一个类图,描述参与这个用例实现的所有概念类,而用例的实现主要通过交互图来表示","所有这些图的集合就构成了系统的分析模型"。用例是入口,类图是演员表,交互图是剧本。你在评审会上看方姐团队的图,就按这个顺序核对:先看用例图有没有这个用例,再看类图有没有这些演员,最后看顺序图的剧本有没有让每个演员都出场。
三、核心内容精讲:交互图
3.1 顺序图:生命线与消息的时间次序
教材口径:顺序图是一种交互图,交互图展现了一种交互,它由一组对象或参与者以及它们之间可能发送的消息构成。交互图专注于系统的动态视图。顺序图是强调消息的时间次序的交互图。
顺序图的通用画法:横向排对象,每个对象下面一条竖直的虚线叫生命线,时间从上往下流;对象之间的箭头是消息,实线箭头是同步调用,虚线箭头是返回;生命线上的细长矩形是激活期,表示对象在这段时间里在干活。
对象怎么排是考点。2019 年上半年第 26 题问顺序图中由左向右分层排列各个对象的正确方法,答案是"执行者角色、控制类、用户接口、业务层、后台数据库"。这个顺序的道理是:最左边是发起交互的参与者,然后是接收请求并协调的控制类,再是界面,再是业务处理,最右边是数据库。记法:"人、控、界、业、库",从发起到落地。