我必须同意Preet,但实际上,子系统比组件大.我将组件用于库(购买,掠夺或构建)和子系统,用于执行给定集成功能的整个系统的一部分.例如,在血液处理装置中,离心机驱动器和控制器将是一个部件.集成的血液吸入调节(包括安全机制,电机控制,用户控制和通信)将是一个子系统.
在UML 2.0之前,我可以完全看到一个<<subsystem>>设计时<<component>>,最终会成为一个<<component>>.UML 1.4将组件定义为"系统的模块化,可部署和可替换的部分,它封装了实现并公开了一组接口.组件通常由驻留在其上的一个或多个分类器(例如,实现类)指定,并且可以通过一个或多个工件(例如,二进制,可执行或脚本文件)来实现."
在将上述"模糊性"引入UML(在UML 2.0中)后,我更倾向于使用<<subsystem>>更大的<<component>>,并将它们视为系统的可替换和可重用的组成部分.