《第12章VisualBasic的Rose双向工程(精品).ppt》由会员分享,可在线阅读,更多相关《第12章VisualBasic的Rose双向工程(精品).ppt(21页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第第12章章 Visual Basic的的Rose双向工程双向工程 Rational Rose 2003基础教程配套电子教案内内 容容n正向工程的操作步骤正向工程的操作步骤 n设置代码生成属性设置代码生成属性 n生成的代码生成的代码 nVB的逆向工程的逆向工程 Rose VB集成了以下工具,对VB语言的双向工程提供支持:1)Class Wizard:可以在模型中创建和修改一个新的VB类;2)Model Assistant:用于正向工程过程中更新和精确指定一个类的代码生成属性;3)Component Assignment Tool:提供一个易于使用的接口,方便在模型中创建新的构件、将构件与源代码
2、项目关联以及将类映射到构件。4)Code Update Tool:对模型和VB源代码项目进行双向工程。5)Model Update Tool:从源代码中收集信息,更新应用程序的设计模型。引引 言言n正向工程的步骤如下:正向工程的步骤如下:1.检查模型2.创建构件;3.将类映射到构件;4.设置代码生成属性;5.选择Class或Component框图中要生成代码的类或构件;6.选择ToolsVisual BasicUpdate Code,Rose VB插件启动Code Update Tool;7.根据代码生成向导的提示,逐步完成正向工程。1 正向工程的操作步骤正向工程的操作步骤2 设置代码生成属性
3、设置代码生成属性n2.1 VB语言属性窗口语言属性窗口 1.Class属性属性UpdateCode:控制是否为该类生成代码,默认值为True。UpdateModel:控制类是否参与逆向工程过程,默认值为True。OptionBase:设定数组的起始下标,默认值为空。OptionExplicit:控制类代码中的变量名是否需要显式声明,默认值为True。OptionCompare:设定字符串数据的默认比较方法,默认值为空。Instancing:设定类对其它应用程序的可见性,默认值为MultiUse。2 设置代码生成属性设置代码生成属性n2.1 VB语言属性窗口语言属性窗口2.Attribute的属
4、性的属性 属性名默认值描述NewFalse控制Rose是否在模块变量声明之前添加New关键字。ProcedureID空设定VB过程的ID。PropertyName空设定属性的名字。属性包含一个数据成员和相关的属性过程,Model Assistant工具在显示数据成员及其相关的属性过程时,以属性名作为它们的节点文件夹(见Model Assistant工具)。Subscript空设定Rose在为属性和角色生成数据成员时所使用的数组下标。默认为空表示Rose不生成下标;可接受值的形式有两种:“(1 to MaxLen)”和“()”,前者表示Rose将生成以给定的数字为起止下标的数组,后者表示Rose
5、将生成一个动态数组。WithEventsFalse设定生成代码时是否用关键字WithEvents修饰属性。2 设置代码生成属性设置代码生成属性n2.1 VB语言属性窗口语言属性窗口3.Operation的属性的属性 AliasName:设定DLL中过程调用时的过程别名。DefaultBody:指定生成代码时插入方法体中的代码和注释,默认值为空。IsStatic:控制Rose是否为用户通过关键字Static指定的函数过程生成代码默认值为False。LibraryName:指定包含方法的DLL名字。ProcedureID:设定操作过程的ID。ReplaceExitingBody:控制是否总是用默认
6、的方法体覆盖现有的方法体,默认值为False 2 设置代码生成属性设置代码生成属性n2.1 VB语言属性窗口语言属性窗口4.Param的属性的属性 ByRef:设定VB参数的默认传递机制。值为True表示按引用传递。ByVal:设定VB参数的默认传递机制,值为True,表示按值传递。Optional:设定VB参数的传递机制为可选,默认值为False。ParamArray:设定VB数组的传递机制,默认值为False。2 设置代码生成属性设置代码生成属性n2.1 VB语言属性窗口语言属性窗口5.Module Specification(构件(构件)的属性的属性ImportBinary:控制是否加载
7、从该构件编译出来的二进制类型库默认值为False。ImportReferences:控制是否加载VB项目中所需的COM构件的类型库,默认值为True。ProjectFile:设定映射到构件的VB项目的.vbp文件路径,默认值为空。2 设置代码生成属性设置代码生成属性n2.1 VB语言属性窗口语言属性窗口6.Generalize的属性的属性FullName:控制在Implements语句中是否使用包含构件名在内的完整的实现类名字,默认值为False。ImplementsDelegation:控制泛化关系是否由实现委托功能实现,默认值为True。2 设置代码生成属性设置代码生成属性n2.1 VB语
8、言属性窗口语言属性窗口7.Role的属性的属性FullName:控制在角色声明语句中是否使用包含构件名在内的完整的引用类名字,默认值为True。New:控制Rose是否在模块的变量声明语句中使用New关键字。ProcedureID:设置VB过程ID,默认值为空。PropertyName:设定属性的名字,见Attribute的代码生成属性或Model Assistant工具。UpdateCode:控制是否为角色生成代码。2 设置代码生成属性设置代码生成属性n2.2 VB属性对话框属性对话框Save model before code and model update:Suppress model
9、 IDs:Code update:5个选项用于正向工程Model update:3个选项用于逆向工程2 设置代码生成属性设置代码生成属性n2.3 Model Assistant工具工具用于精确控制代码生成的内容与VC+代码生成的作用类似,参考第11章 2 设置代码生成属性设置代码生成属性n2.4 VB构件属性对话框构件属性对话框General标签Should be generated:设定构件是否参与正向工程。Should be updated from code:设定构件是否参与逆向工程。Project file:设定构件对应的VB项目文件。Stereotype::构件的构造型,对应于VB项
10、目的类型。Documentation:构件的说明文档。2 设置代码生成属性设置代码生成属性n2.4 VB构件属性对话框构件属性对话框References标签 Quick import:设定用VB项目更新构件时,是否加载模型中所引用的COM构件。Import all references:设定是否加载所有的COM构件。Import the compiled VB binary:设定是否加载从该构件编译出来的二进制类型库。3 生成的代码生成的代码n3.1 类、属性和方法类、属性和方法 类的属性代码内容包括:属性名、数据类型、可见性、初始值以及Get、Set、Let方法。具体的代码因(模型属性、代码
11、生成属性)设置而异。类操作在代码中体现为方法,代码内容包括:方法名、可见性、参数、参数数据类型、参数传递机制、返回值、错误处理、提示注释及调试语句等。具体的代码因(模型属性、代码生成属性)设置而异。Rose VB不仅生成完整的方法签名,而且还生成完整的方法体。3 生成的代码生成的代码n3.2 类之间的关系类之间的关系 1)关联关系在VB中,关联关系映射为与关联关系的角色同名的属性(数据成员)Public Users As B Private Users As Collection 3 生成的代码生成的代码n3.2 类之间的关系类之间的关系2)泛化关系因为VB并不支持继承,泛化关系变成实现委托3
12、 生成的代码生成的代码n3.2 类之间的关系类之间的关系3)实现关系当一个类(客户类)需要调用接口(提供者类)中的操作,即客户类实现提供者类的接口时,两个类之间存在实现关系。在这种情况下,客户类要同时提供接口的属性和操作的实现。3 生成的代码生成的代码n3.2 类之间的关系类之间的关系4)聚合关系聚合关系在概念上等同于关联关系,正向工程中得到的代码与关联关系的代码相同。模型中的聚合表示一种整体与部分的关联,是概念意义上的抽象,对于代码生成没有其它特殊的影响。而且,在逆向工程中也反映不出聚合这种抽象关联。5)依赖关系依赖关系在代码中没有体现,即并不生成属性。4 VB的逆向工程的逆向工程n逆向工程的步骤如下:逆向工程的步骤如下:1.创建构件并将VB项目赋予构件;2.选择ToolsVisual BasicUpdate Model Tool;3.选择要更新的模型和构件;4.选择Finish完成逆向工程过程。