【问题标题】:Pointers, Lists and Vectors attribute names necessary in the UML diagram?UML 图中必需的指针、列表和向量属性名称?
【发布时间】:2016-01-16 11:49:28
【问题描述】:

我有一个简短的问题:
我应该在 UML 图中命名类型的属性,如列表、数组、向量或指向对象(不是原始类型)的指针,还是仅使用关联/聚合/组合箭头就足够了?

示例:这些图表中哪一个是正确的?

【问题讨论】:

    标签: uml class-diagram


    【解决方案1】:

    在 UML 中,如果您将属性名称写在关联的远端,则您的第二个图表将是正确的。虽然允许 UML 属性不命名,但这不是一个好的做法。使用关联端来指示关系存在的原因。有时一对类之间必须存在多个关联,但原因不同。您如何区分它们?

    第一个图表显示了每种类型的两个属性。一个已命名,另一个(在每个关联的末尾)未命名。这是不正确的。

    【讨论】:

    • 谢谢。你说“在每个关联结束时”是什么意思?你能举出任何正确的例子吗?第一张图和第二张图都显示了聚合和组合(Class4 有指向 Class5 和 Class6 的指针,但 Class6 和 Class5 不知道 Class4)
    • 关联结束的例子见stackoverflow.com/questions/34252780/…。有关组合和聚合的说明,请参阅:stackoverflow.com/questions/1644273/…
    • 恕我直言,类图上的未命名属性意味着名称将与其类的名称相同。我没有作为规则阅读,但它被广泛用作未说的规则。
    • @Gangnus:在 UML 2.5 规范中,它说有一个约定“在本规范中的所有元模型图都采用。[ . . . ] 如果关联端未标记,则默认名称为end 是 end 所附加的类的名称,修改后第一个字母是小写字母。”但是,这不是规范的规范部分,因此不应依赖它。
    • @JimL。是的。但这不是一个坏规则,你可以在一个接受它的组织中依赖它。我在一些隐含地使用它的书中遇到过它。所以,很高兴知道它。
    【解决方案2】:

    这实际上取决于您要在这张建筑图中传达的内容。 绘图的目的是帮助推理软件的结构。它不应该用来表示所有的实现细节。如果你把太多的细节放在里面,它就会变得杂乱无章,而且随着变化的发生,它很难与源代码保持一致。

    UML 绘图应该比实现更抽象。它应该故意隐藏细节,以便传达类的外部视图,而不是它们如何在内部实现。您通常不希望类的用户对其内部实现有太多假设,因此您不希望过多地公开它。

    此外,架构通常由多张图纸表示,而不是一张。试着让每幅画都集中在一个抽象层次上。如果您有一些表示应用程序主要逻辑的高级类和许多低级类,则单独绘制仅高级类的图是有意义的。

    【讨论】:

    • 他没有提供太多信息。他两次输入相同的信息。第一个是不好的风格,第二个是那么糟糕的风格,可以认为是错误。
    猜你喜欢
    • 2020-03-28
    • 1970-01-01
    • 2015-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-07
    • 1970-01-01
    相关资源
    最近更新 更多