时间作为执行者的系统用例,那这个用例是为时间提供价值么?

vero 2021-1-6 10:30

潘老师,有个问题咨询一下:

系统用例,书中定义:系统能够为执行者提供的、涉众可以接受的价值,另外也说时间看做特殊的业务实体

我们系统中也有很多"时间"作为执行者的系统用例,那这个用例是为时间提供价值么?这里怎么理解呢?

UMLChina潘加宇

在这个层面上,确实就是如此。

你可能是想,时间又没有感情,怎么会在乎有什么价值呢,分明是外面的人要的嘛。

其实时间也不特别,时间只是非人智能系统的一种。执行者还可以是另外一个计算机系统,计算机系统也是没有感情的,这个价值怎么说呢?

上面说的是系统为系统提供价值了,我们可以再改变范围到组织:

组织为组织提供价值(比如某政府机构为某企业提供服务),组织也不是人,也是没有感情的,有感情的是组织里面或外面的人。

我们还可以改变范围到系统内部:

系统里一个组件client调用了另一个组件server的服务,也就是server为client提供了价值,组件只是一堆代码,也是没有感情的。

后面不还有一句“涉众***”嘛。

还是要用书上说的演员观众来理解:

台上站着一个A和一个B,他们可能是组织、系统或系统内的组件,台下有不同的观众在看。

A找B帮忙,B应该帮到什么程度才能说得过去,这是由台下的观众的利益综合决定的——否则的话,如果由A来定,假设A是顾客,B是京东网站系统,A巴不得点一下B,商品马上从天而降还不收钱,多爽!

A、B如果是人,他们在台下也有座位,协商的时候他们也有份,就看分量有多大了。

协商清楚了:A找B帮忙,B帮到这个程度才能说得过去(或者说,不帮到这个程度B就算废了,没帮上忙),这个就是价值。

在这个契约之下,A如果刚好是一个人,他在找B帮忙的时候,对B该做到哪一步是正常的,心里是有期待的。如果B没做到这一步,A是不爽的。即使这个价值是大家协商出来的,没有满足A的所有欲望。

例如,某开发人员冒着北京-19℃的低温上班,其实他是不想上班的,上班也是不想干活的,但是这位开发人员在工位上用编码工具调试代码的时候,工具没做到该做的事情,他也是不爽的。

A如果不是一个人,比如说,是个计算机系统,其实也有“期待”。B该做到的事情,A里面就不需要再写重复的代码了嘛。

可能有的人会想,台上如果不是人,能不能让台下的人站到台上去?

参见《软件方法》5.1.3 系统执行者与重要无关。

站在台上没什么了不起的,随着时代的发展,越来越多的计算会由非人的计算机系统来承担,也就是说,台上的演员不是人的比例越来越大。把机器撤下来,让人亲自上阵,这不是吃饱了撑的嘛。

另外,台下那么多观众,你让谁上去?

就像某些国家,政策是国会定的,总统及政府部门只是执行,能不能说干脆让议员去当总统好了?那么多议员,让谁上?


weixinpanjiayu2