【发布时间】:2021-05-10 15:36:37
【问题描述】:
我想生成基于 UML/SysML 的 python 代码。编码主要是命令式的——调用传递结果、切换状态和一些主要部分的函数。
如何创建一些简单的主程序,其中包含我的逻辑(同样是原语:一些输入收集功能、一些处理功能、一些输出写入器功能)?
在 Enterprise Architect 中,我认为没有类、对象等是不可能的。在这个接近硬件/功能安全的领域,不需要 OOP 的东西、继承、多态性。但似乎所有的活动图、序列图等都无法使用。有没有人建议如何使用基于模型的方法来弥补这一差距?
【问题讨论】:
-
帧挑战。您确定行为代码生成是您想要的吗?业界似乎回避了这一点,因为在大多数情况下,实际编写代码比对其建模要容易得多。编写一个生成器是一项巨大的投资,只有在你可以将它用于许多项目时才会收回成本。对于单个项目,这永远不会具有成本效益。对于您的具体情况,没有现成的解决方案。
-
在 EA 中,您可以创建自己的代码生成模板。你可以为 Python 创建它们。要在 EA 中使用代码生成,您需要使用类而不是活动图来创建模型,但是如果您创建适合您所针对的功能范式的类模型,我认为这没有理由不实际工作。您的行为代码必须嵌入到您在类中定义的操作中。
-
正如吉尔特所说。建模和编码是两个世界。问题不是如何使它们成为一个世界,而是如何最好地在它们之间建立桥梁。我不建议将任何代码放入 UML 工具(尤其不是 EA)中,因为它们不是 IDE 的补充。 RE 在实践中不起作用。这只是鲜血、汗水和泪水。但是,可以让两者并肩工作以顺利进行。棘手,但可能。
-
谢谢。是的——它不应该只针对一个项目。另一个原因是它涉及功能安全。在这里,您应该对更高的 ASIL(所谓的安全完整性级别)有更深入的理解和代码文档。从长远来看,如果软件和文档确实应该同步并且软件始终应该完全按照文档和图表等文档的说明进行操作,那么我认为没有任何替代方案可以提供单点故障/一个源。
标签: python uml modeling imperative-programming sysml