13

类和包图模型软件逻辑设计

组件图模型实现视图

您能否通过一个非常简短的示例来阐明上述区别?

4

4 回答 4

13

答案在于你的问题本身。你怎么看,一个软件是怎么设计的,一个软件是怎么实现的?

在设计方面,我们制定了设计可行软件的蓝图。该蓝图涉及可以转换为软件的模型,而实施涉及将该模型转换为实际软件(即代码)。

同样,组件通常比类更大、更抽象。虽然类是对象实例的相对较低级别的蓝图(设计),但组件可能是一组类,它们一起形成封装的模块(实现),然后您可以与之交互。一个组件甚至可能根本不包含任何类!

现在,组件图不显示实际代码,而是显示实际实现的软件组件之间的依赖关系(这些组件可以是可执行文件、文件、文件夹等任何东西。例如:-

在此处输入图像描述

正如我已经讨论过的;类图是 UML 结构图,它在类和接口级别显示设计系统的结构,显示它们的特性、约束和关系 - 关联、概括、依赖关系等。类图示例:

在此处输入图像描述

我希望我说清楚了。

于 2013-07-01T10:01:46.500 回答
5

在 UML 中,组件可以做与类图相同的事情。

但主要区别在于组件的职责比类更大


Kruchten 开发了4+1 视图模型来捕获系统的不同部分。简单地说,它可以帮助您对系统的不同视图(逻辑、物理、开发、流程、用例)进行建模

每个视图都捕获系统的特定方面

  • 逻辑视图描述了系统由什么组成以及各部分如何交互

  • 实现视图也称为开发视图,描述了系统的各个部分是如何组织成模块和组件的

于 2013-06-30T11:58:39.717 回答
2

通常可以将其视为更详细的图表。类图应该具有使用实现特定类型定义的属性,例如。

Box
 - cats: list<Cat>
 + getCat: Cat
 + addCat: void

该组件是同一事物的不太详细的视图。我不记得有多少细节是可见的。据我记得,它可能与没有类型的类图相同。

组件图应该用于设计您要构建的总体概念。具有更多类的类图可能会有所不同,因为实现需要的类不必使用组件图来呈现。

我的话必须持保留态度,因为我承认我有一段时间没有画图表了。

于 2013-06-30T11:56:25.387 回答
1

类模型是组件模型的基础:

  1. 软件设计人员首先设计逻辑结构,指定逻辑元素(“类”)、它们的职责(“方法”)、结构(“属性”)以及与其他类的关系(泛化、关联等),而不管(在某种程度上)将使用的技术。这是类模型

  2. 基于类模型,软件工程师指定他们将编写或以其他方式购买的软件片段(“组件”)以及它们之间的连接(集成、依赖关系等),以实现设计的类模型。这是组件模型。

  3. 然后,部署模型描述了组件将在硬件或虚拟硬件上部署的位置。

于 2019-09-05T10:55:30.117 回答