我计划编写一个事件处理服务(比如Google的涂鸦),在用例图中,我需要区分注册用户和非注册用户。一开始,我想:
注册用户_是未注册用户的泛化
采取下列行动:
未注册用户->注册到服务 未注册用户 注册用户->登录到服务
但是我不知道我是否不理解用例背后的理论:我应该只使用一个参与者(“用户”)并将他的所有操作关联起来,还是保持这种泛化?
发布于 2014-06-14 15:28:59
Actor可以看作是用户在系统中扮演的角色。从这个声明中可以清楚地看到,单个参与者(“用户”)版本没有正确地建模您的情况。
两个参与者之间的Generalization使专门的参与者能够访问与其父角色相关的所有用例。就你的情况而言,我不会说是这样的。也许他们甚至有一些常见的用例,但他们都有对另一个用例没有意义的用例。例如:
它们在系统中的作用是非常不同的,因此泛化并不是完美的解决方案。
我只想做两个单独的参与者,最终共享一些用例。我假设没有注册的用户也可以参与事件(可能是受限的),只是为了表明他们可以共享一些用例,而不需要使用泛化:

发布于 2014-06-15 17:23:24
我要说的是,注册用户和未注册用户是用户状态。参与者是一种行为分类器,可以有状态。我认为只有演员才叫“用户”。对连接到用户的关联使用约束,并使用usecase限制用户参与单个usecase。见下面的例子:

https://stackoverflow.com/questions/24219886
复制相似问题