2015-01-04 51 views
1

我在想,在你创建一个类的UML的类图中,并且指定了它的属性,你只需要定义该类的所有属性,这些属性可以/可以在类的构造方法中找到。 当我尝试使用可视范式对我的(python-)代码进行逆向工程时,每个属性都显示在生成的类(在构造函数中声明的那些以及在该类的其他方法中声明的那些类)中。只列出在类的构造函数中定义的属性?

我想说,这是视觉范式的错误。

有人可以告诉我,如果我错了我的假设,或者如果VP代码生成器是错误的。提前致谢。

+2

传递给类构造函数的类属性列表和参数列表是完全独立的概念。例如,如果程序员没有另外说明,某些语言(C++,TypeScript,...)会自动假定具有0个参数的空隐式构造函数。另见http://www.uml-diagrams.org/class-diagrams-overview.html。这是你问的吗? – xmojmr

+1

谢谢,我仍然在阅读该链接。但我不是指传递给类构造函数的参数。我的意思是我在构造函数方法中创建“我自己”的属性。我想,我只能在uml中的类的属性 - 隔间中写这些。或者隔间还必须包含我可能在类的不同方法中创建的类的每个属性。 – coffeekid

+1

将您的Python代码添加到VP生成的类图的问题和屏幕截图中,以更有形地说明您的问题。该类将使用/拥有的所有属性(不管它们在运行时何时出现)应该位于属性隔离区中。 UML类图应该表示类结构的静态不可变视图。这是你问的吗? – xmojmr

回答

2

TL; DR Visual Paradigm的逆向工程自动机在这方面看起来没问题。


Sparx Systems → UML 2 Tutorial → Class Diagram

类图

的类图显示了任何面向对象的系统的构建块。类图描绘了模型或模型的一部分的静态视图,描述了它具有的属性和行为,而不是详细描述实现操作的方法。类图对于说明类和接口之间的关系非常有用。推广,聚合和协会都在反映继承,成分或使用,并分别连接的所有有价值的...

在通过在运行时Python代码动态创建的属性的情况下我的翻译将是所有属性的类将永远使用/拥有(不管它们在运行时出现的时间)应该在属性区间中。

UML Class Diagram应该代表的最大可能的存储器结构静态不变(“编译时间”)视图(由被称为类块)并落入UML Structure Diagrams类别。

如果要在一些属性在运行时得到一个明确的价值文档(UML三通)然后你需要使用一些图落入UML Behavior Diagrams类。

UML类模型可以以一种非常动态和多态的方式变成某种语言的计算机可执行模型(例如JavaScript)。这只是一个实施问题,UML并不真正关心太多。 UML关心的主要是Platform-independent model (PIM)

+0

感谢回答。但是如果你还没有在这个类和另一个类之间绘制一个组合,那么你只会在类的属性分区中列出一个属性,对吗?我的意思是,对于每个属性,您必须选择将其列入属性隔离区并绘制关联,是否正确? – coffeekid

+1

@coffeekid你可以显示它作为一个属性或链接或两者。这个http://stackoverflow.com/a/27216132/2626313似乎相关。真正重要的是,如果在UML模型中(该工具用作“后端”并且可以在[XML Metadata Interchange(* .xmi)](http: //en.wikipedia.org/wiki/XML_Metadata_Interchange)格式)关联建模正确。我有时使用工具代码生成功能从源代码的角度来看待模型。 Java代码生成器通常很接近 – xmojmr

+1

再次感谢你。你评论中最后的提示也非常有帮助。 :-)只是为了避免混淆,我必须补充一点,你不会称之为链接。因为链接是关联的实例。所以,一个关联连接两个类,一个链接将成为两个对象之间的连接。 – coffeekid

相关问题