《第11章VCPP的Rose双向工程.ppt》由会员分享,可在线阅读,更多相关《第11章VCPP的Rose双向工程.ppt(25页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第第11章章 VC+的的Rose双向工程双向工程 Rational Rose 2003基础教程配套电子教案内内 容容nRose VC+的正向工程的正向工程 n代码生成属性代码生成属性 nCode Update Tool与代码生成与代码生成 n生成的代码内容生成的代码内容 nVC+的逆向工程的逆向工程 n步骤步骤1.检查模型;2.创建构件,在构件规范窗口的Language下拉列表框中选择VC+,并将构件映射到对应的VC项目;3.将类映射到构件;4.设置代码生成属性;5.右单击要生成代码的构件,选择Update Code,或者单击ToolsVC+Update Code,激活Code Update
2、Tool;6.按照Code Update Tool提示操作。1 Rose VC+的正向工程的正向工程2 代码生成属性代码生成属性设置代码生成属性的途径VC+语言属性窗口:设置VC+语言属性VC+属性对话框(Properties Dialog):为新建的模型或当前模型设置默认的VC+语言属性构件属性对话框:设定应用于构件所要实现的类的模型属性Model Assistant工具:精确设置模型中的类与代码之间的对应关系模型元素的规范窗口 2 代码生成属性代码生成属性n2.1 VC+语言属性窗口语言属性窗口类的属性类的属性类属性的属性类属性的属性 类操作的属性类操作的属性依赖关系(依赖关系(Depen
3、dency)角色(角色(Role)包的属性(包的属性(Class Category)构件的属性(构件的属性(Module Specification)项目属性(项目属性(Project)2 代码生成属性代码生成属性n2.2 VC+属性对话框属性对话框 Code Update标签标签Generate Model ID:生成模型ID Generate Documentation:信息作为注释添加到代码中 Generate#include Statements:为头文件生成#include语句 Apply Pattern on Code Generation:生成代码时是否选中Class Opera
4、tions标签和Accessors标签中的原型 Generate Debug Operations for MFC Classes:为MFC类Cobject的派生类生成DUMP和AssertValid成员函数 Create Backup Files:如果选中该选项,则在对源代码文件进行修改之前,在备份区域生成该文件的备份 Support CodeName:为每个模型元素指定与模型中不相同的名字2 代码生成属性代码生成属性n2.2 VC+属性对话框属性对话框 Model Update标签标签Create Overview Diagrams:自动为每个逆向工程的构件创建一张综合图Default P
5、ackage:新模型元素所在包的名字Attribute Types:首次逆向工程时应该作为属性(而不是角色)进行建模的VC+属性类型 2 代码生成属性代码生成属性n2.2 VC+属性对话框属性对话框 Containers标签标签列出了在Model AssistantRole标签中Implementation下拉列表框可选用的类。在默认的情况下,列表中提供的是最常用MFC容器类。也可以将用户自定义的容器类添加到列表中。右边的Add和Remove按钮用于添加和删除列表中的某个(或某些)容器类。要修改其中的容器类,右单击要改动的类,在快捷菜单中选中Edit进行编辑 2 代码生成属性代码生成属性n2.
6、2 VC+属性对话框属性对话框 Class Operations标签标签类操作的代码生成与否还依赖于Code Update中的Apply Pattern on Code Generation选项。左边选中的成员函数只在第一次代码生成过程中生成。Model Assistant将用该列表控制所能加入类的操作 2 代码生成属性代码生成属性n2.2 VC+属性对话框属性对话框 Accessors标签标签Accessor Operations:访问函数(操作)。每个访问函数的原型由模型中角色和属性的类型决定 Accessor Body:访问操作的函数体。2 代码生成属性代码生成属性n2.3 构件属性对话
7、框构件属性对话框General标签标签Workspace File(Optional):VC+项目的工作空间和项目文件的名称和路径Workspace File:VC+项目工作空间文件的文件名和路径 Project File:VC+项目文件的文件名和路径 2 代码生成属性代码生成属性n2.3 构件属性对话框构件属性对话框 Internal Map(和External Map)标签Location:控制在何处定义#include语句,有三种选择:Auto:根据类型依赖规则决定写入头文件或实现文件 Header:总是写入头文件中 Source:总是写入实现文件中 2 代码生成属性代码生成属性n2.3
8、 构件属性对话框构件属性对话框 Includes标签Initial Source Includes:写入类实现文件的#include语句中的文件名。如果有多个包含文件,则每个文件名占一行。Initial Header Includes:写入类头文件的#include语句中的文件名,每个文件名各占一行。2 代码生成属性代码生成属性n2.3 构件属性对话框构件属性对话框 COM标签Update ATL Artifacts:控制是否为服务器端简单的ATL对象生成代码 Use Smart Pointersfor Interface Associations:设定是否要在双向工程中使用VC+的 Smar
9、t Pointer特性。Generate#import statements:控制是否为服务器端简单的ATL对象生成#import语句 2 代码生成属性代码生成属性n2.3 构件属性对话框构件属性对话框Copyright标签 添加构件的版权信息,默认的值为“Copyright(C)1991-1999 Rational Software Corporation”。2 代码生成属性代码生成属性n2.4 Model Assistant工具工具Model Assistant是一个功能强大的工具,可以用来设定类以下层次的模型元素(包括类、操作、属性、关联等)的代码生成属性,精确定制生成的代码框架。利用该
10、工具可以提高代码的准确性和简洁性。启动Model Assistant工具:1.右单击浏览器或类图中的类;2.选择Model Assistant;2 代码生成属性代码生成属性n2.4 Model Assistant工具工具General树视图窗口及其标签类及标签 Class Operations文件夹 Attributes 文件夹 Operations文件夹 Associations文件夹 2 代码生成属性代码生成属性n2.4 Model Assistant工具工具MFC树视图窗口及标签 文件夹描述Class NodeMFC视图窗口允许你修改和设定一个MFC派生类的代码生成属性。可以在右边的Cl
11、ass标签中设置该类的代码生成属性。MFC Overrides显示根节点类中所有可用于重载的虚拟操作(只适用于MFC派生类)。点击操作前面的复选框可以将其设定为根节点类的重载操作。可以在Operation和Parameters标签中设置虚拟操作的属性。Windows Messages列出了根节点类所有可接收的Windows消息句柄。点击操作前面的复选框,可以在右边的Message Handler标签中修改和设定操作的代码生成属性。Command Handlers列出了基类的所有命令句柄。点击操作前面的复选框,可以在右边的Command Handler标签中修改和设定操作的代码生成属性。Noti
12、fication Handlers列出了基类的所有notification句柄。点击操作前面的复选框,可以在右边的Notification Handler标签中修改和设定操作的代码生成属性。3 Code Update Tool与代码生成与代码生成Code Update Tool(代码生成向导)简化正向工程操作:可以同时生成和更新多个用不同语言实现的源代码项目;可以保证模型和源代码之间的同步;可以将类映射到构件,方便操作;可以在代码生成向导中打开Model Assistant,设定类及其成员的代码生成属行,进一步设置类与代码之间的映射。可以在将模型转换成代码之前,提前预览类和类成员的代码,及时发
13、现模型中的错误并加以修改。3 Code Update Tool与代码生成与代码生成利用代码生成向导进行正向工程的步骤:第一步:启动Code Update Tool;第二步:选择要进行代码转换的类、构件以及实现语言:将构件映射到VC项目;指定要实现的类及其成员;第三步:生成代码;第四步:查看代码生成结果。4 生成的代码内容生成的代码内容n4.1 概述概述 生成代码时,模型中的构件对应于VC项目,模型中的类对应于代码中的类。模型中的其他细节(包括属性、操作、关系、可见性等)在类的头文件和实现文件中体现 n4.2 头文件(头文件(*.h)框架代码)框架代码 类声明类的数据成员和成员函数声明注释反映代
14、码生成属性设置的代码 4 生成的代码内容生成的代码内容n4.3 实现文件(实现文件(*.cpp)框架代码)框架代码#include语句 成员函数和数据成员的定义 反映代码生成属性设置的代码 5 VC+的逆向工程的逆向工程 利用Rose VC+的Model Update Tool可以方便地进行逆向工程的操作。在需要进行逆向工程时,都需要使用Model Update Tool,包括:1)根据VC+项目创建一个新的模型;2)针对代码的改动,更新一个已存在的模型;3)往模型中添加一个外部VC+构件。5 VC+的逆向工程的逆向工程n逆向工程的步骤逆向工程的步骤 1.编译要转换的VC+项目,确保源代码文件
15、中没有任何语法错误;2.如果是创建新的模型,则需要创建一个构件,并设置构件的实现语言为VC+;如果是更新模型,则可以省略这一步;3.单击Tools Visual C+Update Model from Code,激活Model Update Tool,单击Next,接着出现Select Components and Classes窗口,在该窗口中进行构件和类的选择。4.将VC+项目与模型中已有(或者新创建)的构件关联;5 VC+的逆向工程的逆向工程n逆向工程的步骤(续)逆向工程的步骤(续)5.在要进行逆向工程转换的项目的各项名称前面选中复选框,或者选择构件边上的复选框,对整个项目进行逆向工程。6.单击Next,出现显示Finish页面。7.检查所要生成的模型元素,确定之后单击Finish按钮,也可以单击Back按钮返回并改动前面的设定。单击Finish按钮之后,开始逆向工程过程,进度在Progress页面显示。8.在Summary页面查看结果。单击OK按钮,关闭Model Update Tool。9.将生成的类移动到模型逻辑视图中相应的逻辑包中。10.保存新的模型。
限制150内