Class 用两个类之间的许多关联绘制UML类图

Class 用两个类之间的许多关联绘制UML类图,class,uml,class-diagram,Class,Uml,Class Diagram,我正在设计一个在线音乐网站,其中有两个主要对象:用户和音乐。用户可以对音乐进行很多操作,比如上传、收听、收集、共享和下载音乐。如果我画一个UML类图,这个图看起来像 : 所以我的问题是,有这么多的关联可以吗?这些不是关联,而是要在音乐中定义的方法。两者之间可能只有一种关联 您可能希望首先综合一些用例: 基于此,您可以创建一个类模型: 并通过行为设计对此进行详细说明: 对于问题领域的模型,您拥有的模型是可以接受的。如果此模型旨在成为解决方案域的模型,则可能与表示可用操作的操作或表示已完成操作的

我正在设计一个在线音乐网站,其中有两个主要对象:用户和音乐。用户可以对音乐进行很多操作,比如上传、收听、收集、共享和下载音乐。如果我画一个UML类图,这个图看起来像

:


所以我的问题是,有这么多的关联可以吗?

这些不是关联,而是要在
音乐中定义的方法。两者之间可能只有一种关联

您可能希望首先综合一些用例:

基于此,您可以创建一个类模型:

并通过行为设计对此进行详细说明:


对于问题领域的模型,您拥有的模型是可以接受的。如果此模型旨在成为解决方案域的模型,则可能与表示可用操作的操作或表示已完成操作的信号有一个关联


由于您使用类
User
,因此您可能正在尝试对解决方案域进行建模。这表明你应该使用操作或信号

UML标准允许两个类之间有许多关联。严格地说,当从一个类导航到另一个类时,您应该向每个关联添加角色名称以区分它们。

您可能应该读一本书并阅读一些有关UML的基础知识。你的方法表明你不理解他们。欢迎来到StackOverflow,@Ivan。如果你找到了你的问题的答案,请考虑(点击复选标记),并考虑投票(点击上箭头)。接受一个答案向更广泛的社区表明,你已经找到了解决方案,给了自己一些声誉分数,并给回答你问题的人一些声誉分数。如果您的问题没有找到令人满意的答案,请留下评论。@JimL。很抱歉稍后回复。我太忙了,没有时间查看最近更新的内容。我想你是对的,但是你能解释一下如何在我的案例中绘制类图,让我更好地理解类图的概念吗?问题是,你在图表中混合了很多东西。所以这不是一个辅导的地方。所以我建议先读一些书来了解这个概念。当你在细节上绊倒时,欢迎你提出详细的问题。好的,我可以提出两个详细的问题。首先,如果这两个类之间只有一个关联,我如何命名它来总结我的系统模式中给出的所有方法?其次,不同方法可能有不同的多重性。对于用户上传音乐的方式,由于某一音乐只能由一个用户上传,用户类末尾的多重性应该为1。但对于另一种方法,如用户下载音乐,可能是从零到多,因为某个音乐可能不是由任何用户下载的,或者可能是由一个或多个用户下载的。如果我只使用一个关联,那么如何将不同的多重性分开呢?我添加了更多的解释,但仅此而已。请去读几本书。我想你提到的角色名称在我上面的图表中给出了。如果没有,具体是什么?@Ivan:你使用的是协会名称。Jordi所指的在UML1.x中被称为“角色”。现在它们被称为关联端属性。这些名字都写在关联行的末尾,靠近对应的多重数。@Ivan:我刚刚注意到你的多重数写得不正确。每个重数的最小基数和最大基数不应分开。它们应该在数字之间写上“.”,例如
0..*
。您可能错误地输入了一些基数作为关联结束名。@JimL.,我使用visio 2013绘制了该图,只是按照中的步骤添加了多重性。那篇文章的多重性建模不正确。我不太理解您提到的操作或信号,请您详细解释一下好吗?您可以使用一个从
用户
音乐
的关联<代码>用户
然后可以调用
音乐
上的操作。如果在
User
Music
中有交互状态机,或者如果对象在不同的机器上运行,则可以改为发送信号<代码>音乐可能具有所谓的信号接收功能,看起来与操作几乎相同。(尽管我刚刚注意到,
listenTo()
collect()
操作作为操作或信号是没有意义的。在分析模型和设计模型之间似乎有某种阴暗的东西。)