京东云开发者DDD妙文欣赏(3)你猜,用例为啥有个“用(use)”字?

发布时间:2024年01月24日

DDD领域驱动设计批评文集

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

《软件方法》各章合集


京东云开发者DDD妙文欣赏(1-2)报菜名和化繁为简的创新>>

图片

图8 《餐厅》中的“用例图”

(01)

原文

用例图

赏析

揉一揉眼睛仔细看,确实写着“用例图”,不是领域驱动设计革命性创新的蛋蛋图。

那么,我们就按用例图的知识来赏析。

(02)

原文

理清谁在做什么

厨师→做菜

赏析

前面“统一语言”的脑图里说“做饭”,这里变成了“做菜”?我又揉一揉眼睛,后面紧跟着的“买菜”、“洗菜”和脑图中的一样,应该说的是一个东西。也许在强调统一语言的同时,又引入了量子力学加成吧。

**********

你猜,用例为啥有个“用(use)”字?

因为它说的并不是“A做B”,而是“A用X来做B”,或者“X向A提供了B的服务”。

这里的焦点是X,用例实质上是描述X作为一个整体对外哪些价值。

图9的左右两侧的图形表达都可以,但都要说清楚研究对象X,否则谈论用例是没有意义的。

图片

图9 X的用例图

X可以是一个系统。此时,A就是X外面的另一个系统,A称为系统X的系统执行者(Actor),B称为系统X为系统执行者A提供的一个系统用例。这样的用例表达了X系统的需求。

*系统可以是人,也可以是非人智能系统或时间。当然,也可以把时间看作特殊的非人智能系统。

X也可以是一个组织。此时,A就是X外面的另一个组织,A称为组织X的业务执行者,B称为组织X为业务执行者A提供的一个业务用例。

*组织可以是正式组织,如企业、党政军单位、事业单位、社会团体,也可以是非正式组织,如人群、家庭、正式组织中的部门或团队。

**********

图8的“用例图”,研究对象X是什么?也就是说,是描述什么东西的用例?

这又回到了之前的赏析说到的“薛定谔的餐厅”,说“设计餐厅”,这个“餐厅”到底指什么?不说清楚这一点,这个“用例图”是没有意义的,除非画的是“领域驱动设计革命性创新的蛋蛋图”。

★如果“餐厅”指的是“餐饮企业”

“餐饮企业”是组织。图8中的三个小人“厨师”、“刀工”和“采购员”此时在“餐饮企业”内,可以看作“餐饮企业”的人肉零件,或者称为“餐饮企业”的业务工人。它们不是“餐饮企业”的Actor,“厨师→做菜”也不是“餐饮企业”的用例。

或者这样说,“餐饮企业”之所以存在,不是为了解决厨师的就业问题,让厨师有个地方做菜来获得薪水。老板巴不得不用请那么多厨师,搞一个外星黑科技烹调机来取代他们。顾客也并不在意菜是谁做的,只要味道好、干净、卫生、有营养、价格公道,没准外星黑科技烹调机的分子料理更受顾客欢迎。

“餐饮企业”之所以存在,是因为一些人群或机构需要用餐,但又不想自己完成购买食材、烹调、布置用餐场所、餐后清理的工作,于是由“餐饮企业”提供这个价值,这个价值可以称为“用餐”。

待续……

如何选择UMLChina服务

UMLChina公众号精选(20240123更新)

文章来源:https://blog.csdn.net/rolt/article/details/135815599
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。