【问题标题】:What is the difference between Conceptual Class Diagram and Detailed Class Diagram?概念类图和详细类图有什么区别?
【发布时间】:2016-09-21 02:41:41
【问题描述】:

谁能简单解释一下概念类图和详细类图的区别?

【问题讨论】:

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


【解决方案1】:

虽然“概念类图”表达了概念(领域)模型,但不清楚您(或您的教授)对“详细类”的含义图”:它可以指(独立于语言/平台的)设计模型或类似 C++ 类模型的实现模型或Java 类模型。

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

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

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

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

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

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

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

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

      每种类型的类图都可能详细,也可能不详细。如果类图详细,它通常不显示任何属性,或仅显示主要属性。如果类图是详细的,它会显示与当前问题相关的所有属性以及这些属性的数据类型。

      【讨论】:

        【解决方案4】:

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

        这里的“概念”基本上是指图表的内容是从分析的角度获取的,该观点采用域的“概念”并对其进行描述。 对于“概念”,您也可以说:

        • 东西
        • 项目
        • 方面
        • 对象
        • 主题

        如果您向人们询问他们希望通过您的软件解决什么问题,您就会得到概念图。因此,您可以通过提出有助于创建图表的问题来分析情况/问题:

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

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

        【讨论】:

          猜你喜欢
          • 2011-03-28
          • 2011-06-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2021-02-20
          • 2013-03-18
          相关资源
          最近更新 更多