提供UML作图辅助的工具达到了数以百计之多,但是就我所知,能够提供对VC++和MFC开发的应用程序的往返工程的工具只有Rational公司的Rose一种而已,欢迎大家补充。
Rose提供了对Visual C++的往返工程功能,即可以从模型生成VC++的代码,也可以从VC++代码直接分析出模型。由于Rose直接从VC++的IDE接口获取代码分析功能,因此需要先安装VC++环境。同Rose的标准C++生成功能不同的是,不需要指定一个代码生成大纲文件,VC++代码生成一般通过右键菜单就可以控制。一个新的模型助手(Model Assistant)界面用于对一些比较深奥的C++代码特性,如构建函数、解构函数等提供图形化编程辅助。
逆向工程已经完全采用图形界面向导,MFC的语义在往返工程中得以完整的保留,MFC的消息、命令和提示句柄可以被逆向为以<<afx_msg>>为原型的方法。模型助手对VC++的类向导添加的虚函数和Windows消息处理函数都可以产生等价的成员方法,这样就能在模型的类图中完整的建模MFC框架行为以及Windows事件。