【问题标题】:Component - Subcomponent Relationship or Generalization Relationship? in Component Diagram UML组件 - 子组件关系还是泛化关系?在组件图中 UML
【发布时间】:2015-04-20 15:26:09
【问题描述】:

我对组件 - 子组件关系和 组件之间的泛化关系。

我们什么时候需要将两个组件称为组件-子组件关系以及何时将它们称为泛化关系。

泛化关系(图A)是否可以一直被称为组件图中的组件-子组件关系(图B)? (倒数为假可以理解)

图A:

图 B:

【问题讨论】:

    标签: uml associations generalization component-diagram


    【解决方案1】:
    • 图中B中的符号用来表示component realization关系。

      www.omg.org/spec/UML/2.5/Beta2:

      11.6.3 结构化分类器 → 组件 → 语义

      ...Component 可以由多个分类器实现(或实现)。在这种情况下,Component 拥有一组ComponentRealizations 到这些Classifiers

      一个组件的作用类似于Package,用于定义涉及或与其定义相关的所有模型元素,应该明确拥有或导入。通常实现ComponentClassifiers归它所有...

    • 您可以像往常一样在组件之间使用generalization 关系(图A),因为组件与任何其他类一样是UML classifier

    但是图A和图B代表不同的东西和图B在你的例子是不好

    【讨论】:

    • 第二张图显示了嵌套(子组件),而第一张图显示了概括。所以两者都有一个是错误的。
    • @ThomasKilian 从 OP 示例中的名称猜测您不会使用“汽车”、“酒店”和“空调”来实现(实现)“服务控制器”组件并将其交付给客户端.它们似乎是不同的东西,在不同时间、不同地方的不同软件中使用。所以图B 是错误的。它们可能共享一些行为甚至代码,因此它们可能通过泛化关系连接起来,所以图A就是OP想要表达的意思
    • 您好 xmojmr,感谢您的回答和宝贵的信息。因此,这意味着,通常,如果组件被另一个“拥有”,那么我们可以说它们之间存在组件实现关系。不是吗?
    • @Namalak 我也是这样阅读定义的。但是从 UML 元模型的角度来看,一个组件可以在不需要/使用它的情况下打包(“拥有”)另一个组件,因此不会实现。 UML Superstructure 2.4.1 还说:“..应该注意的是,对于需要多个不同实现集合来实现单个组件规范的应用程序,UML 标准配置文件中定义了一组标准原型。特别是、«规范»和«实现»是为此目的而定义的..”。如果你需要调用的东西正确,请查阅规范
    猜你喜欢
    • 1970-01-01
    • 2011-10-06
    • 2014-07-04
    • 2020-06-13
    • 1970-01-01
    • 2014-07-17
    • 1970-01-01
    • 2022-01-19
    • 2013-07-28
    相关资源
    最近更新 更多