cof*_*kid 6 python uml visual-paradigm
在UML中,似乎没有任何元素相当于python中的模块,或者至少我还没有想到它.
python中的一个模块,由一个.py文件表示,有一个标题,表示导入.它可以包含很多类,所有的类都是在模块命名空间,可以直接相互交谈,并有机会获得该模块已导入的包/模块/班.我怎么能在图中画这个?
更新1:最后,我偶然发现了一个网页,在那里我发现了一些似乎相关的东西......在这个网站上(http://www.alan-g.me.uk/l2p/tutclass.htm)作者说:"混合类和模块"一章:
"......我们可以通过两种方式在UML中以图形方式表示.类的逻辑分组可以使用Package表示,或者我们可以将物理文件表示为组件...."
如果这是正确的,python中的模块就像UML中的一个组件.我仍然试图弄清楚,这是如何工作的(因为UML中的一个组件在我看来与python中的模块不同),以及我可以如何准确地模拟它.
更新2:我正在使用可视化范例社区版(没有它的代码生成功能)对其进行测试.现在,我能够看到,在UML模型中,component-element具有类似文件夹的行为,就像包一样.当我用鼠标在包含在一个组件中的类悬停,我可以看到代表自己的命名空间中的组分i想要的效果,.
现在(如果这是建模的正确方法),我在哪里可以指定,这个模块应该导入哪些其他包/模块/类?当我在视觉范例中选择一个包时,它为我提供了一个导入包的选项.但是当我选择一个组件时,没有提供导入功能.非常感谢提前.
请注意,模块概念只是Python 中提供代码可重用性和组织的一种方法。Python 模块与 UML 包和组件之间的链接不是直接的,而是取决于特定模块的角色。
抱歉,我不是用 Python 编程,所以我可能对典型模块用法的理解不正确(或者我可能会错过一些东西)。然而,据我了解文档,您可以将 Python 模块用于两个基本但略有不同的目的。它可能代表一个组件(即系统的一部分)或一个库(即可重用的类集)。
前一个在 UML 中有直接表示,即组件。请注意,组件是其拥有的(包括导入的)元素的命名空间。然而,组件还不能作为命名空间导入,它可以导入包(见下文)。
另一方面(对于库),在 UML 中,您有一个包,您可以轻松地使用它来对应该可导入的模块进行建模。包也是一个命名空间,但它可以由任何其他命名规范(例如其他包和组件)导入。当Package被导入到某些Namespece时,它拥有的元素在导入的Namespace中变得可用(有一些限制,更多细节请参见UML规范的7.4.3.3和12.2.3.2)。
导入通常显示在包图中。
所以是的,你的思维方向是好的。