考勤管理系统uml类图

问题描述 投票:0回答:1

我正在尝试在 vb.net 中开发一个考勤管理系统,只有 1 个主要用户,即教授。我尝试放入类图,但我不完全确定它是否正确。

系统的基本逻辑是:教授可以登录或创建帐户。登录后,将有一个选择,例如查看个人资料,让用户查看或编辑他们的个人资料。他们可以在其中添加或删除另一个部分的块/部分。一个街区由学生组成。当删除某个块时,在该块中注册的学生也将被删除。以及考勤,用户可以查看、更新和创建新的考勤。

我尝试过类似的事情,但我觉得有些不对劲。这是我第一次使用uml图:

this is the diagram

vb.net oop uml class-diagram class-design
1个回答
0
投票

开始使用 OOP 进行设计时,一个好的建议是更喜欢组合而不是继承。考虑到这一点,让我们看看您的继承关系(带有大空心箭头的箭头):

  • 教授是账号吗?无论您在哪里使用帐户,都可以使用教授吗?根据你的叙述,应该没问题。但是,我建议避免它,因为我们可以想象一个用户可以管理几位教授的出勤。而且,教授似乎并不需要账户功能。因此,简单的关联将是一个更强大的替代方案。

  • 学生是块吗?在使用块的任何地方都可以使用学生吗?根据您的叙述,这个问题的答案显然是否定的:“一个街区由学生组成”。简单的关联将是正确的选择。
    语句“当删除某个块时,在该块中注册的学生也将被删除。”可能表明复合聚合(黑色菱形)。但目前尚不清楚该学生的注册是否被删除或该学生是否被删除。再次,我建议保留简单的一对多关联。

  • 出勤真的是“时间表”吗?可以用出勤率代替“时间表”吗?你的叙述不允许得出结论。我有疑问,并建议考虑将出勤作为教授和日程安排之间的关联课程。

另一个建议是明智地使用复合聚合(黑菱形),并且在不是绝对必要时避免使用它,因为这意味着级联删除对象。此建议适用于教授的所有三个复合聚合。

可能还有其他问题,但这些是最引人注目的问题,而鉴于您的问题,其他问题过于详细。

© www.soinside.com 2019 - 2024. All rights reserved.