查看原文
其他

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

潘加宇 UMLChina 2024-03-10

DDD领域驱动设计批评文集>>

《软件方法》强化自测题集>>

《软件方法》各章合集>>

可到此处下载本文档最新版本:

http://www.umlchina.com/book/softmeth2.pdf

您在阅读《软件方法》时如果发现错误,欢迎通过微信umlchina2告知。如果作者认为有道理,决定在下一次发布时根据您的意见修改,每个错误将付给您5.12元报酬,并在书中说明您的贡献。报酬通过微信支付。

(1)任何您认为的错误都可以,包括错别字。

(2)同一错误仅支付最先指正者报酬。

(3)请根据最新版本作指正。

下册内容目前指正人有(按指正时间排序):吴佰钊、王周文、刘学斌、成文华、黄树成、李蜀斌、杨雪鸿、王书伟、高洪江、张志坚、龙燔、陈文飞。


9.1.6.5 步骤5及其补充约束

用例规约:

5. 系统验证得分达到抽奖要求。

5. 抽奖要求:得分值大于0。

提炼:

这一步没有新的类和属性需要提炼。

9.1.6.6 步骤6及其补充约束

用例规约:

6. 系统随机抽取奖品,将抽中的奖品从奖池移除,保存抽奖结果。

6. 抽奖结果=学员+奖品+抽奖时间。

6. 抽奖规则:抽奖时,如果奖池有多于一件奖品,而且价值不完全相同,那么把价值最大的奖品抽中的概率调低为其他奖品的一半。

提炼:

*奖品

提炼类“奖品”。

*奖池

提炼类“奖池”。“奖池”和“奖品”关联,“奖池”多重性为1,“奖品”多重性为*。

*抽奖结果

提炼类“抽奖”。“抽奖”和“奖品”关联,“抽奖”多重性为1,“奖品”多重性为0..1。“抽奖”和“回答”关联,“抽奖”多重性为0..1,“回答”多重性为1。

*抽奖时间

提炼为“抽奖”的属性“时间”。

*价值

提炼为“奖品”的属性。

*概率

这是若干类和属性计算得到的结果,不需要提炼为类和属性。

图9-20 抽奖
9.1.6.7 步骤7及其补充约束

用例规约:

7. 系统反馈抽奖结果、剩余奖品和学员成绩排行。

7. 抽奖结果=奖品名称。

7. 剩余奖品=奖品名称+剩余数量。按奖品的价值降序排序。

*价值:每种奖品会设置一个价值,现金的价值为现金的金额,实物的价值为该实物的估值,未抽到奖励视为抽到价值为0的奖品。

7. 成绩排行=学员姓名+成绩+中奖次数,先按成绩降序排序,再按中奖次数降序排序,最后按学员姓名升序排序。

*中奖:抽到的奖品价值大于0,为中奖。

7. 学员成绩为当前活动中,学员所提交回答的得分总和。

*某一次公开课或内训称为一次活动,一次活动可能会持续几天。在活动过程中,老师会出很多组试题(或者说,出很多张试卷),然后针对每道题点名学员回答问题。

*学员可以参加很多次活动。例如,两个月前参加了一次“软件需求设计方法学全程实例剖析”培训,这个月又参加“业务建模和需求高阶”培训。此处的学员成绩指在单个活动内的成绩,不跨活动累加。

提炼:

*剩余奖品、剩余数量

这两个概念如何处理,要看“奖品”如何定义。可以把“剩余数量”作为某个类的属性,也可以通过计算“奖池”关联的“奖品”对象数量得到。此处暂时放下,等到处理完其他概念后,我们再回来看这两个概念。

*奖品名称

给“奖品”加一个属性“名称”。

*现金的价值为现金的金额,实物的价值为该实物的估值

说明奖品分为两种,一种是现金,一种是实物。此处可以用泛化,也可以用关联,如图9-21。

图9-21 两种奖品

浏览用例规约,判断“奖品”为“现金”还是“实物”不存在系统需要关注的复杂行为差异,因此选择图9-21右侧的做法,添加“奖品类型”类,“奖品类型”和“奖品”关联,“奖品类型”的多重性为1,“奖品”的多重性为*。

*学员成绩

某次“活动”的“学员成绩”可以通过累计“学员”参加该次“活动”的所有“回答”的“得分”计算,不需要提炼新的类或属性。

*活动

提炼为类“活动”。“活动”和“学员”关联,多重性均为*,“活动”和“试卷”关联,多重性均为*。

*中奖次数

可以通过“学员”的“抽奖”统计,不需要提炼新的类或属性。

图9-22 活动
9.1.6.8 步骤8-11及其补充约束

用例规约:

8. 系统验证抽中的奖品为现金类型且存在学员的微信号。

9. 系统请求微信向学员的微信号发红包。

10. 系统保存发奖结果。

11. 系统反馈发奖结果。

9. 红包金额为现金奖品的价值。

10. 回答+是否发放成功+发放时间。

11. 是否发放成功。

提炼:

*微信号

提炼为“学员”的属性。

*微信

“微信”是一个外系统,提炼出边界类“微信接口”。

*发奖结果

提炼“发奖”类。“发奖”和“抽奖”关联,“发奖”的多重性为0..1,“抽奖”的多重性为1。

*是否发放成功+发放时间

提炼为“发奖”的属性。

图9-23 发奖

到此,该用例规约的所有可提炼的内容已提炼完毕。

9.1.6.9 进一步思考

(1)奖品

[新增EA028高压注射器]24套UML+EA和StarUML的建模示范视频-全程字幕(2022.7.4更新)

7月7-10晚网课:软件需求设计方法学全程实例剖析

7月21-24晚剔除“伪创新”的领域驱动设计-网络公开课

《软件方法》书中自测题-题目全文+分卷自测(1-8章)16套111题

《软件方法》强化自测题集110题

CTO也糊涂的常用术语:功能模块、业务架构、用户需求……[20210217更新]

如何选择UMLChina服务


继续滑动看下一个

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

潘加宇 UMLChina
向上滑动看下一个

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存