京东云开发者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,“厨师→做菜”也不是“餐饮企业”的用例。
或者这样说,“餐饮企业”之所以存在,不是为了解决厨师的就业问题,让厨师有个地方做菜来获得薪水。老板巴不得不用请那么多厨师,搞一个外星黑科技烹调机来取代他们。顾客也并不在意菜是谁做的,只要味道好、干净、卫生、有营养、价格公道,没准外星黑科技烹调机的分子料理更受顾客欢迎。
“餐饮企业”之所以存在,是因为一些人群或机构需要用餐,但又不想自己完成购买食材、烹调、布置用餐场所、餐后清理的工作,于是由“餐饮企业”提供这个价值,这个价值可以称为“用餐”。
待续……