Uml 设计-有时一个对象是-a,有时它不是';T

Uml 设计-有时一个对象是-a,有时它不是';T,uml,Uml,我意识到这个问题不是很清楚,所以我会尽力解释。 我正试图设计一个版本控制系统。 有3种类型的用户:简单用户、所有者和操作员。 操作员决不是简单的用户/所有者,但他可以在特殊模式下运行系统,这将允许他作为简单的用户或所有者来测试系统的正确性 问题:您如何描述系统操作员和简单用户/所有者之间的关系(UML)? 我一直在考虑一个简单的继承关系,但我的同事不同意。我也不同意你的看法,用户/所有者/管理员只是同一个对象,拥有不同的权利。因此,您应该将用户与权限属性相关联。 当然,使用继承是可能的,但还不够

我意识到这个问题不是很清楚,所以我会尽力解释。 我正试图设计一个版本控制系统。 有3种类型的用户:简单用户、所有者和操作员。 操作员决不是简单的用户/所有者,但他可以在特殊模式下运行系统,这将允许他作为简单的用户或所有者来测试系统的正确性

问题:您如何描述系统操作员和简单用户/所有者之间的关系(UML)?
我一直在考虑一个简单的继承关系,但我的同事不同意。

我也不同意你的看法,用户/所有者/管理员只是同一个对象,拥有不同的权利。因此,您应该将用户与权限属性相关联。 当然,使用继承是可能的,但还不够。用户/超级用户/管理员的含义没有什么不同,他们都是人。
您可以将用户更改为超级用户,也可以将超级用户更改为管理员,反之亦然,这就是我在这里不使用继承的原因。

我也不同意您的看法,用户/所有者/管理员只是同一个对象,拥有不同的权限。因此,您应该将用户与权限属性相关联。 当然,使用继承是可能的,但还不够。用户/超级用户/管理员的含义没有什么不同,他们都是人。
您可以将用户更改为超级用户并将其更改为管理员,反之亦然,这就是为什么我在这里不使用继承。

鉴于您要求用户模拟所有者或用户

我想我应该试试

用户实体名称、密码类型等,用于管理登录等常见内容

然后是三个实体:操作员、所有者和用户,它们有一个用户

可能(可能会)有更多的东西可以让你变得普通,但我肯定会选择a而不是a


即使没有模拟的要求,我也很想这么做,因为继承意味着说所有者可以做用户可以做的一切,而操作员可以做所有者可以做的一切,这不太可能是真的。

考虑到您对用户模拟所有者或用户的要求

我想我应该试试

用户实体名称、密码类型等,用于管理登录等常见内容

然后是三个实体:操作员、所有者和用户,它们有一个用户

可能(可能会)有更多的东西可以让你变得普通,但我肯定会选择a而不是a

即使没有模拟需求,我也会这么做,因为继承意味着说所有者可以做用户可以做的一切,而操作员可以做所有者可以做的一切,这不太可能是真的