关于此任务
在以代码为中心的方式下,Rational Rhapsody 代码生成行为基于一个前提,即,您在模型中添加任何与代码相关的元素时,希望产品尽量不要更改代码。
因此,如果在以代码为中心方式中使用生成选项,产品不会生成整个文件。
而是仅生成代表所添加的新元素的代码段,并将其插入到代码中的相应位置。
其余的代码仍保持原样。
这种对代码的最小干涉原则会造成代码生成行为的其他几种不同(相对于以模型为中心方式下的代码生成):
- 生成的代码不包含 IBM Rational Rhapsody 注释。
- 不生成自动生成的代码,如 getter 方法/setter 方法和缺省构造函数/析构函数。
- 如果代码中包含无法导入 IBM Rational Rhapsody 模型的代码元素,此代码即使在使用 IBM Rational Rhapsody 代码生成功能后依然会保留下来。
- 为尽可能保持格式的一致性,IBM Rational Rhapsody 生成的代码元素使用的缩进基于所添加代码之前代码的缩进。
以代码为中心方式下的其他代码生成行为:
- 如果在模型中添加 C 文件或 C++ 类,在使用生成选项时,IBM Rational Rhapsody 会为它们生成新文件。
- 如果更改模型中元素的名称,下次生成代码时,代码中所有对其的引用将更新。
- 在类中添加新元素时,该元素将添加到代码中上一个具有相同可视性的元素后。
如果没有相同可视性的元素,会将其添加到类代码的末尾。
注: 以代码为中心方式选择性代码更新仅在使用
IBM Rational Rhapsody 高级代码生成设置时可用。以代码为中心方式无法用于老的模型,除非将
CodeGeneratorTool 属性从 更改为
Advanced。
注: 当以集中代码方式工作时,将不为状态图或活动图生成代码。
以代码为中心的方式重新生成代码:生成菜单选项可启动选择性代码生成过程。
但是,重新生成选项将会重新生成整个文件。如果您使用重新生成选项来生成整个文件,那么将在双向传递该文件之后才会使用 IBM Rational Rhapsody 选择性代码更新功能。
由于源代码文件可能包含无法引入 Rational Rhapsody 模型的元素,因此如果您决定删除代码并从模型重新生成所有代码,那么代码可能看起来与您的原始代码不相同,甚至可能无法进行编译。如果您为组件设置新的目录,会出现相同的情况 - 在这种情况下,Rational Rhapsody 将重新生成所有代码,并且该代码不一定会包含您的原始代码中的所有内容,甚至可能无法进行编译。