我正在编写一个为许多类生成代码的系统,我需要用UML图来记录它。这些类将遵循相同的结构,但它们将由用户设置名称。有没有办法指定CCodeGenerator
为这些类生成代码?
另外,我目前在我的CDataDefinition
类(定义每个生成的类中应包含的内容)和CCodeGenerator
之间有关系,有没有办法表示多重性生成的类和生成器之间的关系完全等于CDataDefinition
实例的数量?
这些类将用于另一个系统,该系统还需要为其制作UML类图。有没有办法证明这个项目中的一个类(CEditior
)使用它们?
操作示例:
我有3个CDataDefinition
个对象,它们定义了X,Y和Z类。我的CCodeGenerator
实例将从这些对象中创建3个类(.cs文件中的C#代码)。
CEditor
将与这3个类接口。
答案 0 :(得分:0)
如果您阅读了MOF的一些介绍性信息,您会发现在UML系列中,一层中元类的实例是下一个分类器。
在您的情况下,代码生成器中描述其输出中的类的类将是元类(CDataGenerator),并且输出中的类由元类的实例表示。
除了'X是Y型'之外的关联在普通UML中,没有办法在层之间交叉。
您可以使用MOV QVT(查询,查看,转换 - 即将一个模型映射到另一个模型的语言)来建模这样的关系,但我不知道当前的工具支持状态,如果你有一个QVT工具,你可能不需要编写代码生成器。
答案 1 :(得分:0)
您需要构建一个模板类(CDataDefinition),它将表示可以由CCodeGenerator创建的类的结构当您创建实际类时,您需要执行绑定,所以您只需要显示CCodeGenerator具有一个操作(让我们说)classGenerator(name:String),然后你可以证明这个方法创建了一个类作为CDataDefinition上的正确绑定。