为简单起见:

有一个基于权限的系统,具有不同类型的用户级别和操作(想想:UNIX文件系统权限)

在UML中可视化这个的最佳方法是什么?

有帮助吗?

解决方案

我通常有代表用户,角色和权限的类。用户属于角色,角色被授予权限。访问其他对象需要权限。在UML中,我假设您将角色模型化为抽象基类,并具有多个不同的实现,每个角色一个。

通常,我将Permission建模为包含多组可读,可写,可删除的业务实体类(可能包含属性排除或包含)的对象。每个角色,然后有一个权限。该权限允许或拒绝访问一个或多个其他类。默认情况下拒绝权限,并且仅当类位于所请求操作的适当集合中时才允许访问。

其他提示

我喜欢认为文件系统对象有许多标准方法,每个方法都有相关的权限。

通常感兴趣的有9种方法/权限:(用户,组,其他)*(读取,写入,执行)的组合。此外,还有像Sticky和SetUID这样的选项。

文件系统对象与一个用户和一个组相关联。用户与任意数量的组相关联。

当前用户与任意数量的组相关联。

以上是相当标准的类图。文件系统对象,用户,组,关联。文件系统对象有一堆属性和9个规范方法。

对允许内容的约束没有整洁的图表。这是一组规则表达式。第一个是使用哪个权限(用户,组或其他),然后是集合中的哪个权限(读取,写入或执行)。

我想,你可以用一组具体对象定义一类用户(Unix有用户,组,其他),以及一组带有一些具体对象的操作(Unix有读,写,执行) 。然后,您可以使用两个关联定义权限:一个用户类,另一个用于操作类。

我认为只列出完整的set方法,以便对组合用户类实例和操作类实例进行繁琐的绘制更容易。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top