[答疑]老大不是某组织的负责人吗,为什么说“系统的老大”?

DDD领域驱动设计批评文集

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

《软件方法》各章合集


第五元素 2023-10-23 8:38

像这道题

研发部要添加一名C#程序员,由人力资源部负责出面招人,请问针对这名C#程序员(一个人脑系统),老大是()

A、C#程序员

B、人力资源部经理

C、研发部经理

D、公司总经理

老大不是某组织的负责人吗,为什么说“系统的老大”?

UMLChina潘加宇

“系统的老大”这个说法可以的。因为我们是以引入某个人脑系统,即程序员,作为出发点,来推导老大这个人。

就像平时我们说,“你那个楼叫什么名字?”

实际上问的可能是:你打工的公司目前办公租用的办公室所在的那个楼的名字是什么?

这里面经过了多个转换:

你→公司→办公室→楼

回到老大这个问题,这里面有更本质的内容。

首先我们要清楚,我们所做的这一切思考,是因为我们看不清楚要引入的系统应该是什么样一个东西。如果都已经知道了,所有的思考就不用做了。

我们用一个未知系统X来表示,只知道它是一个系统,但具体的细节(功能、性能)未知,如下图(左边是类,右边是对象,即系统X):

[答疑]老大不是某组织的负责人吗,为什么说“系统的老大”?_第1张图片

我们不知道X系统的属性值x1、x2、x3应该是什么,这个系统才会好卖,这个时候投钱投时间去做,会造成浪费。如果成本是0,那就乱做,无限试错就是了——但怎么可能,就算坐拥全世界财富,时间的流逝也不可逆转。

组织跟系统之间可能有这么几个关系:组织是系统的目标组织;系统是组织的负责人;组织是系统的开发组织。

比较全面的推导往往从开发组织开始。

(1)假设开发组织O1,其负责人,一个人脑系统S1,想搞一个系统来获利,假设这个系统名为X,属性值x1、x2、x3未知。

(2)开发组织把X代入竞争形势中,类似于用未知数建立方程,结合自身优势(例如烟草三代人)来求解目标组织O2。这一步非常难,因为“方程”非常复杂。

(3)从O2求解其负责人,一个人脑系统S2。这一步比较容易。

(4)从S2推导系统X的愿景V(X)。就是揣摩老大的心思了。

(5)以V(X)为指导,对O2业务建模,推导出系统X的x1、x2、x3等。

(6)代入验证,如果结果不满意,检查(2)(3)(4)(5)的推导什么地方不妥,重新推导。

所以,出题的花样可以很多:

可以从已确定(即系统X的属性值已知)的系统出发,问(3)的S2是谁。

可以从O1出发,问(3)的S2是谁。

问题所举的题目,其实考查的知识点是:哪个是O1,哪个是O2(人力资源部是O1,研发部是O2),系统X(程序员)的x1、x2、x3是什么倒无所谓。

你可能感兴趣的:(业务建模,uml,软件工程,面向对象,架构,产品经理)