Rose从代码中建模的一个疑问
假设我有一个类class1和另一个一个类class2,class2和class1的关系是1对多。
我用C++和STL来实现如下:
#include <list>
using namespace std;
class class1{
};
typedef list<class1*> class1_list;
class class2{
protected:
class1_list lots_of_class1;
};
我想这应该是没什么问题的。
现在让Rose做逆向工程(最好先建一个VC++的空模型,然后用Tool->Visual C++->update model from code。直接用C++ Analyzer的话老说什么"cannot include <list>",虽然我已经把include search directory设置好了),Rose从代码中分析出来的模型中除class1和class2外,class2中还正确的包含了一个类型为 class1_list 的association,看起来不错。
我的问题是,在Class Diagram中无法让这个association被显示出来:把Rose生成的class1和class2拖到Class Diagram View中,它们并没有如预期的出现表示association的连线,Rose也不让 class1_list这个association被拖进Class Diagram View中。原因我想大概是因为Rose不知道class1_list这个typedef其实和class1有关系。
这样要是我把这个Class Diagram给别人看的话,别人根本看不出class1和class2有任何联系。当然我可以手工拉一个association从class2到class1,但这样的话Rose就以为这两个类之间又有了一个新的association了,显然不合适。
敢问列为大侠为小弟我解惑。