如何在这个 UML class 图中 improve/edit?

How to improve/edit in this UML class diagram?

如何改进此 UML class 图以及我犯了哪些错误?

我对Expense和Category的关系很困惑,因为Category和Expense可以单独存在:你可以注册Expense而不把它分配给一个category,或者相反,你可以添加新的Categories到类别列表,等等...

我真的需要单独的列表 classes 吗?

我只想将您的 CategoryList 设为类别 class 并删除后者。我不知道你的领域,但假设可以为一项费用分配一个或多个类别,你可以通过添加多重性来澄清这一点。您还应该删除共享合成(空心菱形),因为它不会向您的模型添加任何真实信息。

编辑 根据您的评论,我会这样建模:

将类别表示为列表将是表示现有类别的某些视图或控制器的任务。可以将您的 CategoryList class 视为这样的控制器。