【问题标题】:How to - from UML diagrams to Class diagrams using design patterns如何使用设计模式从 UML 图到类图
【发布时间】:2014-09-27 10:00:12
【问题描述】:

我正在与一位朋友合作开展一个大学项目,该项目涉及管理图书馆的软件产品(主要是借阅和购买书籍)。 我们还制作了很多文档和很多图表:用例图、序列图和活动图、架构图。

现在,从前面的图开始,我们必须使用设计模式高效地生成类图:如何进行?

【问题讨论】:

  • 嗯...小心点? :P 不知道问题是什么。 (不过,我会说,如果您的部分要求是“使用设计模式”,那您就错了。)
  • @cHao 好吧,我们不知道该怎么做。我们做错了什么?
  • “如何进行”是一个非常模糊的问题。至于你做错了什么,如果你指的是我的评论,听起来你正在努力以任何必要的方式使用设计模式,而不是让项目告诉你它们是否/在哪里适合.
  • @cHao 我想我明白你的意思,但这是我们第一次做这样的事情。至于问题:1)我们不知道如何从我们之前的图表(尤其是序列图)中正确推断出特定的设计模式; 2)如何将这些图翻译(映射)成类图。
  • 程序员的理论题.SE

标签: design-patterns uml class-diagram sequence-diagram


【解决方案1】:

从您所写的内容来看,您正在寻找的是创建一个(或几个)领域模型。域模型从业务域中捕获概念和属性。

通常,您可以从用例中轻松识别业务领域中的概念,例如如果您有一个名为 Register for Subscription 的用例,那么您会发现一个名为 Subscription 的域对象,我不会感到惊讶。

我之前写过几篇文章,它们也可以帮助你塑造你的领域模型和用例:

基本上,UML 不会告诉你如何做到这一点,UML 是一个规范,你可能认为它是一个工具箱。你用它来构建什么,取决于你。

【讨论】:

  • 嗯,实际上我们已经使用用例图和类图生成了领域模型。现在我们必须进入设计阶段,在这个阶段我们必须生成其他工件,例如类图(包含将要实现的所有实际类)
  • 您为什么要这样做?看起来您将尝试创建显示您的体系结构的类图(可能还有更多的序列图)。现在除非你真的在记录你的架构,否则我不会那样做。价值有限,工作量体贴。尝试弄清楚尝试实现这些设计类图的目标是什么。
  • 嗯,我们实际上是从多个角度记录我们的系统架构。事实上,我们已经在“设计级别”制作了序列图和活动图。
  • 我们在很多项目中所做的是为您重复使用的模式创建序列图。这有帮助。但是要对架构中的每个类以及可能的框架中的每个类进行建模,我不会这样做。工作量很大,而且价值有限,因为每次发生变化时都需要重新建模。我会坚持概述,而不是确切的模型。
  • 当然,我们不会对架构的每一类进行建模,而只会对从需求分析和用例排名中确定的相关类进行建模。所以,目前,我们有 6 个相关用例,被归纳为 6 个序列图和活动图。现在,我们从 6 中取出 2 并进一步进行设计。
【解决方案2】:

用例显示系统的用户需求。序列图(取决于细节)要么显示对象如何交互,要么显示子系统如何交互。如果您的序列图处于更高的抽象级别,那么您必须提出您的类。我建议进行一次对象闪电战,在其中列出您能想到的所有名词……书籍、图书馆、图书管理员、目录、借阅者、日期、书籍位置、罚款等。确保您的所有要求都满足类和类之间的关联。分析后丢弃任何没有责任的类。浏览所有序列图,看看是否可以将类分配给生命线。如果没有,你可能会错过一门课。最终,所有场景都必须由类图中的类来完成。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-13
    相关资源
    最近更新 更多