有没有办法指定一个类生成另一个类的代码的关系? UML

时间:2012-03-18 12:29:40

标签: uml

我正在编写一个为许多类生成代码的系统,我需要用UML图来记录它。这些类将遵循相同的结构,但它们将由用户设置名称。有没有办法指定CCodeGenerator为这些类生成代码?

另外,我目前在我的CDataDefinition类(定义每个生成的类中应包含的内容)和CCodeGenerator之间有关系,有没有办法表示多重性生成的类和生成器之间的关系完全等于CDataDefinition实例的数量?

这些类将用于另一个系统,该系统还需要为其制作UML类图。有没有办法证明这个项目中的一个类(CEditior)使用它们?

操作示例:

我有3个CDataDefinition个对象,它们定义了X,Y和Z类。我的CCodeGenerator实例将从这些对象中创建3个类(.cs文件中的C#代码)。

然后,单独的解决方案中的

CEditor将与这3个类接口。

2 个答案:

答案 0 :(得分:0)

如果您阅读了MOF的一些介绍性信息,您会发现在UML系列中,一层中元类的实例是下一个分类器。

在您的情况下,代码生成器中描述其输出中的类的类将是元类(CDataGenerator),并且输出中的类由元类的实例表示。

除了'X是Y型'之外的关联在普通UML中,没有办法在层之间交叉。

您可以使用MOV QVT(查询,查看,转换 - 即将一个模型映射到另一个模型的语言)来建模这样的关系,但我不知道当前的工具支持状态,如果你有一个QVT工具,你可能不需要编写代码生成器。

答案 1 :(得分:0)

您需要构建一个模板类(CDataDefinition),它将表示可以由CCodeGenerator创建的类的结构当您创建实际类时,您需要执行绑定,所以您只需要显示CCodeGenerator具有一个操作(让我们说)classGenerator(name:String),然后你可以证明这个方法创建了一个类作为CDataDefinition上的正确绑定。