《Rational_Rose_2003基础教程电子教案Chapter》由会员分享,可在线阅读,更多相关《Rational_Rose_2003基础教程电子教案Chapter(21页珍藏版)》请在金锄头文库上搜索。
1、第第10章章 ANSI C+的的Rose双向工程双向工程 Rational Rose 2003基础教程配套电子教案内内 容容nANSI C+语言插件语言插件 nANSI C+的正向工程的正向工程 n代码生成属性代码生成属性 n设置代码生成属性设置代码生成属性 n生成生成ANSI C+代码代码 nANSI C+的逆向工程的逆向工程 ANSI C+是Rose最新提供的支持C+编程语言的插件。该插件提供了如下功能 支持从分析到设计的模型开发 支持独立于开发商编译器的C+语言 支持C+代码生成 支持从C+代码到模型的逆向工程 支持模型和代码之间的迭代式同步双向工程 支持所有C+结构(包括类、模板、名字
2、空间、继承以及类成员函数)的设计、建模和可视化 支持大型框架结构 支持用户对生成的代码格式化的风格设计 1 ANSI C+语言插件语言插件n正向工程的步骤正向工程的步骤1).检查模型; 2).生成构件; 3).将类映射到构件并将构件的实现语言设为ANSI C+ ;4).设置代码生成属性 ;5).选择类图和(或)构件图中要进行代码生成的类和构件; 6).选择Tools ANSI C+Code Generation,或者,右单击类和构件图标,选择ANSI C+Generate Code。步骤步骤1)-4) 可选可选2 ANSI C+的正向工程的正向工程3 代码生成属性代码生成属性nANSI C+语
3、言属性标签语言属性标签Attribute(类属性) Class(类) Class Category(类类别,包) Dependency(依赖关系) Generalize(泛化关系) Module Body(模块体) Module Specification(模块规范) Operation(类操作) Param(操作参数) Role(角色) 4 设置代码生成属性设置代码生成属性n4.1 类的属性类的属性 类的类的ANSI C+代码生成属性代码生成属性 统一设置模型中类的属性、用途和默认值。 4 设置代码生成属性设置代码生成属性n4.1 类的属性类的属性 定制类的代码生成属性定制类的代码生成属性
4、在类定制窗口中设置:1).在Class框图中选择一个或几个类; 2).右单击类选择ANSI C+Class Customization。 设置代码生成属性Standard Operations标签 Get and set Operations 4 设置代码生成属性设置代码生成属性n4.2 属性的属性属性的属性 在Options窗口对模型中所有类的属性的代码生成属性进行设置 Synchronize控制属性是否参与双向工程过程,默认值为True CodeName:控制生成代码中类的属性名,在该窗口中不可修改,即使用模型中的属性名 4 设置代码生成属性设置代码生成属性n4.3 操作的属性操作的属性
5、属 性描 述默 认 值Synchronize控制操作是否参与双向工程TrueCodeName生成代码中的操作名空InitialCodeBody控制操作要包括的代码。这些代码在首次运行代码生成过程时在操作中生成,并且在后续代码生成过程中不会被替换。空Inline控制是否内联操作FalseGenerateFunctionBody控制是否生成函数体。默认生成函数体Defaultn4.4 参数属性参数属性 操作参数的唯一代码生成属性为CodeName。该属性控制操作参数在代码中的名字,默认使用模型中的参数名。 4 设置代码生成属性设置代码生成属性4 设置代码生成属性设置代码生成属性n4.5 模块体属性
6、和模模块体属性和模块规范属性块规范属性 是与双向工程中的.cpp与.h文件相关的属性构件的代码生成属性构件ANSI C+规范窗口4 设置代码生成属性设置代码生成属性n构件构件ANSI C+规范窗口规范窗口1)Files标签标签Source file root directory:逆向工程中源文件的根目录 Reverse engineering root package: 逆向工程的根目录,默认值为C+ Reverse Engineered Reverse engineering directories as packages :将目录在逆向工程中转化为逻辑视图包 Create backup f
7、iles:创建备份文件 Project Files:可以在该字段中添加和删除映射到该构件的文件,包括与这个构件相关的.cpp、.h以及其他源代码文件 Names of generated files:关于生成的代码文件的名称设置4 设置代码生成属性设置代码生成属性n构件构件ANSI C+规范窗口规范窗口2)Style标签标签Indentation组合框:源代码的缩排格式 Round-Trip Engineering Options:双向工程选项 Miscellaneous Options:杂选项 Brace Styles:代码中类和函数所使用的大括号的格式 4 设置代码生成属性设置代码生成属性
8、n构件构件ANSI C+规范窗口规范窗口3)Internal Map和和External Map标签标签Select a class or press :添加引用的类 #include Filename:选择#include语句中的文件名 #include Punctuation:选择在#include语句中使用双引号或者使用“”标记 4 设置代码生成属性设置代码生成属性n构件构件ANSI C+规范窗口规范窗口Copyright and Includes标签标签 Copyright:构件版权信息,以注释的形式添加到新的文件中 Initial header #includes:构件所要包含的所有
9、头文件 Initial implementation #includes:构件所要包含的实现头文件 4 设置代码生成属性设置代码生成属性n构件构件ANSI C+规范规范窗口窗口5)Macros标签标签在该标签中为构件设置任意数目的预定义宏,预定义宏在逆向工程中会被添加到模型中 n4.6 角色属性角色属性3个属性:Synchronize:控制角色是否参与双向工程,默认值为True CodeName:代码中角色的名称,默认为空 InitialValue:代码中数据成员的初始值,默认为空n4.7 泛化属性泛化属性 Synchronize:控制泛化关系是否参与双向工程,默认值为True4 设置代码生成
10、属性设置代码生成属性n4.8 依赖属性依赖属性 BodyReferenceOnly:控制#include语句是否只能由与客户类关联的模块体生成,默认值为False n4.9 类类别属性类类别属性CodeName:设置名称空间名,默认为空 IsNameSpace:指定类类别是否为名称空间,默认为False 4 设置代码生成属性设置代码生成属性代码生成的操作步骤:1).选择类图和(或)构件图中要进行代码生成的类和构件2).选择Tools ANSI C+Code Generation 对模型中的类进行ANSI C+代码生成操作,将变成相应的C+类。每个类生成两个文件,一个.h头文件和一个.cpp实现
11、文件。类代码中的信息包括:类名 类可见性 构造函数和析构函数(由代码生成属性决定) 类的属性(可见性、Get和Set操作) 类的操作(参数) 类之间的关系(角色、依赖、泛化) 5 生成生成ANSI C+代码代码ANSI C+不仅支持一个空模型的逆向工程,也支持向一个已存在的模型中添加逆向工程的模型元素 要进行逆向工程,模型必须包含用ANSI C+实现的构件。对所要添加类到模型中的文件,其内容必须是有效的C+代码。6 ANSI C+的逆向工程的逆向工程逆向工程的步骤:1)在构件视图中创建并命名新的构件; 2).双击新的构件打开构件规范窗口,将构件的实现语言改为ANSI C+; 3).右单击新构件,选择快捷菜单中的ANSI; C+Open ANSI C+ Specification,打开构件ANSI C+规范窗口; 4).在构件规范窗口的Files标签中添加源文件; 5).关闭构件ANSI C+规范窗口; 6).单击构件,选择ToolsANSI C+Reverse engineer,打开“选择要添加到模型中的类 ”的窗口; 7).选择要添加到模型中的类,单击Ok按钮,开始逆向工程。6 ANSI C+的逆向工程的逆向工程