Uml 来宾、用户、主持人、管理员-vs-用户(角色:来宾、用户、主持人、管理员)

Uml 来宾、用户、主持人、管理员-vs-用户(角色:来宾、用户、主持人、管理员),uml,use-case,Uml,Use Case,在建模web应用程序用例图时,为每个角色的用户创建一个参与者是否更好?或者为每个角色创建一个参与者、用户和一个具有权限的矩阵是否更好 来宾

在建模web应用程序用例图时,为每个角色的用户创建一个参与者是否更好?或者为每个角色创建一个参与者、用户和一个具有权限的矩阵是否更好

来宾<用户<主持人<管理员

1:来宾、用户、主持人、管理员
  • 来宾:注册、重置密码、登录
  • 用户:编辑(自我),注销
  • 主持人:编辑(每个用户)
  • 管理员:管理权限
2:用户(角色:来宾、用户、主持人、管理员)
  • 用户:注册、重置密码、登录、编辑、注销、管理权限
矩阵:

                   guest  user  moderator  administrator
register           x
reset password     x      x
login              x
logout                    x     x          x
edit (self)               x     x          x
edit (every user)               x          x
manage privileges                          x

哪一个更好?1还是2?

您是建模(如您的问题所述)还是实现

如果你正在对网站的使用进行建模,那么你肯定要考虑不同的参与者,并确定他们想要(或被允许)做什么。这样做,并考虑一下(确保人们可以按照上面的注释登录和注销)。然后使用您必须执行的信息


对于实现,您几乎肯定希望将其作为特权矩阵来执行,因为它更易于实现和扩展。但你肯定想让自己站在每个可能的用户的立场上,在进入矩阵之前决定他们需要/想要什么权利

您的客人可以登录,但不能注销?听起来像是加州酒店。哦,您的2号更灵活。
用户(来宾)
未登录时无法注销
User(User)
可以注销,之后,他将成为
User(guest)
。我的web应用程序使用ACL和基于角色的系统。//方法2(矩阵)很难阅读(你必须在眼前同时拥有图表和矩阵,才能看到谁能做什么)。方法1很容易理解,但很难维护(当特权改变时)。但是用户网站可以很容易地从实现(方法2)转换为可读的表示(方法1),告诉用户他们可以做什么,并允许编辑。或者你在问如何在两者之间转换,因为这是一个不同的问题,问题本身就是关于建模的。应用程序本身使用ACL和基于角色的系统。