概念类图和详细类图有什么区别?

时间:2016-09-21 02:41:42

标签: uml class-diagram object-oriented-analysis

有人可以简单解释概念类图和详细类图之间的区别吗?

4 个答案:

答案 0 :(得分:2)

虽然“概念类图”表达了 概念(域)模型 ,但您(或您的教授)对“详细类别”的含义并不清楚图表“:它可以引用(语言/平台无关的)设计模型 实现模型 ,如C ++类模型或一个Java类模型。

另请参阅我对this related SO question的回答。

概念模型和设计模型之间以及设计模型和实现模型之间的一对多关系如下图所示:

The one-to-many relationships in model refinement

作为一个例子,说明了从概念到设计到实现的派生链如何工作,请考虑以下人员/人概念/类的模型:

From concept via design to implementation

域模型是在软件工程项目的分析阶段生成的问题域的独立于解决方案的描述。术语“概念模型”通常用作“域模型”的同义词。域模型可以包括域的状态结构的描述(在概念信息模型中)和其过程的描述(在概念过程模型中)。它们与解决方案无关,或“与计算无关”,因为它们不关心任何系统设计选择或其他计算问题。相反,他们关注的是所考虑领域的主题专家的观点和语言。

在设计阶段,首先是一个独立于平台的设计模型,作为给定软件工程问题的通用计算解决方案,是在域模型的基础上开发的。可以使用相同的域模型来生成表示不同设计选择的许多(甚至是根本上)不同的设计模型。然后,通过考虑从架构风格,要最大化的非功能性质量标准(例如,性能,适应性)和目标技术平台的许多实现问题,从设计模型导出一个或多个平台特定的实现模型。

答案 1 :(得分:0)

概念类图用于理解和分析问题域。详细的类图是一个设计工件,许多东西可能已被优化掉了。例如,每只狗都可能会吠叫,但是狗沙龙应用程序并不关心,所以它可以优化这一事实。

答案 2 :(得分:0)

我不知道任何定义这两个概念的标准或方法。例如,UML规范没有提到它们。我认为每个答案都是主观的。基于超过25年的IT相关建模经验,我将给出自己的答案。

在概念类图中,每个类都是一个概念,通常与业务领域,现实世界相关,例如,客户,订单等。它还可能显示在业务领域中无法直接找到的概念,但需要对特定应用程序的功能进行建模,例如:备份副本。这些是应用程序用户必须理解的概念。另请参阅www.agilemodeling.com

还有其他类型的类图,例如为源代码建模的类图,其中每个类对应于Java类或C#类,或者为物理数据库结构建模的类图,其中每个类对应于数据库表。

这些类型的图表中的每一种都可能会或可能不会详细说明。如果类图 详细,则通常不会显示任何属性,也不会显示主要属性。如果详细说明了类图,则会显示与手头问题相关的所有属性以及这些属性的数据类型。

答案 3 :(得分:0)

概念类图的概念是例如由Scott Ambler在http://www.agilemodeling.com/artifacts/classDiagram.htm#ConceptualClassDiagrams解释。

基本上"概念"这意味着图表的内容取自采用"概念的分析观点。域名并描述它们。 对于"概念"你也可以说:

  • 项目
  • 方面
  • 物体
  • 主题

如果您向人们询问他们希望通过您的软件解决哪些问题,概念图基本上就是您所获得的。因此,您可以通过提出有助于您创建图表的问题来分析情况/问题:

  • 有什么相关的东西? - 这些将是您的课程候选人
  • 那些东西有什么特点? - 这些是您的属性的候选人
  • 这些事情如何相互关联 - 例如是另一个的一部分?它需要另一个吗? - 这些是你们关系的候选人
  • 您应该如何处理系统中的这些内容? - 这些是您的运营候选人

在过去,这一步称为OOA - 面向对象的分析。接下来的步骤是OOD - 面向对象的设计和OOI - 面向对象的实现。许多年前,一些作者提出为OOA / OOD和OOI创建三种不同的模型。因此,您对OOD和OOI有不同且通常更详细的图表。对于术语"详细类图"我猜是OOD和/或OOI视图中的一个是有意义的。但要小心 - 以这种方式创建的一些图表将以模式或类似模式的想法为基础。如果您在每个概念图的具体图表中继续捕获这些模式,那么您的图表往往会非常重复和冗余。我建议只举一个如何从问题到解决方案的例子然后评论"对所有其他相似的概念这样做#34;。