【发布时间】:2010-09-19 05:43:30
【问题描述】:
为简单起见:
有一个基于权限的系统,具有不同类型的用户级别和操作(想想:UNIX 文件系统权限)
在 UML 中将其可视化的最佳方法是什么?
【问题讨论】:
标签: class permissions uml diagram oop
为简单起见:
有一个基于权限的系统,具有不同类型的用户级别和操作(想想:UNIX 文件系统权限)
在 UML 中将其可视化的最佳方法是什么?
【问题讨论】:
标签: class permissions uml diagram oop
我喜欢认为一个文件系统对象有许多标准方法,每个方法都有一个关联的权限。
有 9 种通常感兴趣的方法/权限:(用户、组、其他)*(读取、写入、执行)的组合。此外,还有 Sticky 和 SetUID 等选项。
一个文件系统对象与一个用户和一个组相关联。一个用户与任意数量的组相关联。
当前用户与任意数量的组相关联。
以上是非常标准的类图。文件系统对象、用户、组、关联。而且文件系统对象有一堆属性和9个规范方法。
关于允许的限制没有一个整洁的图表。它是一组规则表达式。首先是使用哪个权限集(用户、组或其他),然后是该集中的哪个权限(读取、写入或执行)。
我想你可以用一组具体对象(Unix 有用户、组、其他)定义一个用户类,以及用一组具体对象定义一个操作类(Unix 有读、写、执行) .然后,您可以使用两种关联来定义权限:一种与用户类关联,一种与操作类关联。
我认为只列出完整的方法更容易,以复杂地绘制用户类实例和操作类实例的组合。
【讨论】:
我通常有代表用户、角色和权限的类。用户属于角色并且角色被授予权限。访问其他对象需要权限。在 UML 中,我假设您将 Role 建模为抽象基类,并有多个不同的实现,每个角色一个。
通常,我将权限建模为包含可读、可写、可删除业务实体类集的对象(可能包含属性排除或包含)。每个角色,然后有一个权限。该权限允许或拒绝访问一个或多个其他类。默认情况下,权限被拒绝,只有当类在请求的操作的适当集合中时才允许访问。
【讨论】: