【ACCESS精品源码栏目提醒】:网学会员--在 ACCESS精品源码编辑为广大网友搜集整理了:【精品】第9章 Rose的双向工程 - 其它资料绩等信息,祝愿广大网友取得需要的信息,参考学习。
第9章 Rose的双向工程《Rational Rose 2003基础教程》 配套电子教案 内 容 Rose对编程语言的支持 Rose的双向工程 RTE举例 Rose的正向工程 Rose的逆向工程1 Rose对编程语言的支持 支持的语言 企业版 专业版 Rose 2003 Modeler ANSI C X C版本 Visual C X C版本Visual Basic X VB版本 Java X J版本 Ada X Ada版本 CORBA IDL X MIDL X XML DTD X 2 Rose的双向工程 Rose支持UML模型与编程语言之间的相互转换,采用双向工程(RTE,Round TripEngineering)的解决方案。
Rose可以分析代码的改动,对模型进行修改,构建出与代码相关的更好的模型。
2 Rose的双向工程 3 RTE举例 3.1 从模型到代码——正向工程 – 类SalesRep:从模型到代码 3 RTE举例 3.2 从代码到模型——逆向工程 – 类SalesRep:从代码到模型 3 RTE举例 3.3 一致性问题 – 对于任何一种CASE工具,在进行模型/代码 转换时,都存在一致性问题。
即便最先进的 CASE工具也很难保证模型/代码与代码/模型 转换之间的一致性(同步)。
在进行逆向工程之后,类SalesRep模型已经丢失 了逻辑关系——与类Client和类Vector之间的关 联。
4 Rose的正向工程 4.1 代码生成的步骤 – 五个步骤: 1)检查模型; 2)创建构件; 3)将类映射到构件; 4)设置代码生成属性; 5)选择要进行代码转换的类、构件和包。
4 Rose的正向工程 4.1 代码生成的步骤 – 1) 检查模型(Check Model) 引用问题 非法访问(
Access violations)问题 语言语法问题 – 2)创建构件 Check Model是独立于语言的。
如果你想将模型 转换成下面的三种语言之前进行模型检查,则: – Java:单击ToolsJava/J2EESyntax Check – CORBA:单击ToolsCORBASyntax Check – Oracle8:单击Tools Oracle8Syntax Checker 4 Rose的正向工程 4.1 代码生成的步骤 – 3)将类映射到构件 构件之间的依赖性决定了系统 的编译依赖性。
指定构件实现的类: – 选中构件图或浏览器中的用于实 现类的构件图标; – 打开构件规范窗口; – 选中Realizes标签; – 选中Show all classes复选框; – 在类列表中找到并右击所要实现 的类,单击快捷菜单中的 Assign。
4 Rose的正向工程 4.1 代码生成的步骤 – 4)设置代码生成属性 直接影响生成的语言代码框架,代码生成属性控 制模型元素转换到代码时的具体细节。
在生成代 码之前,最好先检查代码生成属性并进行必要的 修改。
因为模型元素(包括类、属性、构件等) 有多种代码生成属性可供选择,而Rose只是提 供了常用的代码生成属性的默认设置。
要查看代码生成属性,单击ToolsOptions,然 后选择相应的语言标签 4 Rose的正向工程 4.1 代码生成的步骤 – 5)选择类、构件和包 Rose允许分步骤、有选择的进行代码转换,即在生成代 码时,可以一次选择一个类、一个构件或者一个包,通 过代码转换将其转换成相应的语言代码;也可以一次生 成多个类、构件或者包的代码;或者是它们的组合。
选中一个或多个 生成的代码 类 每个被选中的类 逻辑包 每个逻辑包中的类 构件 映射到每个构件的类 构件包 映射到构件包中各个包中的类 4 Rose的正向工程 4.2 代码生成 – 1)语言工具定制 从Tools菜单中选择特定的语言工具选项并设置 相应的语言选项 – 2)控制源代码的框架内容 任何造型工具都不能创建完整的应用程序。
Rose强大的代码生成能力在于它能生成大量的 框架代码。
– 3)设定源代码文件的位置 默认的情况下,包含已生成的代码的文件和路径 位于当前工作空间所在的目录下。
– 4)代码生成之后的工作 精化模型系统的程序实现:编写每个类的操作 (方法实现)和设计图形用户界面(GUI) 5 Rose的逆向工程 定义 – 通过源代码或者对源代码进行修改,得出UML模 型,这就是逆向工程。
模型的信息来源 – 1)类、属性和操作 – 2)关系 – 3)包和构件 5 Rose的逆向工程 1)类、属性和操作 Train TrainNumber : Integer DepartDate : Long GateNumber : Integer Train AddPassenger RemovePassenger SwitchGate 5 Rose的逆向工程 2)关系 ClassA theClassB ClassB ClassA ClassB 5 Rose的逆向工程 3)包和构件 – 代码中包和构件的信息也会在逆向工程时体现在 Rose模型中。
– Rose对构件的处理方法因语言而异。