问题3
2019年上半年试题三
问题1
这里的U2和U3我写反了(注意这里的顺序是不可以互换的),犯的错误就是搞混淆了箭头指向的应该是基础用例(扩箭基),箭头尾部是扩展用例,所以U3应该是在线购买书籍,U2应该是打印订单。
问题2
问题3
这里的C2我一开始以为是书,但是看到那个聚合关系就知道不是书(聚合是部分和整体关系,并且部分消失整体不消失),这个类名跟顾客和订单书籍有关,并且还是订单书籍的父类,可以锁定到说明的(2)描述这个位置,然后根据经验,应该是顾客买书后生成一个订单,订单里有订单书籍,订单是整体,订单书籍是部分
2018年下半年试题三
问题1
问题2
图3-1采用了观察者模式,该模式的意图:定义对象间的一种一对多的依赖关当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新
该模式的适用场合:
1、:当一个抽象模型有两个方面,其中一个方面依赖于另一个方面,将这两者封装在独立的对象中以使它们可以各自独立的改变和复用。
2、当一个对象的改变需要同时改变其他对象,而不知道具体有多少对象有待改变时。
3、当一个对象必须通知其他对象,而它又不能假定其他对象是谁,即不希望这些对象是紧耦合的
问题3
(1)在SNSSubject 和 SNSObserver 之间增加继承关系;SNSObserver为基类SNSSubject为派生类。
(2)为类SNSGroup增加自关联(自己到自己的关联关系)。
2018年上半年试题三
问题1
这里A1和A2顺序可以互换,A3和A4顺序可以互换
问题2
问题3
2017年下半年试题三
问题1
这里的C1我以为是系统的用户,但是这个系统的用户和下面的用户是同一个意思,所以不行,这个没有给出,需要自拟,那就是找用户跟作者的共同父类是什么,这两个明显都是人的特殊情况,所以父类是人,即C1是Persion
问题2
这里C6(出版物)的下载次数属性很容易丢掉,所以要整个文章都看一下,有没有漏的
问题3
2017年上半年试题三(分界线)
问题1
这种题目从来没有做过,所以一开始做的一塌糊涂,有几个技巧如下
1、涉及到显示或者隐藏的表达显示的话那就是接口类(例如这里的C2就是隐藏的),因为接口类是用来跟用户交互的,所以如果系统显示什么东西给用户操纵,那就是接口类
2、涉及持久化存储的一般都是实体类,根据自己的感觉看起来像实体类的那还有看一下前后的话来确定是不是实体类,例如这题的C2看起来像实体类,但是结合下面一句发现是给用户进行选择的,所以是接口类
3、涉及到这个系统他要干点什么事,比如计算,发送什么给什么,这种动词加名词的一般是控制类
4、我是一开始就根据那个黑色下划线直接判断,其他的看都没看,这很容易错,要把每一句话都看完,甚至这句话的前后两句都要看
讲解地址:后续知识引入_哔哩哔哩_bilibili
问题2
这个题挺难的,我一开始能够指定X1-X3是收货地址、支付方式、邮箱地址这三个里面的,但是哪个对应的哪个我搞错了,表中有句“系统将以表格形式显示完整订单信息(C7),同时自动发送完整订单信息(C8)到会员预先配置的邮箱地址(C9)。”这句话我觉得就是应该是邮箱地址在X1或者X2,因为它跟订单有关系,但是这里有个词“自动发送”,所以这邮箱地址应该是跟订单没关系的,自然X3是邮箱地址,根据“若会员单击“修改付款”按钮,调用“修改付款”用例,可以新增并存储为默认支付方式(C12),回到步骤4;”
可以看出支付方式有很多种,这里不能根据经验来判断,要从说明中去找对应的依据来进行关系分判断,不然很容易搞错,这题目还是比较难,不好做
讲解地址:2017年上半年问题1_哔哩哔哩_bilibili
问题3
2016年下半年试题三
问题1
问题2
这里要根据说明来做题,我一开始是根据主要事件流做题的,所以做的一塌糊涂
讲解地址:2016年下半年问题1_哔哩哔哩_bilibili
问题3
这个C1是自动售货机我还真想不出来,根据聚合关系,直接去说明和主要事件流里找整体和部分关系,并且两个是相关联的(整体包含部分),就很容易找到“将硬币器中的硬币移走〈清空硬币器)
”和“自动售货机检查饮料储存仓中所选购的饮料是否足够;”这两句话,这就可以知道C2-C5是什么,然后C2和C3都是和C1聚合关系,并且C1是整体,那哪个东西里包含这两个东西呢?只有自动售货机包含。
讲解地址:2016年下半年问题2_哔哩哔哩_bilibili