软考找老孙
软考找老孙guoruankao.com
付费第18讲 / 共72讲

【2027版】第18讲:【重要考点】UML 图实战(上)

更新于

【虚构案例声明】 本课程中的"美好家园"物业集团、"清华园社区"、"智慧邻里2.0"项目及全部人物均为教学所用的虚拟项目与虚构人物,详见第 01 讲首次声明。

一、上节作业讲评

1.1 王主任要的信息用哪几张图

上一讲的核心作业:需求评审会上王主任说用例图能看出谁能干什么,但看不出"业主报修以后到底经历了什么,等多久、卡在哪"。要你回答该用哪几种图、各表达什么、是静态还是动态、只能画一张选哪张。

先对照教材表 5-3。王主任问的是"经历了什么",这是行为,不是结构,要用动态图。三张图能答他:活动图,教材说它"将进程或其他计算结构展示为计算内部一步步的控制流和数据流""对系统的功能建模和业务流程建模特别重要",报修从提交到关闭一步步走,活动图画的就是这个;状态图,教材说它"描述一个状态机,由状态、转移、事件和活动组成",工单从待派单到已关闭的状态变化用它;顺序图,教材说它"强调消息的时间次序",业主、客服、维修工之间谁先给谁发消息用它。三张都是动态图,教材原话是"专注于系统的动态视图"。

"等多久"这个信息,三张图里只有定时图能直接表达,它"强调消息跨越不同对象或参与者的实际时间"。但给业委会看定时图太技术,实际做法是在活动图的每个活动旁标注服务级别,"受理 2 小时内、维修 24 小时内",第 11 讲定的服务级别就贴在图上。

只能画一张,选活动图。理由有三条:王主任是业委会主任,他关心的是流程不是对象;活动图"对业务流程建模特别重要",是教材给它的定位;活动图可以用泳道把业主、客服、维修工分开,"卡在哪"一眼看出卡在哪条泳道。

这道作业的规律是:先判断对方要看的是结构还是行为,结构用静态图,行为用动态图;再在同类图里按"教材一句话"里的关键词选。本讲讲四张静态图,下一讲讲动态图,王主任那张活动图下一讲画出来。

二、四张静态图先画骨架:本讲目标

2.1 为什么先学静态图

教材十四种图,我按静态和动态分两讲。静态图画的是"系统由什么组成、它们怎么连",动态图画的是"它们怎么互动"。先画静态,因为动态图里的对象和消息都来自静态图里的类,没有类图,顺序图上的对象不知道从哪来。

高项考图有两种方式。综合知识给一张图问是什么图、图上是什么关系,或者给一段描述问该用什么图,2015 到 2019 年几乎每年一到两道;案例和论文不要求画图,但要求你能用文字把模型说清楚,"识别出七类参与者和八个用例"这种话在论文里就是模型。所以本讲的目标不是把你训练成画图员,是让你看到图能认、说到模型能写。

本讲要拿下三件事:

第一,用例图的四种元素和参与者与用例、用例与用例的关系,能看图判断关系类型。

第二,类图的三格和教材表 5-5 的六种关系,能看图判断是关联、依赖、泛化、聚合、组合还是实现,能分清聚合和组合。

第三,对象图和包图的定位,以及机考环境下怎么用图:综合知识识图,案例论文用文字描述。

2.2 本讲任务地图

任务 教材位置 考试形态 项目落点
用例图元素与关系 表 5-3、表 5-4 识图判关系、哪个图描述需求 报修模块用例图
类图三格与六种关系 表 5-3、表 5-5 识图判关系、聚合组合辨析、类图画错处 报修模块领域模型
对象图 表 5-3 与类图的区别 一条工单的快照
包图 表 5-2、表 5-3 包是唯一的分组事物 二期平台模型分包
机考用图 机考现实 识图与文字描述 论文里的模型段

三、核心内容精讲:用例图

3.1 参与者、用例、边界与关系

教材口径:用例图描述一组用例、参与者及它们之间的关系。用例图给出系统的静态用例视图,这些图在对系统的行为进行组织和建模时是非常重要的。

注意教材的措辞,用例图是"静态用例视图",虽然它描述的是系统行为,但图本身是静态的,它画的是"有哪些用例、谁参与",不画执行顺序。这是判断题陷阱之一。

用例图有四种元素,通用画法如下(画法是统一建模语言的通用约定,教材只给定义不给画法):

参与者,画成小人,名字写在下面。教材表 5-4 说参与者"不仅可以由人承担,还可以是其他系统和硬件设备,甚至是系统时钟",并且"一定在系统之外,不是系统的一部分"。所以"主数据服务"和"系统时钟"也画成小人,很多初学者觉得别扭,但这是规矩。

用例,画成椭圆,名字写在里面,用动宾短语,"提交报修""派单"。

系统边界,画成一个大矩形,用例在里面,参与者在外面。边界画错是最常见的错误:把客服画进边界里,等于说客服是系统的一部分。

关系,四种。参与者和用例之间是关联,画实线;用例和用例之间是包含、扩展、泛化三种,第 17 讲讲过定义,画法是:包含画虚线箭头从基本用例指向被包含的抽象用例,箭头上标注"包含";扩展画虚线箭头从扩展用例指向基本用例,标注"扩展";泛化画实线空心三角箭头从子用例指向父用例。参与者之间也可以有泛化,"值班客服"泛化自"客服"。

包含和扩展的箭头方向相反,这是识图题的考点。记法:包含是"基本用例需要抽象用例",箭头从需要的一方指向被需要的一方;扩展是"扩展用例附着在基本用例上",箭头从附着的一方指向被附着的一方。2017 年上半年第 27 题那张图,取款指向识别客户和验证账号,是包含。2019 年上半年第 25 题问执行者与用例之间的关系,答案是关联,不是包含也不是扩展。

3.2 用例图实战:报修模块

报修模块用例图

这张图按第 17 讲的用例模型画:七个参与者,业主、客服、维修工、李经理、张主管在左边,主数据服务和系统时钟在右边;八个用例在边界里;"验证业主身份"是被"提交报修"和"催单"包含的抽象用例;"转外包派单"扩展自"派单";"电话报修"和"手机报修"泛化为"提交报修"。

看这张图时问自己三个问题,这三个问题也是考试识图的套路:第一,边界里有没有不该在里面的东西,客服在外面对不对?对,客服是用户不是系统。第二,虚线箭头的方向说明它是包含还是扩展?"提交报修"指向"验证业主身份",包含;"转外包派单"指向"派单",扩展。第三,谁和谁之间是实线?只有参与者和用例之间才是实线关联。

以上为部分预览,完整内容请登录后查看
微信扫码登录

登录查看完整内容

本讲属于"高项精品图文课程"课程内容。微信扫码登录后,系统会自动识别你的课程权限并直接返回本页。

使用微信扫描二维码,授权后自动登录并返回本页

二维码未显示?点此打开
🎬

本讲配套视频版

图文不够直观时看视频, 老孙亲讲讲透
高项精品视频课程

【2027版】第18讲:UML静态图实战

点击跳转 →

相关推荐

继续深入学习「高项精品图文课程」其他课时

回到顶部咨询