3

为了简单起见:

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

在 UML 中将其可视化的最佳方法是什么?

4

2 回答 2

1

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

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

于 2008-10-26T03:53:19.277 回答
0

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

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

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

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

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

什么是允许的约束没有一个整洁的图表。它是一组规则表达式。首先是使用哪个权限集(用户、组或其他),然后是该集中的哪个权限(读、写或执行)。

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

我认为只列出完整的集合方法来复杂地绘制用户类实例和操作类实例的组合更容易。

于 2008-10-26T02:26:12.027 回答