如何在EA 16中正确呈现符合UML 2.5.1的嵌套子组件?
问题描述
我有如下组件结构:
[组件结构示意图]
目前公司规定的子组件最佳实践方式如下:
[标注为“Invalid”的子组件使用方式示意图]
但这种方式不合规,原因有二:
- 无法重复添加同一个子组件(比如汽车的4个轮胎)
- 父组件缺少表示分隔区域的水平线
在EA 15中,我将子组件作为实例插入,生成的效果符合《UML 2.5.1规范》第214页的示例,是我们期望的样式:
[标注为“Looks valid”的合规组件结构示意图]
但在EA 16中,同样将子组件作为实例插入,得到的结果是:
[标注为“Not in line with UML 2.5.1?”的EA16实例插入结果示意图]
UML规范中下划线专用于表示实例,因此EA 16对实例的表示是正确的(与EA 15不同)。但《UML 2.5.1规范》第214页的示例明确说明,这是「包含其他组件的组件」,而非包含其他组件实例的组件:
[《UML 2.5.1规范》第214页示例示意图]
请问如何在EA 16中生成符合要求的正确输出?
注:我也曾考虑将子组件作为property(属性)插入(无part选项),但最大问题是缺少组件图标,多数同事会觉得不符合直觉。
解决方法
要在EA 16中生成符合《UML 2.5.1规范》要求的组件包含结构,可按以下步骤操作:
通过「Part属性」添加子组件
- 右键点击父组件,选择「Add | Part Property」
- 在弹出的属性配置窗口中,将子组件的「Type」设置为目标组件(例如“轮胎”)
- 若需要重复添加同一子组件,只需多次执行上述操作,每个Part可设置不同名称(如Tire1、Tire2),但类型均指向同一个组件即可
- 这种方式会自动在父组件内生成分隔线,且子组件会显示对应的组件图标,符合团队的直观认知
调整显示样式以匹配规范
- 若子组件名称带有下划线(表示实例),可选中对应的Part属性,在「Appearance」标签页中取消勾选「Show Instance Name」,确保仅展示组件类型名称,匹配规范中“包含组件而非实例”的要求
验证最终效果
- 完成设置后,检查父组件是否显示分隔线、子组件是否带有图标、同一组件是否可重复添加,对比《UML 2.5.1规范》第214页的示例确认样式一致
内容的提问来源于stack exchange,提问作者Jan Rothkegel
相关产品推荐
相关产品推荐

