欢迎来到天天文库
浏览记录
ID:1474430
大小:1.34 MB
页数:27页
时间:2017-11-11
《第14章 rose的双向工程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第14章Rose的双向工程目录14.1双向工程简介14.2正向工程14.3逆向工程14.4实例应用小结第14章Rose的双向工程双向工程包括正向工程和逆向工程。正向工程指把设计模型映射为代码;逆向工程是指将代码转换成设计模型。14.1双向工程简介无论是把设计模型转换成代码,还是把代码转换为设计模型,都是一项非常复杂的工作。正向和逆向工程这两方面结合在一起,定义为双向工程。双向工程提供了一种机制,它使系统架构或者设计模型与代码之间进行双向交换。正向工程把设计模型转换为代码框架,开发者不需要编写类、属性、方法代码。一般情况下,开发人员将系统设计细化到一定的级别,然后应用正向工
2、程。逆向工程是指把代码转换成设计模型。在迭代开发周期中,一旦某个模型作为迭代的一部分被修改,采用正向工程把新的类、方法、属性加入代码;同时,一旦某些代码被修改,采用逆向工程,将修改后的代码转换为设计模型。自从1997年正式发布UML以后,出现了许多UML建模CASE工具。其中最具代表性的两款CASE工具是SparxSystems的EnterpriseArchitect和IBM的RationalRose。14.2正向工程正向工程(代码生成)是指把Rose模型中的一个或多个类图转换为Java源代码的过程。RationalRose里的正向工程是以组件为单位的。即Java源代码的生
3、成是以组件为单位的,不是以类为单位的。所以,创建一个类后需要把它分配给一个有效的Java组件。如果模型的缺省语言是Java,Rose会自动为这个类创建一个组件。当对一个设计模型元素进行正向工程时,模型元素的特征会映射成Java语言的框架结构。例如,Rose中的类会通过它的组件生成一个.java文件;Rose中的包会生成一个java包。另外,当把一个UML包进行正向工程时,将把属于该包的每一个组件都生成一个.java文件。14.2正向工程Rose工具能够使代码与UML模型保持一致,每次创建或修改模型中的UML元素,它都会自动进行代码生成。缺省情况下,这个功能是关闭的,可以通过
4、【Tools→Java→PrejectSpecification】打开该功能,选择“CodeGeneration”选项卡,选中“AutomaticSynchronization”,如图14-1所示。图14-1所示的“CodeGeneration”窗口是代码生成时最常用的一个窗口,下面对该窗口中的每项做详细的介绍。(1)IDE:指定与Rose相关联的Java开发环境。下拉框列出了系统注册表里的IDE。Rose可以识别的开发环境有以下几种:VisualAgeforJava,VisualCafe,ForteforJava以及JBuilder。缺省的IDE是Rose内部编辑器,它使
5、用Sun的JDK。14.2正向工程(2)DefaultDataTypes:该项用来设置缺省数据类型,当创建新的属性和方法时,Rose就会使用这个数据类型。缺省情况下,属性的数据类型是int,方法返回值的数据类型是void。(3)Prefixes该项设定缺省前缀(如果有的话),Rose会在创建实例和类变量的时候使用这个前缀。缺省不适用前缀。(4)GenerateRoseID:设定Rose是否在代码中为每个方法都加惟一的标识符。Rose使用这个RoseID来识别代码中名称被改动的方法。缺省情况下,将生成RoseID.如果关闭了“AutomaticSynchronization”
6、,就需要打开该功能。图14-1打开自动同步14.2正向工程(5)GenerateDefaultReturnLine:设定Rose是否在每个类声明后面都生成一个返回行。缺省情况下,Rose将生成返回行。(6)StoponError:设定Rose在生成代码时,是否在遇到第一个错误时就停止。缺省情况下这一项是关闭的,因此即使遇到错误,也会继续生成代码。(7)CreateMissingDirectories:如果在Rose模型中引用了包,这项将指定是否生成没有定义的目录。缺省情况下,这个功能是开启的。(8)AutomaticSynchronizationMode:当启用这项时,Ro
7、se会自动保持代码与模型同步,也就是说代码中的任何变动都会立即在模型中反映出来,反过来也一样的。缺省情况下,没有使用这个功能。(9)ShowProgressIndicator:指定Rose是否在遇到复杂的同步操作时显示进度栏。缺省情况下不会显示。14.2正向工程(10)SourceCodeControl:指定对哪些文件进行源码控制。(11)PutsourcecodeoftheprojectunderSourceControl:是否使用RoseJ/CMIntergration对Java源代码进行版本控制。(1)Inp
此文档下载收益归作者所有