前-中-中-中-后-《软件方法》自测题解析41

DDD领域驱动设计批评文集

做强化自测题获得“软件方法建模师”称号

《软件方法》各章合集


《软件方法》第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只是写“反馈分析结果”,对于分析结果如何并没有倾向。

那分析失败怎么办呢?

会失败吗?有的同学可能说“会啊,编码没编好,数据库没设计好,网络断了,硬盘坏了,停电了,都有可能”,但这些是实现中的问题,和需求没有关系。

建模需求的时候,要把目标系统看作是外星人负责建造、部署和维护的,并且因此杀光不再需要的研发人员。外星人的黑科技怎么会出这样的问题呢?

最关键的是,“编码没编好,数据库没设计好,网络断了,硬盘坏了,停电了”这样的事情,和目标系统没有特定关系,放之四海皆准。

一旦把放之四海皆准的知识强加到某个特定场景,必然会带来废话刷工作量。

当然,如果你走的是领域驱动设计伪创新投资少、见效快、产量高、门槛低、仪式感十足的路线,那就没问题。


如何选择UMLChina服务

UMLChina公众号精选(20240222更新)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/485507.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

超市售货|超市售货管理小程序|基于微信小程序的超市售货管理系统设计与实现(源码+数据库+文档)

超市售货管理小程序目录 目录 基于微信小程序的超市售货管理系统设计与实现 一、前言 二、系统功能设计 三、系统实现 1、微信小程序前台 2、管理员后台 (1)商品管理 (2)出入库管理 (3)公告管理 …

【AI工具】一键换装 开源代码分享

这个基于Diffusion模型的虚拟试衣系统OOTDiffusion确实展现出了巨大的市场潜力。通过允许用户上传自己的照片和衣物,实现虚拟混合,该系统能够满足用户在C端对个性化试衣的需求,类似于“衣服版妙鸭相机”的概念。 以下是对该系统进一步的分析和建议: 技术框架与定位 技术框…

LeetCode LCR 055.二叉搜索树迭代器

实现一个二叉搜索树迭代器类BSTIterator ,表示一个按中序遍历二叉搜索树(BST)的迭代器: BSTIterator(TreeNode root) 初始化 BSTIterator 类的一个对象。BST 的根节点 root 会作为构造函数的一部分给出。指针应初始化为一个不存在…

Clickhouse系列之连接工具连接、数据类型和数据库

基本操作 一、使用连接工具连接二、数据类型1、数字类型IntFloatDecimal 2、字符串类型StringFixedStringUUID 3、时间类型DateTimeDateTime64Date 4、复合类型ArrayEnum 5、特殊类型Nullable 三、数据库 一、使用连接工具连接 上一篇介绍了clickhouse的命令行登录&#xff0c…

Android约束布局中用ConstraintHelper实现过渡动画效果

前些天发现了一个蛮有意思的人工智能学习网站,8个字形容一下"通俗易懂,风趣幽默",感觉非常有意思,忍不住分享一下给大家。 👉点击跳转到教程 一.创建一个类CircularRevealHelper继承ConstraintHelper代码如下 /*** Author: ly* Da…

【学习iOS高质量开发】——协议与分类

文章目录 一、通过委托与数据源协议进行对象间通信1.委托模式2.要点 二、将类的实现代码分散到便于管理的数个分类之中1.如何实现2.要点 三、总是为第三方类的分类名称加前缀1.为什么总是为第三方类的分类名称加前缀2.要点 三、勿在分类中声明属性1.勿在分类中声明属性的原因2.…

解决前端跨团队统一的隐性拦路虎

前言 春节刚归来,我们不搞那么烧脑,先来一篇浅显易懂的文章,期望给大家带来一些新的解题思路。 背景 过去多年无论是一款插件推广,还是组件库统一,无论是一次机制流程制定,还是前端工程化体系建设&#xff…

【进程创建】

目录 进程创建的方式查看进程pid 调用系统调用创建子进程fock函数做了的工作子进程刚开始创建的状态 一个变量,两个不同的值创建子进程的作用 进程创建的方式 1.在操作系统上输入的指令。 2.已经启动的软件。 3.程序员在代码层面上调用系统调用创建进程。 linux中第…

开开开开开,干

大家新年快乐,开工啦啦啦啦 其实每天很多人都会问: 有协同过滤的算法吗,有的,可以给你解释原理… 有的小伙伴只开了一部分逻辑,我要实现用户可以下单功能 但是细细考虑下单,需要现有用户,维护…

江科大stm32学习笔记——【3-2】GPIO输出:LED闪烁LED流水灯蜂鸣器

(一) 硬件连接 1.LED闪烁 LED灯正极连接面包板电源正极,LED负极连接单片机A0口 (也可以LED负极连面包板负极,LED正极连接单片机A0口) 跳线连接单片机3.3和面包板正极,连接单片机GND和面包板负极 2.LED流水灯 3.蜂鸣…

本地配置多个git账户及ll设置

本地配置多个git账户 清除全局配置将命令行,切换到ssh目录生成GitLab和Gitee的公钥、私钥去对应的代码仓库添加 SSH Keys添加私钥ll设置 管理密钥验证仓库配置关于gitgitee.com: Permission denied (publickey) 清除全局配置 此步骤可以不做,经测试不影…