1

我目前正在为我的大学做一个项目,一位老师告诉我,我错误地认为 UML 类图中可能存在类(将其视为设计图)在数据中没有等价物模型。然后他强迫我提供一个反例来证明我的观点,但我就是想不出一个。

我查了几本关于 UML 的书,例如“学习 UML 2.0”、“应用 UML 和模式”以及傻瓜式的 UML 2,但我找不到任何关于哪些类出现在类图上的信息。我向他询问了实现类,但他告诉我它们不应该包含在类图中。所以我在这里不知所措。

在发布之前,我还检查了这个问题:

概念 UML 类图和 ERD 之间的区别?

从概念数据模型生成 UML

如何在 uml 类图中将数据与函数相关联

但他们并没有真正解决我的问题。

感谢您提供的任何见解。

4

3 回答 3

5

你和你的老师都不必要地被 UML 和概念数据建模(我认为这相当于 ER 建模)之间的差异分心。你和你的老师讨论的真正问题是分析和设计之间的区别,不管使用什么模型。

可以创建一个 UML 模型,该模型按照说明的方式描绘问题,或者按照设计的方式描绘解决方案。在第一种情况下,应该省略实现类,因为它们不属于问题域。在第二种情况下,它们应该被包括在内。第一种情况是分析。第二种情况是设计。

ER 图也存在同样的歧义。有些人,包括我自己,只使用 ER 模型和 ER 图来表示问题本身固有的数据需求。这就是“概念数据建模”最常见的含义。在这个框架中,唯一应该出现的实体是在主题本身中具有感知现实的实体,而不仅仅是数据库或应用程序内部的构造。这是分析。

但是还有很多其他人,也许是大多数人,他们使用 ER 图来描绘表模式的设计。在这个框架中,包括外键,并且联结表被提升到实体的状态,即使它们不是主题实体。只要分析和设计之间的区别保持清晰,这本质上没有错。

不幸的是,分析和设计之间的区别常常被掩盖得面目全非。SO中有几十个这样的例子。

因此,如果允许分析和设计之间的混淆潜入您和您的老师之间的讨论中,那么讨论最终可能会朝着几乎任何方向发展。

于 2012-11-04T02:13:56.530 回答
2

根据我对 UML 的理解,它没有定义图表中应该包含的内容。我在 IBM 网站上找到了这个例子:(图片没有显示,所以这里是链接:http ://www.ibm.com/developerworks/webservices/library/ws-RESTservices/ )

在此处输入图像描述

当然,servlet 不是域模型的一部分。我们用于对类建模的 UML 类图,这些类是具有属性和方法的实体。恕我直言,它们是域模型的一部分还是支持应用程序的功能类都没有关系。如果您需要将它们展示给客户,它们必须在那里。

于 2012-10-30T09:07:08.547 回答
2

“一位老师告诉我,我错误地认为 UML 类图中可能存在类(将其视为设计图)在数据模型中没有等价物。然后他迫使我提供一个反驳 -举个例子来证明我的观点,但我就是想不出一个。”

他是对的。在概念分析/概念设计阶段,UML 类图中的那些矩形框描绘了“概念”。无论“概念”是什么,你总是可以在它周围画一个 E/R 图来说明这个概念的(本质)、与之相关的其他概念,以及这些关系的本质是什么。

于 2012-11-01T09:52:41.010 回答