C++开发实战:UML Interpreter-1加1等于2
扫描二维码
随时随地手机看文章
在写介绍UML/EA的文章的时候,要不断的理解UML规范。随着理解的深入,感觉到模型提供的信息,应该是可以满足直接执行的要求的。比如下面的活动图:
有没有可能让上面的活动图直接执行呢?为了达成这个小目标,作者编了一段程序。姑且就叫它UML Interpreter吧。
使用方法大致如下:
首先根据UML图搭建C++对象构造,例如上面的活动图翻译成C++程序,就是下面这样。
代 码中出现的 InitialNode,ValueSpecificationAction,AddVariableValueAction,ActivityFinalNode,ControlFlow,ObjectFlow 等UML中的元素,本公众号中都有过介绍。如果有必要可以回头看看以前的文章。
上述代码执行后,得到下面的结果:
这里只是计算了1+1,在第10行也得到了正确的的结果:2.
当然,真正应用时并不需要输入代码构建UML模型,解析UML规范中的XMI文件就可以了。
在EA中输出XMI文件的方法如下:
【Project Browser】中选择对应package,然后打开上下问菜单选择【Import/Export】-【Export package to XMI file...】项目即可输出XMI文件。
上面的文件中包含我们需要的所有信息。
虽然目前只是计算了一个1+1=2,但是也可以计算2+2,如果你愿意再花几个小时的话,它也可以实现四则运算。但更加重要的是UML Interpreter提供了实现活动图的基本思路和扩展的平台,将来可以在此基础上增加其他的功能。
同时作者坚信:
只有真正去实现UML,才能更好的理解UML。