2014-01-29 231 views
0

经过与混合用例和类图混淆之后,设法清除了一些疑惑,并拿出了以下类图。感觉这比用例更舒适。希望没有错。希望对其中的任何错误和改进提供一些反馈意见。谢谢。图书馆的类图

问:

一个新的图书馆拥有书籍,视频和CD,它贷款给它的用户。所有图书馆资料 都有唯一的识别号码和标题。另外,书中有一个或多个作者,视频有一个制作人和一个或多个演员,而CD有一个或多个艺术家。

图书馆维护每个图书馆项目(书籍,视频或CD)的一个或多个副本。所有 图书馆资料的副本可以借给用户。最多只能提供参考材料,最长两小时,且不能从库中移除。其他材料可以租借至 两周。对于每笔贷款,图书馆都会记录用户,贷款日期和时间以及返还日期和时间。对于用户,图书馆维护他们的姓名,地址和电话号码。

为上面的描述绘制一个类图。

类图:link to diagram

Class Diagram

+0

这可能是一个很好的添加一个Item类超级类型的书,视频和CD。这个Item类将有一个uniqueID,一个标题isReferenceOnly作为属性。那么它将与图书馆有关,而不是书籍,CD和视频中的三个关联 –

+0

我明白你的观点。除此之外,这个类图很好吗? TNKS。 – kar

回答

0
  • 不要用笔记多重1 .. *。编辑关联或他们的目的,并写在那里。
  • 在末尾写入多重值,而不是在行的中间。
  • 箭头应该通过属性的名称进行订阅。
  • 图书馆可以有很多视频,书籍,CD等。所以,多重性应该在两端。
  • 线条上没有箭头与两端的箭头相同。检查它的右侧。
  • 如果图中不存在类型,则在块内写入属性。如果他们不是这样,把他们的名字放在协会的两端,靠近箭头。

  • 你应该在左侧使用一些空的钻石。

  • 你应该决定生产者的多样性。
  • 从副本中划分标题。也许,从版本。
  • 不要混合复数和单数 - 坚持一些系统。我只使用复数作为收藏品,但当然,你不需要拿它。类名中的复数是无意义的 - 除单例之外的所有类都有很多实例。
  • 您不需要将库连接到CD和视频 - 它们仅仅是书籍的子集。书本已经连接起来了。与库中的三个列表相同。
  • 贷款应该连接到书。
  • 根据标准,贷款()是贷款类的构造函数。它不能在另一个班上。