☰
下午题_试题三
2026/10/12 1:53:42 网站建设 项目流程

一.题型

UML

常考内容:类图、用例图。


常见题型:

  • 第一问:补全用例图的参与者、用例
  • 第二问:补充类图缺少的类名
  • 第三问:扩展

二.基础知识讲解

1.UML的四种关系

①依赖

举例:

这个读作A依赖B,说白了就是A用到了B,而B没用到A。

如此图,此时表示“动物”依赖“空气”和“水”

②关联

这根横线就表示“关联”。当两个名词之间,有一种说不清、冥冥之中的关系时,就是关联。

关联(Association)—— 普通实线

  • 长相:一条普通的实线(有时会带箭头表示方向)。
  • 含义:代表两个类之间有一种结构化的连接。简单理解就是“我有你的联系方式”或者“我们认识”。
  • 比如:【学生】和【班级】之间有一条线,表示学生属于某个班级。

举例:下图怎么读?

思想:一方取1,另一方读横线上的值。

答案:这个关联,读作“1个雇主,对应0~多个员工;一个员工,对应0~1个雇主”。

聚集(组合、聚合)

讲一下“聚集”:

聚集分成两种:

  • 聚合:部分和整体的生命周期不一致(整体消失了,部分仍然存在,部分可以脱离整体存在)

注意:此时这个菱形是空心的。

举例:

当毕业了,班级就不存在了,但是学生仍然存在,并且可以各奔东西。

当公司破产,公司就不存在了,但是员工仍然存在,并且可以继续找下一份工作。

  • 组合:部分和整体的生命周期一致(整体消失了,部分也消失,部分不可以脱离整体存在)

注意:此时这个菱形是实心的。

举例:

此时人体消亡了,那么大脑也就不存在了,因为二者共存亡。

③泛化

其实很简单,这个和继承是相反的关系。

举例:

可见此时箭头方是父类,另一方是子类。

此时有两种读法:

  • “学生和教师”继承“人”
  • “人”泛化成“学生和教师”

④实现

这一块了解了解即可。

2.UML类图

注意:属性和方法前,可用四种修饰符,分别用四种符号表示:

  • + 表示public(公共的)
  • - 表示private(私有的)
  • # 表示protected(受保护的)
  • ~ 表示package(包的)

3.用例图(重要)

  • 用例:说白了就是系统的功能
  • 参与者:用户

①包含关系(被指向的用例先发生)

此时读作“A包含B”。A就是基本用例,B是被包含用例。

说白了就是,B是A的一部分,A执行的时候肯定会执行B。


说白了,一定要B先执行完,才能执行A。比如A是查看个人信息,B是登录系统。我们肯定要先登录系统,才能查看个人信息。不然你都没登录,哪来的账号?哪来的个人信息?就是这个意思。

举例1:

如图,能获得两点信息:

  • 图书管理员,在删除图书时,一定要先查询图书。(这很合理,你都不知道图书在哪,你怎么能找到删除按钮?所以删除前,肯定要先查询)
  • 图书管理员,在修改图书时,一定要先查询图书。(这也很合理,你都不知道图书在哪,你怎么能找到修改按钮呢?所以修改前,肯定要先查询)

举例2:

如图,能获得两点信息:

  • 用户,在查看订单时,肯定要先登录。(你都不登录,没有账号,哪来的订单?更别说查看订单了。)
  • 用户,在修改收货地址时,肯定要先登录。(你都不登录,没有账号,哪来的收货地址?更别说修改收货地址了)

②扩展关系(被指向的用例先发生)

此时执行基本用例时,可能会因为发生特殊情况(非主观)或主观选择(主观),从而执行扩展用例。


此时很明显,由于扩展用例是可能发生,说白了就是也可能不发生。

举例1:非主观

当学生去图书馆还书,如果突然发现超出了还书时间,那就需要罚款了。如果没超出还书时间,那就不用罚款了。因此“罚款”这个扩展用例可能不发生。

当学生去食堂刷饭卡,可能会产生余额不足的情况。

学生在购物时,可能会产生库存不足的情况。

举例2:主观选择

当学生去教务系统查看课表以后,可以主观选择进行导出EXCEL或者打印操作。当然,查看完可以直接退出,哪个扩展用例都不执行。因此,可见,扩展用例可以不发生。

注意:这里的扩展用例就是导出excel和打印。

③泛化关系

在用例图中,泛化关系表现为:

  • 参与者 与 参与者之间
  • 用例 与 用例之间

举例1:参与者 与 参与者之间

此时用户是父类,而商家、会员是子类。

所以很明显,泛化关系是从子类指向父类。说白了,泛化和继承是相反的过程。

举例2:用例 与 用例之间

登录的方式有很多种,具体包括QQ登录、微信登录、手机号登录、邮箱登录。

付款的方式有很多种,具体包括支付宝付款、银行卡付款、余额付款、微信付款。

上述也是泛化的关系。

三.软考真题

1.2021年下半年

题目

问题1

做题技巧:盯着动词看就行,体会动词之间的发生的时间顺序、逻辑顺序。

注意:这个顺序要看好了。由于“编写迷宫文件”和“导入迷宫文件”靠近“建立迷宫”,所以我们就需要把二者放到U1和U2的位置,而不能放到U3(很多考生发现题目说明中,“设置计时器”最早出现,可能就放到U1了,这样是不对的,因为“设置计时器”很明显是“操作机器人”的相关用例,所以要挨着它,因此要放到U3中)。

而且这个用例顺序,会直接影响到第二问作答,所以要仔细一点。

问题2

注意:这道题是文字说明,可以不用画图。但是为了方便看,我们可以简单画一下:

因此第二问答案为:

  • U1、U2和建立迷宫是泛化关系,即:建立迷宫用例泛化U1、U2用例。
  • U3和操作机器人是包含关系,即:操作机器人用例包含U3用例。

问题3

技巧:题目中带英文翻译的,就是我们要找的类名。(固定套路)


思路:“机器人”是“小精灵”、“幽灵”的父类,这是一套父子关系;“传感器”是“前向传感器”、“近距离传感器”的父类,这又是一套父子关系。

根据上述,我们可以做出如下判断:

此时图中,能明显根据泛化的箭头,判断C1、C5都是父类,但是谁是机器人、谁是传感器呢?再结合C1、C5二者之间的组合关系的箭头,能发现很明显是传感器组合到机器人。因此C5是传感器、C1是机器人。


而机器人身上,不仅有传感器,而且还有计时器,所以C2是计时器。到此为止,就还剩一个迷宫。故C8是迷宫。


故本题答案为:

  • C1:机器人(Robos)
  • C2:计时器(Timer)
  • C3:小精灵(PacMan)
  • C4:幽灵(Ghost)
  • C5:传感器(Sensor)
  • C6:前向传感器(FrontSensor)
  • C7:近距离传感器(ProxISensor)
  • C8:回廊式迷宫(Maze)

(C3、C4可以互换,C6、C7可以互换)

2.2021年上半年

题目

问题1

根据题目描述,能先找出A1~A3这三个参与者。


我们根据这个题目的段落设置,就能发现这个“确认处方”99%是U1这个用例。


根据“确认处方”所在的自然段,我们发现了两对父、子关系的用例:即①取药方式②支付

我们此时应该选择“支付”。因为如果选“取药方式”,它的泛化用例有一个“送货上门”,而这个“送货上门”已经在图中画出了,这是一种排除思路。另一种排除思路是,“送货上门”应该是快递人员的用例,也不能放到患者的下面。

故U2是“支付”,U3是“微信支付”,U4是“支付宝支付”


综上,答案为:
  • A1:患者
  • A2:快递人员
  • A3:药师
  • U1:确认处方
  • U2:支付
  • U3:微信支付
  • U4:支付宝支付

(U3、U4可以互换)

问题2

突破口是C1、C2、C3,其中C1属于患者的一部分,且有两个子类。一看就是“支付方式”,因为问题1中已经得知U2是支付方式,所以C1就是支付方式。(主要是因为,另一个父、子关系是:“取药方式”是父亲,“自行到店取药”和“送货上门”是儿子,但是“送货上门”和患者没啥关系啊。所以此处C1只能是支付方式)。

C4一定是“处方”,因为这是抓药APP,你咋能没处方?稍微一想也知道。

C5是“药品”,因为处方依赖药品。就像鱼依赖空气一样。


综上,答案为:

  • C1:支付方式
  • C2:微信支付
  • C3:支付宝支付
  • C4:处方
  • C5:药品

(C2、C3可以互换)

问题3

3.2020年下半年

题目

问题1

这题太简单,就不解释了。

  • A1:房产经纪
  • A2:系统管理员
  • U1:审批授权
  • U2:修改房产信息
  • U3:删除房产信息
  • (a):《include》
  • (b):《extend》

问题2

先找出带英文的类:

注意:这道题的C5、C6的箭头应该指向用户。(说白了就是题出错了,但是仍然能通过排除法写这道题)。

  • C1:Property(房产)
  • C2:House(住宅)
  • C3:Cando(公寓)
  • C4:User(用户)
  • C5:Manager(系统管理员)
  • C6:Agent(房产经纪)

(C2、C3可以互换)

问题3

答案:房产经纪负责每套房产的起始时间、终止时间。

4.2019下半年

题目

问题1

  • A1:接待员
  • A2:医护人员
  • A3:办公人员
  • U1:记录病人基本信息(Maintain patient info)
  • U2:记录就诊信息(Record office visit info)
  • U3:打印发票(Print invoices)

问题2(泛化,和继承一个意思,互为相反的动作)

突破口:泛化关系(即与继承互逆,子类继承父类、父类泛化为子类)

其他信息,可锁定剩余两个类:

综上:

  • C1:给病人的发票
  • C2:给医保机构的发票
  • C3:发票
  • C4:治疗
  • C5:就诊

问题3(根据题目描述,给出实体类属性)

这题照抄题干描述就行了,都给出了:

  • C4:治疗项目名称、治疗项目描述、治疗的牙齿、费用
  • C5:就诊时间、就诊费用、支付代码、病人支付费用、医保支付费用
  • Patient:病人姓名、身份证号、出生日期、性别、首次就诊时间、最后一次就诊时间
  • DentalStaff:姓名、职位、身份证号、家庭住址、联系电话

5.2019上半年

题目

问题1(extends:被指向的用例发生在前)

  • A1:采购人员(Buyer)
  • A2:仓库管理员(Warehouse man)
  • A3:派送人员(Dispatcher)
  • U1:注册(Register detail)
  • U2:打印订单(Print order)
  • U3:在线购买书籍(Buy books)

注意:上图画错了,被指向的用例先发生(也就是被指向的用例是基础用例),因此U3应该是购买书籍、U2才是可能进一步拓展的“打印订单”

问题2(用例描述:基本事件流、备选事件流)

  • 我的答案:

用户在系统在线购买书籍(基本事件流)时,如果某种书籍没库存则无法查看该书籍信息,如果某种书籍有库存但购买数量超过库存量则提示库存不足,如果某种书籍有库存且购买数量小于库存量则进入验证、验证正确后自动生成订单。最后如果用户有需要则打印订单。

  • 标准答案:

问题3(是否泛化,取决于出题人的心情)

  • C1:Customer
  • C2:Order
  • C3:Books

6.2018下半年

题目

问题1(题目理解)

  • C1:SNSGroup
  • C2:SNSUser
  • C3:SNSAdmin

问题2(观察者模式)

问题3(文字描述新需求的实现方式)

7.2018上半年

题目

问题1

问题2

问题3

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询