
基于新信息技术的软件工程与UML教程课件:双向工程.pptx
27页单击此处编辑母版标题样式,双向工程,双向工程,任务一 认识双向工,程,任,务二 正向工程,任,务三 逆向工程,习题,项目引导,本项目详细介绍,Rational Rose,的双向工程的功能及操作方法Rose,双向工程的主要内容有:双向工程概述、正向工程、逆向工程知识目标,(1),掌握从模型到代码的正向工程2),掌握从代码到模型的逆向工程能力目标,使用,Rational Rose,建模工具操作模型到代码的转换以及从代码到模型的转换任务一 认识双向工程,Rose,的双向工程包括正向工程和逆向工程正向工程就是从,UML,模型到具体语言代码的过程,而逆向工程是在软件开发环境中由具体的语言到,UML,模型的过程使,用正向工程,一旦软件系统的设计完成后,开发者可以借助于正向工程直接由,UML,模型生成程序代码框架,提高开发效率借助于逆向工程,开发者可以通过程序源代码得到软件系统的设计模型和设计文档任务二 正 向 工 程,一、正向工程概述,正,向工程是从模型图到代码框架的过程通过将软件模型对某种特定语言的映射可以从,UML,图得到该语言的代码,帮助开发者节约许多编写类、定义属性和方法等重复性工作的时间。
对一个,Java,模型元素进行正向工程时,模型的特征会映射到对应的,Java,语言的特征Rose,中类图中的一个类会通过组件生成一个“,.Java,”文件;,Rose,中的包会生成,Java,中的一个包对于其他语言而言,生成过程大同小异,在此不做详细介绍二、使用,Rose,的正向工程将类图生成,Java,代码,(,1),设置默认语言为,Java,在主菜单栏中依次选择,【Tools】【Options】,菜单,选择,【Notation】,选项卡,选择“,default,”列表框中的语言为,Java,,如图,13-1,所示2),设置环境变量,ClassPath,在主菜单栏中依次选择,【Tools】【Java/J2EE】【Project Specification】,菜单,选择,【ClassPath】,选项卡,通过提供的路径操作按钮创建保存,Java,文件的目录,(,如,D:temp),,如图,13-2,所示图,13-1,设置默认语言为,java,图,13-2,设置,Classpath,图,13-2,设置,Classpath,(3),设置代码生成属性在“正向工程项目属性”对话框中,选择,【Code Generation】,选项卡,对正向工程的属性进行相关设置,如图,13-3,所示。
图,13-3,设置,Code Generation,(4),进行语法检查在图,13-4,所示的,【Tools】【Java/J2EE】,菜单中选择,【Syntax Check】,进行语法检查并根据日志中的提示进行修正也可以使用,【Tools】【Check Model】,菜单,对整个模型进行检查,如果有错误将在日志窗口中显示,根据日志进行错误的修改图,13-4,选择生成代码,(5),指定保存路径及名称打开设计好的类图,选中要生成的,java,文件类,依次选择,【Tools】【Java/J2EE】【Generate Code】,菜单,如图,13-4,所示打开“,Assing CLASSPATH Entries”,对话框,按要求指定保存生成的,java,文件的路径以及包名和组件名称6),完成代码的生成指定,CLASSPATH,路径后,单击,【OK】,按钮,执行代码生成操作如果在代码生成过程出现问题,会打开如下图,13-5,所示的对话框,同时在,Rose,的日志显示区域会显示代码生成过程中的信息图,13-5,代码生成警告对话框,代码生成后,可以在保存,Java,文件夹路径,(,这里为,D:temp),中查看所生成的,Java,文件。
如图,13-6,所示图,13-6,正向工程生成的,java,文件,(7),编辑代码代码生成后,可以在如图,13-7,所示的右键菜单中选择,【Edit Code】,在,Rose,中查看并编辑新生成的代码图,13-7,编辑代码,任务三 逆 向 工 程,一、逆向工程概述,Rational,Rose,逆向工程就是从现有系统的代码来生成模型的功能逆向工程通常在迭代过程结束后,重新同步模型和代码时非常有用在一个迭代开发周期中,对于原有模型的实现,可能会加入许多新的类、属性或方法,这样就可能造成设计模型和实现模型不一致这时候,采用逆向工程就可以实现设计模型和实现模型的同步同时,通过逆向工程可以分析已有的代码,了解代码结构与数据结构,这些代码对应到模型图就是类图、数据模型图与组件图Rational Rose,所支持的逆向工程功能很强大,包括的编程语言有,C+,、,VB,、,VC,、,CORBA,、,Java,等,并且可以直接连接,DB2,、,SQL Server,、,Oracle,、,Sybase,等数据库,还可以导入,Schema,并且生成数据模型很多大型软件系统的开发都涉及数据库的使用,对这种大型系统的开发,尤其是做二次开发的情况下,主要的难点就是对源代码与数据库结构的分析。
利用,Rose,的逆向工程这一功能,就可以完成代码、类图以及数据库,Schema,到数据模型图的转换假设现有图书管理系统中的图书类,Book.Java,代码如图,13-8,所示图,13-8 Book.java,代码,二、使用,Rose,的逆向工程将已有的,java,源代码转换成,Rose,模型,下,面是由,Book.java,源文件生成,Rose,类图1),选择,Java,逆向工程依次选择,【Tools】【Java/J2EE】【Reverse Engineer】,菜单,如图,13-9,所示打开“,Java Reverse Engineer,”,(Java,逆向工程,),对话框2),选择指定文件夹下,(CLASSPATH),的,Java,源文件,单击,【Reverse】,按钮,执行从代码到模型的逆向转换,在,Rose,工程的视图区域中可以查看由逆向工程所生成的类,如图,13-10,所示图,13-9 Java,逆向工程对话框,图,13-10,生成,UML,类,(3),将转换后的类添加到类图,使用鼠标将视图区域中的转换后的类,(,这里为,Book),拖放到绘图区域,即可得到对应的类图,如图,13-11,所示。
图,13-11,逆向工程得到的类图,(4),逆向工程,(java),常见的问题解决过程如下:,Rose,逆向工程的时候,属性类型表现为:,Logical View:java:lang:,Rose,逆向工程的时候,错误显示为找不到类解决办法如下:,依,次选择,【Tools】,【Java/J2EE】,【Project Specification】,菜单,如图,13-12,所示选择,【Classpath】,选项卡,将相应的包加入即可,并设置好项目的相关项,(,如,Classpath),即可图,13-12,基本设置类型,习 题,1,什么是正向过程,使用,Rose,工具实现正向过程有哪些基本步骤?,2,什么是逆向工程,逆向工程有哪些特点?,。