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