oop - 认证授权服务类图

标签 oop design-patterns uml class-diagram role-base-authorization

这是场景

系统有两个主要用户,SYSTEM USER 和 END USER。最终用户进一步分为两个用户,分别名为 CLIENT USER 和 INTERNET USER,客户端用户与数据库可访问帐户相关联,而 Internet 用户则没有。

所有用户都被划分为不同的ROLES,每个角色都关联着一组可访问的MODULE,不同的模块包含不同的FUNCTIONS,如查看、添加、编辑和删除功能。

不同的角色可能与模块中的不同功能相关联。示例 super 管理员角色可以访问并在用户访问模块中添加编辑删除功能,而高级用户只能访问或查看它。

当用户登录时,安全服务将使用用户名和密码对用户进行身份验证。如果它通过了身份验证,它将查找与用户关联的角色并在屏幕上显示授予的模块供用户选择访问。

我创建了一个简单的类图,其中包含每个类的字段或属性,我只是不确定它是否正确,例如实现的连接器或关系、基数和每个类的方法,我只输入了一个类的方法和那是用于登录 (login()) 方法。

enter image description here

最佳答案

我可以看到您的模型有一些问题:

  • 那些实心箭头应该是什么?如果您的意思是继承,那么您必须使用未填充的箭头。
  • LOGIN 也是用户吗?这有点奇怪。我希望 login() 是一个将用户名和密码作为参数的操作,不一定是它自己的类,我可能不会使用属性 UserName 和 Password 对其进行建模。
  • 如果 USER 的所有子类都有用户名和密码。你不认为你应该在 USER 类上定义那些吗?
  • USER 和 END USER 应该是具体的还是抽象的?似乎它们可能需要抽象。
  • 类通常以单数形式命名。所以宁愿使用 ROLE 而不是 ROLES
  • roleID 在 USER 类上做了什么?这似乎是错误的。如果您使用的是 UML,那么不要将外键字段放在您的类上。 RoleID 是 ROLE 的属性,不应在 USER 上。
  • 为什么需要所有这些 ID 属性?如果您在逻辑级别上建模,您可以假设每个类都有一个唯一的标识,并且您不需要担心该标识的技术实现(字符串、GUID ......)。另一方面,如果你正在制作一个技术模型,那么你会丢失大约 70% 的细节。
  • 关于oop - 认证授权服务类图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46461180/

    相关文章:

    ruby - 在 Ruby 中,使用 "def initialize ( value = ' ') 初始化类实例有什么好处?

    java - 如何从现有动态代理获取 'proxied'对象

    java - 基于物联网的家庭自动化系统(如 Alexa)中使用的设计模式

    c++ - 将 UML 组件映射到 C++ 的最佳方法是什么?

    mysql - 网球场预订系统的数据库表

    java - 当我在方法中计算时无法得到相同的结果

    c++ - 如何设计:矩阵的线性代数例程

    java - 使用 Java 的 OOP : avoiding to duplicate code

    python - Borg 模式或仅具有功能的模块

    c# - 如何从在 Visual Studio 2012 中编写的 C# 代码生成 UML 图到 Visio 2010?