您当前的位置: 首页 >  ar

rolt

暂无认证

  • 0浏览

    0关注

    780博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

软件方法(下)第9章分析类图案例篇Part02

rolt 发布时间:2022-07-04 07:29:24 ,浏览量:0

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

关注
打赏
1665360646
查看更多评论
立即登录/注册

微信扫码登录

0.0388s