由于为“检测方式”已设置为动画的配置生成代码时产品所插入的检测代码,IBM® Rational® Rhapsody® 中的动画功能成为可能。
由于以代码为中心方式中的底层方法为将入侵最小化到代码中,与在以模型为中心方式中生成的动画代码相比,在以代码为中心方式中生成动画代码的方法有所区别。
在以代码为中心方式中,当为动画生成代码时,只会生成包含动画元素的文件,而不会像在以模型为中心方式中生成所有文件。
实际上在以模型为中心方式中,生成的动画代码以 #ifdef _OMINSTRUMENT 块作为框架。如果您对这些块中的代码进行更改,双向传递将会忽略这些更改。
由于在以代码为中心方式中不会为图(例如,状态图和活动图)生成代码,唯一可以创建动画的图的类型为时序图。
为了进一步将入侵最小化到您的代码中作为动画的结果,当在以代码为中心方式中创建动画时,您可以使用以下 Rational Rhapsody 功能:
- 使用“时序图”的弹出菜单中的创建动画选项来指定为哪个时序图创建动画。(当您使用该选项时,将会为图中的所有类创建动画。)
- 使用“高级检测设置”窗口(通过配置的“功能部件”窗口的设置选项卡上的高级按钮访问)以指定仅为特定类型的元素(例如,操作)生成检测代码。
- 使用“高级检测设置”窗口以指定仅为特定图和/或类生成检测代码。
由于检测代码在以代码为中心方式中的入侵性较小,请在使用动画时注意以下信息:
- 在普通以代码为中心的代码生成中,仅会为文件中已修改的元素生成代码。但是,在使用动画时,包含任何动画元素的文件将在它们的整体中重新生成。
- 如果您要处理单个 Rational Rhapsody 配置并将“检测方式”更改为“动画”,那么 Rational Rhapsody 生成的文件将会覆盖当前您的输出目录中的那些文件。
- 如果为动画目的生成了某个文件,每次您生成代码(未使用可选择代码更新)时将会完全生成它,直到下次您双向传递代码。这表示要为包含检测代码的文件复原可选择代码更新行为,您必须:
- 更改动画设置以使得不生成检测代码
- 重新生成代码
- 双向传递生成的文件
- 即使以代码为中心方式中通常不生成自动生成的代码,如果您正在使用动画,在有些情况下 Rational Rhapsody 可能生成某些自动生成元素,例如,在您的代码不包含构造函数时生成构造函数。