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





