Uml mini-JEE项目的类图

Uml mini-JEE项目的类图,uml,class-diagram,Uml,Class Diagram,我想在JEE中启动一个项目,我需要确认我的类图。我需要知道使用的方法是否正确,以及我使用的作文是否正确 这是我的类图: 该项目是关于一个在线销售商店,它希望建立一个管理工具来销售产品,并管理其产品。此工具必须包括以下功能: 识别模块:客户、经理、主管的识别 销售模块:为用户进行购买 产品管理模块:添加/删除产品 统计模块:销售统计数据的可视化 功能规格 必须对应用程序执行操作,使用用户ID和密码连接到应用程序。为了便于使用,并避免此后的任何错误处理,以下是解决方案: 用户配置文件: 用户

我想在JEE中启动一个项目,我需要确认我的类图。我需要知道使用的方法是否正确,以及我使用的作文是否正确

这是我的类图:

该项目是关于一个在线销售商店,它希望建立一个管理工具来销售产品,并管理其产品。此工具必须包括以下功能:

  • 识别模块:客户、经理、主管的识别
  • 销售模块:为用户进行购买
  • 产品管理模块:添加/删除产品
  • 统计模块:销售统计数据的可视化
功能规格

必须对应用程序执行操作,使用用户ID和密码连接到应用程序。为了便于使用,并避免此后的任何错误处理,以下是解决方案:

用户配置文件:

  • 用户将能够可视化我的在线比赛销售的产品。用户可以下订单,前提是他已在网站My Online Races上注册
经理简介:

  • 经理将能够管理产品:

    • 添加/编辑/删除产品
    • 添加/编辑/删除类别
  • 这些数据插入可以使用CSV或XML文件进行,也可以通过网站上的各种形式进行

  • 经理将能够查看销售统计数据

主管简介:

  • 主管可以添加上面指定了其角色的经理
  • 主管将能够查看销售统计数据
  • 主管将能够查看经理执行的所有操作,这是一种审计跟踪
我想知道你是否对我的设计有意见。此外,我对几种方法感到困惑,例如添加、修改和删除产品。我应该把它们放在经理类还是产品类?我放的作文是正确的还是应该删除?

快速查看图表和建议 首先是一些关于类命名的小评论:
Ordered
应该被称为
Order

文章
顺序
之间的关系是错误的(不是从形式上看,而是从它所传达的意义上看)。使用正常的一对多:这将更好地反映两个类之间关系的真实性质。请考虑到一个新的物品可能在没有订购的情况下存在,所以它应该是

<代码> +属于和>DO 在联想的中间是句法上的不一致。你应该用一个普通的三角形来代替(或者什么也不用)。三角形应朝向阅读方向

Person do |>Order
文章属于|>Category

这些方法似乎还可以。您不需要添加后缀

如何管理(创建/更新/删除)对象? 更高级的问题不是关系图,而是您希望如何组织持久性(即数据库存储):

  • 您真的希望对象是一个添加、更新和删除自身(到数据库)的对象吗?它设置简单,运行良好,但使类依赖于底层数据库实现,从而使维护更加困难
  • 或者对每个对象使用不是更好吗?在这种情况下,存储库充当管理所有数据库操作的集合。域对象(Article、order、User等)则对数据库一无所知,这将导致更易于维护的代码
但这是一个更广泛的架构问题。如果只是针对JEE的第一个实验项目,您可以很好地使用活动记录。设置起来更简单。但是,在这种情况下,请确保消除
Person
上添加/更新/删除的歧义,因为它目前可能会给人留下任何人都可以添加任何人的印象

模型的改进 最后一句话,同样不是关于图表本身,是关于域的。您的模型认为,
订单
是关于一篇
文章


然而,实际上,订单通常是关于一篇或几篇文章的:如果这里也是这种情况,那么您的
订单
将成为
订单项
,真正的
订单
将插入
订单项
之间。然后,您可以将
订单
订单项目
之间的关系作为一种组合(即:
订单项目
属于
订单
,订单负责创建其项目,如果没有相关的订单,项目就没有意义)。

文章构成订单,反之亦然。这听起来很合法。请。修复。而且操作也是错误的。我会发布一个答案。@qwerty_所以这不是合法性的问题,而是语义的问题。物品不是由订单组成的,也不能保证订单为物品所有。用作文来表达它是有误导性的。是否有任何论据可以证明组合比简单关联更准确?复合聚合只是对象的生命周期。不是关于本体论。还有一句话:在这个模型中,一个订单被认为是关于一篇文章的。实际上,订单通常是关于几个项目的:如果这里也是这样,那么您的订单实际上是一个订单项,并且类订单将插入到person和订单项之间。在这种情况下,您可以将订单和订单项之间的关系作为一种组合(即:订单项归相关订单所有,没有相关订单就没有意义)。您修改后的图表对于账户的创建稍微少了一些混乱,因为只有特定的专业人员才能创建