DDD领域驱动设计批评文集>>
《软件方法》强化自测题集>>
《软件方法》各章合集>>
9.1.6 提炼类和属性
从“学员→回答问题”用例规约的基本路径到业务规则部分提炼。我们给关键词加下划线,逐个分析。
注意:加下划线只是为了在书中讲解方便,实际建模工作中不需要这样做,只需要看着需求规约或其他素材,一点点提炼。
9.1.6.1 步骤1及其补充约束
用例规约:
1. 学员提交回答。
1. 回答选择了题目的某个或若干个选项。
提炼:
*学员
这里的“学员”是执行者,指外面那个和系统交互的人肉系统“学员”,而不是系统内部维护学员相关信息和规则的“学员”类——有没有这个类,目前还不能判断。
执行者映射的是边界类,如图9-10:
图9-10 执行者映射边界类
*回答
“回答”提炼为类;
*回答选择了题目的某个或若干个选项。
“题目”、“选项”提炼为类;
“回答”关联“选项”,关联名称可以叫“选择”,“回答”和“选项”的多重性均为*;
“题目”关联“选项”,“题目”的多重性为1,“选项”的多重性为*。
在没有足够证据时,关联一律表示为普通关联。
图9-11 回答、选项和题目
9.1.6.2 步骤2及其补充约束
用例规约:
2. 系统验证回答有效。
2. 有效规则:回答选择的选项必须属于同一道题目;单选题的回答只能是1个选项,多选题的回答至少有2个选项。
提炼:
*系统
如第8章知识点所述,“系统”不识别。
*有效
“有效”是一个形容词,可以作为某个类的状态。此处“有效”描述的是“回答”,映射为“回答”类的“状态属性”。后面深入建模时,会通过状态机中的状态来取代这些“状态属性”。
*回答选择的选项必须属于同一道题目
图9-11无法对此做出约束,需要对“回答”加一个约束,例如:
(from 选项 in 选项s select 选项.题目).Distinct().Count()=选项s.FirstOrDefault().题目.题型.回答选项个数下限 && 选项s.Count
最近更新
- 深拷贝和浅拷贝的区别(重点)
- 【Vue】走进Vue框架世界
- 【云服务器】项目部署—搭建网站—vue电商后台管理系统
- 【React介绍】 一文带你深入React
- 【React】React组件实例的三大属性之state,props,refs(你学废了吗)
- 【脚手架VueCLI】从零开始,创建一个VUE项目
- 【React】深入理解React组件生命周期----图文详解(含代码)
- 【React】DOM的Diffing算法是什么?以及DOM中key的作用----经典面试题
- 【React】1_使用React脚手架创建项目步骤--------详解(含项目结构说明)
- 【React】2_如何使用react脚手架写一个简单的页面?