C++開發(fā)實戰(zhàn):UML Interpreter-1加1等于2
在寫介紹UML/EA的文章的時候,要不斷的理解UML規(guī)范。隨著理解的深入,感覺到模型提供的信息,應(yīng)該是可以滿足直接執(zhí)行的要求的。比如下面的活動圖:
有沒有可能讓上面的活動圖直接執(zhí)行呢?為了達成這個小目標(biāo),作者編了一段程序。姑且就叫它UML Interpreter吧。
使用方法大致如下:
首先根據(jù)UML圖搭建C++對象構(gòu)造,例如上面的活動圖翻譯成C++程序,就是下面這樣。
代 碼中出現(xiàn)的 InitialNode,ValueSpecificationAction,AddVariableValueAction,ActivityFinalNode,ControlFlow,ObjectFlow 等UML中的元素,本公眾號中都有過介紹。如果有必要可以回頭看看以前的文章。
上述代碼執(zhí)行后,得到下面的結(jié)果:
這里只是計算了1+1,在第10行也得到了正確的的結(jié)果:2.
當(dāng)然,真正應(yīng)用時并不需要輸入代碼構(gòu)建UML模型,解析UML規(guī)范中的XMI文件就可以了。
在EA中輸出XMI文件的方法如下:
【Project Browser】中選擇對應(yīng)package,然后打開上下問菜單選擇【Import/Export】-【Export package to XMI file...】項目即可輸出XMI文件。
上面的文件中包含我們需要的所有信息。
雖然目前只是計算了一個1+1=2,但是也可以計算2+2,如果你愿意再花幾個小時的話,它也可以實現(xiàn)四則運算。但更加重要的是UML Interpreter提供了實現(xiàn)活動圖的基本思路和擴展的平臺,將來可以在此基礎(chǔ)上增加其他的功能。
同時作者堅信:
只有真正去實現(xiàn)UML,才能更好的理解UML。