本文举一个将逻辑类图反向工程为头文件、源文件的过程的例子,用的是ANSI C++风格,更复杂的应用可触类旁通。
1. 创建类图
创建两个类 CAirplane 和 CWhirlybird,它们是继承关系(直升机类继承飞机类)
2. 用ANSI C++ 创建组件
在菜单中依次选择 Tools -> ANSI C++ -> Convert From Classic C++
选择转换model中的所有类,设置该组件名称即可(默认Converted Classes),本操作会生成一个组件Converted Classes。
3. 用ANSI C++ 生成源代码
设置刚才创建的组件的属性
在“Realizes”页中,将所有的类“assign ”,即指定那些将要被转换成 ANSI 风格的类(毕竟还有Java 风格的类),这是关键的一步,只有确定了类的风格,Rose才能进行下一步的处理。
类的风格可在 Tools -> ANSI C++ -> Class Customization...中详细设置
选择组件,然后在在菜单中选择Tools -> ANSI C++ -> Generate Code...
指定一个目录,代码就会在那个目录中生成了。
此处仅展示最大文件 CWhirlybird.cpp 的内容:
0001#include "CWhirlybird.h"
0002
0003//##ModelId=4E7AF31803D8
0004void CWhirlybird::fly()
0005{
0006}
0007
0008//##ModelId=4E7AF42903A3
0009CWhirlybird::CWhirlybird()
0010{
0011}
0012
0013
0014//##ModelId=4E7AF42903C2
0015CWhirlybird::~CWhirlybird()
0016{
0017}
0018
0019//##ModelId=4E7AF42903E2
0020int CWhirlybird::operator==(const CWhirlybird& right)
0021{
0022}
0023
0024//##ModelId=4E7AF42A0048
0025Integer const& CWhirlybird::get_empennage() const
0026{
0027 return empennage;
0028}
0029
0030
0031//##ModelId=4E7AF42A0068
0032void CWhirlybird::set_empennage(Integer left)
0033{
0034 empennage = left;
0035}
0036
0037
生成的文件很标准,操作过程也不难吧。