十万个为什么之涉众与参与者到底意味着什么?

本文探讨了软件工程中用例模型的两个核心概念——参与者与涉众的区别。参与者直接参与到用例行为中,而涉众则是受到用例结果影响的一方。文章通过实例解释了两者的不同之处,并提出了区分这两者的标准。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

仔细看过《Patterns for Effective Use Cases》的朋友都会在“用例十年”这个部分中对两个概念产生疑问,即参与者与涉众。

那么到底什么是参与者,什么是涉众呢?或许很多人会认为这是两个非常容易理解的概念。的确,笼统地看,的确这是两个经常看到的概念。但既然《P》中明确的分别提出这两个概念,我想这种做法还是有一定的意图的。下面我们先从日常的理解来看看这两个概念到底是指什么.....

参与者,顾名思义就是参与的人,当然未必是人,也可能是组织或者其他什么的。参与意味着在某个过程中其作用是辅助过程的完成,即过程的完成需要参与者提供一些行为,如果没有了参与者提供的行为,过程或许不会完成。例如,登陆系统这个过程,参与者就应该是具体发出登陆动作的人,登陆动作包括输入登陆信息并最后提交登陆动作。再例如,打扫卫生中的参与者就是实施打扫动作的人,可能是一个人,也可能是多个人。因此,我们不难看出,参与者的动作组成了过程,也就是说过程是一个行为序列,而这个行为序列中的动作都是由参与者发出的。

那什么是涉众呢?涉众从字面意思来看意味着“涉及到的多个个体”,这里可以先不考虑个体概念,因为个体在这里是一个笼统的概念,有可能代表一个个人,也有可能代表一个组织等等。我们看“涉及”这个概念。涉及本身意味着过程最后产生的结果所影响到的个体。从这里我们注意到“过程本身产生的结果所影响到”这个话。的确,任何一个过程都会产生一个结果,无论这个结果是有益无益的,毕竟有无益是依靠主观来进行判断的。但从这个话中,我们可以看到,涉众指的是动作的接受者。这点恰好和参与者概念相反。参与者均是指动作的发出者,而涉众则反过来是指动作的接受者。

既然一个是指动作的发出者,一个是指动作的接受者,那么看来,区别这两个概念的唯一需要考虑的因素就是把个体和动作挂钩看动作的方向了。如果一个个体是一个动作的施动者,那么这个个体就是一个参与者;反之,如果一个个体是一个动作的受动者,那么这个个体就是一个涉众了。当然,对于“个体”这个概念,我们还是和前面一样不予详细考虑,只要简单笼统地认为它只表达一个利益集团就OK了。

讨论到这里,我们明白了参与者和涉众两个概念之间的区别,通过讨论也知道了区别两个概念的方法——即考察动作的方向。最后我们还需要看一个问题,除了动作的方向这个最基本的区别外,是否还有其他的区别,虽然不是主要的,但毕竟这些区别可能是存在的。经过考虑,不难看出参与者和涉众还存在以下一些区别:
1.参与者必须在场景中出现,而涉众可以不在场景中出现:因为过程可以看做一个行为序列,每个行为的发生时间空间构成一个场景。或者说过程也可以看作一个场景序列,场景中的参与者的状态在不同时间的状态都是不同的。既然可以把过程看作一个场景序列,而过程同时又是一个行为序列,所以参与者必须在场景中出现,而涉众却可以不出现,只等着接受动作产生的影响就可以了。这里的场景说的明确点就是系统运行时;
2.参与者发出动作的意图是为了达到一个目标,而涉众接受动作的最后结果是满足自己的利益需求:如果把动作看作一条线段(动作不可能是直线,因为直线是没有尽头的),那么线段的起点就是参与者,而线段的终点就是涉众。发出动作是一个动作,同样,接受动作也是一个动作。因为任何动作都是有意图的,所以发出动作的参与者的意图是为了达到一个目标,而接受动作的涉众的意图是满足利益需求。当然,我们不能笼统地认为参与者发出动作是主动的,同理我们也不能盲目地认为涉众接受动作就永远都是被动的。所以参与者和目标组成了一个模型,而涉众和利益又组成了另外一个模型。这也就是为什么《P》一书中说“涉众与利益模型弥补了参与者与目标模型的空白”的道理所在。

最后,我们知道了参与者和涉众的三个区别,应该还有其他区别,只不过能力所限,无从思考。最后,我们通过下面一段话来总结参与者和涉众的内容和关系,如下:

过程是行为序列,行为的发生依赖于时间和空间,时空组成场景,所以过程也是一个场景序列。行为有发起者就必然有接受者,发起者是参与者而接受者是涉众。行为必然有意图,参与者的意图是目标的实现,而涉众的目标是利益的实现。参与者和目标模型是对用例过程的正向思考结果,毕竟动作是耗费时间的。涉众和利益模型是对用例的“反向”思考结果,但实际上也是一个正向的过程,毕竟是先接受行为后实现利益。

《P》中p.ix中第4和第7段话可以印证上面各项结论——“主要参与者只是涉众之一。拥有这个系统的组织是另一个涉众,政府的管理部门可能是另一个涉众,可能还有其他涉众。”.....“涉众和利益模型填补了参与者和目标模型的空白。计算机执行的每一个动作和涉众的利益相关。系统接收信息,根据业务规则验证输入值,更新内部状态,或输出数据。主参与者和辅助参与者都照顾到了,就像所有其他在系统操作时不出场的涉众一样。”

PS:如果要概括认为。为红线部分。需要的朋友给予学习吧。 - Jonny
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值