【发布时间】:2025-11-30 08:25:02
【问题描述】:
我想问一下UML意义上的子系统和组件有什么区别?
【问题讨论】:
我想问一下UML意义上的子系统和组件有什么区别?
【问题讨论】:
我必须同意 Preet,但实际上,子系统大于组件。我将组件用于库(购买、掠夺或构建)和子系统,用于执行给定集成功能的整个系统的一部分。例如,在血液处理设备中,离心机驱动器和控制器将是一个组件。集成的抽血调节(包括安全机制、电机控制、用户控制和通信)将是一个子系统。
【讨论】:
在 UML 2.0 之前,我可以完美地将 <<subsystem>> 视为设计时 <<component>>,最终将成为 <<component>>。 UML 1.4 将组件定义为“系统的模块化、可部署和可替换部分,它封装实现并公开一组接口。组件通常由一个或多个分类器(例如,实现类) 驻留在其上,并且可以由一个或多个工件(例如,二进制文件、可执行文件或脚本文件)实现。"
在将上述“模糊性”引入 UML(在 UML 2.0 中)之后,我更倾向于将<<subsystem>> 用作更大的<<component>>,并将它们视为系统的可替换和可重用的组成部分。
【讨论】:
来自IBM developerWorks - UML basics: The component diagram
UML 2 规范相当模糊 关于子系统与 组件。规范不 对待任何组件或子系统 不同于建模 看法。与 UML 1.x 相比, 这种 UML 2 建模歧义是新的。 但这是有原因的。在 UML 1.x 中,一个 子系统被认为是一个包, 这个包符号是 让许多 UML 从业者感到困惑; 因此 UML 2 对齐的子系统作为 专门的组件,因为这是 大多数 UML 1.x 用户如何理解它。 这种变化确实引入了模糊性 进入画面,但这种模糊性 更多的是现实的反映 与 UML 2 中的错误相比 规范。
总之没有。
【讨论】:
在 UML 模型中,子系统是一种原型组件,代表系统中独立的行为单元。子系统用于类、组件和用例图中,以表示您正在建模的系统中的大型组件。
您可以将整个系统建模为子系统的层次结构。您还可以通过指定子系统的接口和支持这些接口的操作来定义每个子系统所代表的行为。
在图表中,隔间显示有关子系统的属性、操作、提供的接口、所需的接口、实现和内部结构的信息。
通常,子系统有一个名称来描述其在系统中的内容和角色。
如下图所示,子系统显示为包含子系统名称的矩形。它还包含关键字 «Subsystem» 和子系统图标。
【讨论】: