让我们想象一个新的简单 CRM,其中...
这些要求涉及到系统和外部系统,我对这些是否符合演员资格有一些疑问:
第一个可能的用例图:
第二个可能的用例图:
我关于系统和参与者之间边界的问题可以分解如下:
我相信,第一个图是错误的,因为系统不应该是一个演员。它应该看起来像第二张图。正确吗?
用例“验证数据”和“创建新用例”将仅在场景中包含系统执行的步骤(系统验证列数;系统验证数据类型;系统验证强制值...)。 系统不应该是一个“参与者实体”,但是拥有一个系统是唯一起作用的部分的 uc 并不违反规则,对吗?重要的是,UC 与另一个 UC 存在关系,这对于某些演员来说非常有价值。正确吗?
以演员身份展现“外系A”是否正确?执行用例应该给参与者带来价值...我不确定系统A是否乐意上传数据:)但是系统可能对什么是“价值”有不同的观点
谢谢您的建议!
所考虑的系统从来都不是一个演员。永远不能。参与者始终处于系统外部。
Actor 也可以是其他系统。然后,期望它们独立于所考虑的系统,并在这方面拥有一定的自主权。如果系统帮助其他系统实现其目标,则该外部系统参与者可以是主要参与者,或者(更常见)为系统用例做出贡献的辅助参与者。两个典型例子:
直接得出的结论是,第一个图是不正确的,但第二个图可能提供不相关的细节而不是真实的用例。更具体地说:
正确:没有系统参与者
或多或少是正确的:但是一个对任何人都没有用、也没有人关心的系统功能,不会提供参与者或利益相关者重视的可观察结果。因此它不符合用例。也许这是一个更大的内部细节的一部分。不要“上传数据”,而是从用户的目标角度考虑它(例如“获取有关......的信息”
这要看情况。关键问题是:“它是否独立自主?” (如果它是为系统提供数据而编写的上传脚本,那么它并不是真正独立的),以及“用户关心吗?” (见上文)。