简短的问题。你如何将UML图转换成代码?类图是一个很明显的例子,但其他类如活动,用例,序列,状态,包等等呢?将UML转换为代码
3
A
回答
3
哇,如果你在开始编码之前就已经拥有了所有这些,这真的很酷;)这意味着某人在为期望的软件建模时做了一份体面的工作!
也就是说,UML的各种图可以或多或少贴近代码。这里是我对它一般来说的感觉:
- 类图。在大多数情况下,与代码一对一映射。仍然可以在分析过程中使用,以显示不会一对一映射的概念,但这种情况非常罕见。
- 包装图。在大多数情况下,也可以与代码一对一映射。除了展示实际来源的包装之外,我从未看过它的任何用法。
- 序列图。在大多数情况下,地图也会相当接近代码。除了顺序图中经常会避免的某些步骤,否则会变得很大。它仍然显示直接或间接呼叫谁。
- 状态图。这一个更抽象。它显示程序中的元素的各种状态(或程序本身),不能按原样转置;您首先需要决定如何存储/建模状态。例如。在java中显示可能的thread state的状态图并不映射到代码中真正直接可见的内容,但线程有一个状态,如corresponding enum所示。
- 活动图。显示算法/程序的各个步骤。尽管一些事情可以相当容易地进行转置,例如循环,但其他一些(如并行活动)的实现在代码中可能会有所不同。并行活动最明显的实现是使用线程,但这可能是JMS,具体取决于图的粒度。它仍然不会告诉你每一步的逻辑是什么,所以最终有一些工作需要解释和实施。
- 用例。这是最重要的一个。它不能被转换,你需要考虑如何实现用例,这个用例可以从很高层次到低层次。没有它的公式。
结论:UML是一种用各种视角描述软件的工具。某些方面可以在代码中轻松转换,其他方面更加抽象,并且可以以各种方式实现,具体取决于图的粒度。
这是设计和发展之间的区别:实行的是设计细化到一些真正的可执行文件(代码),这可能需要更多或更少的工作依赖于现有设计的粒度。
这个梦当然是能够生成UML的代码,而反过来,但我们还没有呢!它几乎适用于类图:)
2
我已经使用EclipseUML Omondo进行UML建模,并使用AndroMDA进行代码生成。 您可以使用原型从Class,usecase和State图生成代码。您需要在分类器上添加原型,然后AndroMDA引擎读取原型并生成代码。 看看AndroMDA论坛的更多信息:http://forum.andromda.org/index.php
相关问题
- 1. 试图将uml合成转换成代码[uml]
- 2. 将UML类图转换为C++代码(VS 2012)
- 3. 建议工具将cpp代码转换为UML类图
- 4. 将VB6代码转换为PHP转换
- 5. 将xml转换为代码
- 6. 将代码转换为POST
- 7. 将代码转换为RequireJS
- 8. 将ASTNode转换为代码
- 9. 将代码转换为lambda
- 10. 将代码转换为constexpr
- 11. 将代码转换为python
- 12. 将Java代码转换为C#代码
- 13. 将Android代码转换为MonoAndroid代码
- 14. 将PHP代码转换为C#代码
- 15. 将JavaScript代码转换为C代码
- 16. 将Informatica代码转换为SQL代码
- 17. 将atmega32代码转换为atmega16代码
- 18. 将JavaScript代码转换为VBScript代码?
- 19. 将matlab代码转换为R代码
- 20. 将pyside代码转换为pyqt5代码
- 21. 将html代码转换为actionscript代码
- 22. 将PHP代码转换为ColdFusion代码
- 23. 将Javascript代码转换为PHP代码
- 24. 将伪代码转换为C#代码
- 25. 作业:将转换后的伪代码转换为C代码
- 26. 协助将UML图转换成Ruby代码
- 27. 如何将(.JAR)文件转换为UML?
- 28. 如何将UML转换为java?
- 29. 将XSD文件转换为UML模型
- 30. 使用XSLT将ReqIF转换为UML