【问题标题】:How to model python properties in UML diagram如何在 UML 图中对 python 属性进行建模
【发布时间】:2016-07-10 16:59:29
【问题描述】:

在 UML 类图中对 python 属性建模的好习惯是什么? 属性本身是类对象,它们的 getter 和 setter 是类函数。从类外部来看,它们看起来像实例属性。那么,您建议如何在我的类图中呈现它? 谢谢

【问题讨论】:

  • 欢迎来到 StackOverflow,@Robert_Jordan。如果您找到了问题的答案,请考虑accepting it(通过单击复选标记),并考虑对其进行投票(通过单击向上箭头)。接受答案向更广泛的社区表明您找到了解决方案,给自己一些声誉积分,并给回答您问题的人一些声誉积分。如果您的问题没有找到满意的答案,请发表评论。

标签: python properties uml


【解决方案1】:

这真的取决于你的 UML 工具使用什么样的模板。在某些工具中,公共属性和方法框旁边有一个属性框。 UML 表示法规定属性用小驼峰写,您可以用大驼峰写属性。由于公共访问修饰符 (+),它们在视觉上也会有所不同。

您是否需要为 getter 和 setter 指定不同的访问修饰符?我不知道我会怎么做。请记住必要的抽象级别。

请记住,UML 主要是一组已定义的标准。如果标准需要稍微调整以适应您的需求,请不要犹豫。重要的是您的团队和利益相关者了解语法。

【讨论】:

  • 好吧,没有不同的访问修饰符,都是公开的,如果他们可以在 python 中这样做的话。我会同意你的最后一点......谢谢!
  • 在UML中,属性和属性是一回事,这使得你的第三句话与它本身发生冲突。你能澄清你的意思吗?此外,UML 并没有说明属性是用小驼峰写的,或者关于如何编写名称的任何其他内容,除了合法字符集。
  • 您对 UML 属性与属性 Jim L 的看法是正确的。但是我已经看到了一些工具,可以为每个工具定义一个框,因为它没有在模板中定义。给定 Umlet 或其他免费绘图工具,您可以为属性(在本例中为字段)和属性(如 py3、js 和 c# 等中的属性)制作框。因此,真正由自己决定什么是产生清晰沟通的必要条件。
  • 如果你使用非UML绘图工具,你可以做任何你喜欢的事情。最初的问题是如何在 UML 图中建模 Python 属性,而不是任意的绘图工具。 UML 的全部意义在于使用通用词汇表进行交流。
  • Umlet等很多工具都是UML绘图工具,但不一定约束一切
【解决方案2】:

好的做法是对您的项目有效的方法。

为了对 Python 属性建模,您可以添加指示其用途的原型 getter 和 setter 操作。属性和操作之间的链接通常通过命名约定来完成。一些工具提供内部链接以使用 getter 和 setter 创建属性。

如果您不使用代码生成,您还可以将属性定型以指示它们用作属性(从而告诉编码器使用@property)并放弃操作。如果您使用自己的代码生成器,这将类似地工作。工具嵌入式代码生成器可能需要上述额外操作。

【讨论】:

    【解决方案3】:

    我建议您阅读另一个名为 Geert Bellekens 的 Stack Overflow 用户的 UML Best Practice: Attribute or Association。它简单地说:

    对数据类型使用类和属性的关联。

    您应该在连接到这些 UML 类的 UML 关联的末端编写由非数据类型(具有标识)键入的 Python 属性。您应该在 UML 类的属性框中写入由简单数据类型(除了它们的值之外没有身份)键入的 Python 属性。

    访问器和修改器在很大程度上只是噪音。模型编译器或 IDE 可以为您生成这些。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多