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