C# UML计算出我的类图

C# UML计算出我的类图,c#,uml,class-diagram,C#,Uml,Class Diagram,我有一个奇怪的系统,我想知道我该如何在类图中展示它,这是一个小型大学项目的系统 为了简单起见,我有两个系统的一半,一个“成员”端和一个“种族”端,成员端由成员秘书使用,种族端由种族秘书使用,公司主席可以访问整个系统,而每个秘书只有各自通过GUI访问的系统的一半 有一个BaseRace类存储所有种族信息,但不存储修改此信息的函数 还有一个组织者,它扩展了种族秘书的功能,但功能有限(没有他们可以访问的那么多方法) 还有一个BaseMember类,它有三个子类保存成员信息,这三个子类是成员,它们的权

我有一个奇怪的系统,我想知道我该如何在类图中展示它,这是一个小型大学项目的系统

为了简单起见,我有两个系统的一半,一个“成员”端和一个“种族”端,成员端由成员秘书使用,种族端由种族秘书使用,公司主席可以访问整个系统,而每个秘书只有各自通过GUI访问的系统的一半

  • 有一个BaseRace类存储所有种族信息,但不存储修改此信息的函数

  • 还有一个组织者,它扩展了种族秘书的功能,但功能有限(没有他们可以访问的那么多方法)

  • 还有一个BaseMember类,它有三个子类保存成员信息,这三个子类是成员,它们的权限级别低于秘书(初级、高级、支持)

我设置单独的种族和成员交互方法的方式是,我创建了一个RaceFunctions类和一个MemberFunctions类,它们存储成员函数(添加、删除、编辑)和种族函数(添加、删除、编辑)

这样,主席可以访问两个类,而秘书只能访问一个类

  • 这是正确的吗
  • 如果是这样,我将如何在类图中展示这些内容

请记住,我还没有代码,这是我的初始类图。

以下是我将如何最大限度地实现代码重用并保持设计简单:

  • 创建一个可以访问所有项目的类(主席)
  • 将所有创建、读取、更新和删除逻辑仅放在主席类中
  • 为每个受限用户(秘书和组织者)创建一个类,并将主席类设置为每个用户的属性。然后从受限类中的主席类调用(代理)所需的方法
这将使您只需在主席类中编写一次代码,然后将代码传递给每个受限实体

有关使用代理的更多信息,请参阅

我制作了一个RaceFunctions和一个MemberFunctions类,它存储了成员函数(添加、删除、编辑)和竞赛函数(添加、删除、编辑)

我不会将任何类似
RaceFunctions
MemberFunctions
的类放入UML类图中。我也不明白为什么要创建名为
BaseRace
BaseMember
的类

从简短的描述中很难理解所需的系统功能,但是在类图中,您应该集中精力为计划的系统定义适当的术语。当您制作UML类图时,什么人将使用系统中的任何类并不重要。类图显示了数据在系统中的命名和组织方式

在我看来,您将类图与用例图混为一谈。在用例图中,您对系统的各个部分将如何使用以及最终由谁(参与者)使用进行建模


正如您所说,我在您的系统中只看到两个类:
Race
Member
。您还可以添加类,如
User
Action
AllowedUsersAction
,以存储用户的访问权限。不需要创建单独的类(
Organizer,
),因为它只供某些用户使用。

此外,我会让具有更多权限的类实现具有较少权限的类。例如,竞赛秘书将认识到组织者。这允许您在Race Secretary类中重用Organizer中的逻辑。我对UML建模和OO非常陌生,我以前从未听说过代理。有没有其他方法可以通过基本继承、聚合和其他简单的方法来实现这一点?代码重用很好,但我只是在这里寻找一个基本的系统。如果您的设计描述了建模现实的所有重要方面,那么它是正确的。在UML类图中,您首先将每个类绘制为自己的类,最好使用一个。你的实际责任是什么?堆栈溢出不是论坛讨论。。