《软件方法》第6章自测题1
7 [ 单选题 ]
以下用例规约主要违反了书写用例规约的什么要点?
1. 市民向前台系统请求即时查询话费
2. 前台系统向后台系统发送查询请求
3. 后台系统查询话单,解析话单,计算话费
4. 后台系统传递话费结果给前台系统
5. 前台系统反馈话费清单
……
A) 遵照请求、验证、改变、回应四部曲
B) 使用主动语句理清责任
C) 主语只能是主执行者名称或“系统”
D) 使用核心域概念
答案和解析
正确选项为C) 主语只能是主执行者名称或“系统”
书中知识点:
如果要修正,可不能把“前台系统”和“后台系统”替换成“系统”了事,而是要把“前台系统”和“后台系统”之间的交互删掉,只保留市民和系统的交互:
1 市民请求即时查询话费
2 系统反馈话费清单
然后,可以问“为什么”。为什么之前设想“前台系统”和“后台系统”如此分工的解决方案,不这样的话,可能会引起怎样的后果呢?
回答可能是:不这样的话,反馈话费清单的时间就长;不这样的话,不能支持10万市民同时查询……
★当然,这样的回答不对,因为还可以用其他解决方案。
“3秒之内反馈清单”或“支持10万市民同时查询”才像是真正的需求。只要能做到这些,系统分前台-后台,还是分前台-中台-后台,还是前-中-中-中-后,还是4-3-3、4-2-3-1、5-4-1,涉众(市民)无所谓。
8 [ 多选题 ]
什么情况下“类”、“组件”、“UML”、“泛化”、“关联”等词汇出现在用例规约里是合适的?
A) 做电商系统的分析和设计的时候
B) 研究的系统是UML建模工具的时候
C) 电商系统的前排涉众明确指定设计约束的时候
D) 用UML为电商系统建模的时候
答案和解析
正确选项为B) 研究的系统是UML建模工具的时候 C) 电商系统的前排涉众明确指定设计约束的时候
书中知识点:
9 [ 单选题 ]
针对以下步骤来寻找扩展路径和补充约束,正确的说法是:
基本路径
1. 医生选择需要分析的患者
2. 系统反馈患者原始数据
3. 医生请求做脊波分析
4. 系统判断患者原始数据适合由系统来做脊波分析
5. 系统对患者原始数据做脊波分析
6. 系统反馈分析结果
A) 步骤2应该业务规则
B) 步骤3应该有性能需求
C) 步骤5应该有扩展
D) 步骤6应该有字段列表
答案和解析
正确选项为D) 步骤6应该有字段列表
可能有疑惑的是C,有的同学可能会觉得C有扩展。
步骤6只是写“反馈分析结果”,对于分析结果如何并没有倾向。
那分析失败怎么办呢?
会失败吗?有的同学可能说“会啊,编码没编好,数据库没设计好,网络断了,硬盘坏了,停电了,都有可能”,但这些是实现中的问题,和需求没有关系。
建模需求的时候,要把目标系统看作是外星人负责建造、部署和维护的,并且因此杀光不再需要的研发人员。外星人的黑科技怎么会出这样的问题呢?
最关键的是,“编码没编好,数据库没设计好,网络断了,硬盘坏了,停电了”这样的事情,和目标系统没有特定关系,放之四海皆准。
一旦把放之四海皆准的知识强加到某个特定场景,必然会带来废话刷工作量。
当然,如果你走的是领域驱动设计伪创新投资少、见效快、产量高、门槛低、仪式感十足的路线,那就没问题。