RationalRose由代码生成类图

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

Rational Rose由代码生成类图
Rational Rose由代码生成类图2010-09-28 23:31一正向工程
1、设置默认语言为Java,Tools-Options-Notation-default:选择Java。

2、设置环境变量ClassPath,Tools-Java/j2ee-ProjectSpecification-ClassPath:具体路径设置为正向工程生成java文件要保存的目录,一般为项
目的src目录。

3、打开设计好的类图,选中要生成的Java文件的类,然后通过Tools-Java/J2ee-GeneralCode生成java文件.
4、正向工程注意事项:
以上是正向工程的操作流程,过程比较简单,主要是操作过程中以及设计
类时有些问题大家需要注意一下,以后实际操作时会节省一些时间,主要有以
下几点:
1).生成代码前将Project Specifiction属性页Code Generation标签项
中的GenerateRoseID和Generate Default ReturnLine两个复选框的默认选中状态去掉,以免生成一些我们不需要的信息
2).设计model等值对象时,不必为其设计getter(),setter()方法,将对
应字段属性设置为:proertytype:simple即可,正向工程会自动生成其getter,setter方法。

3).类之间调用关系的设计:
一般A类调用B类,最终代码中经常以在A类里初始化一个b类的变量。

在设计时,不要在A类中设计一个B类类型的属性。

这种关系要在AssociationSpecification中通过为RoleA指定值来实现。

4).类设计时要按开发规范写好类和方法的注释,正向工程会将注释生成到代码中,开发过程中注释如有改动,可通过逆向工程将类图和代码保持同步。

二逆向工程操作流程
1.点击Tools-Java/J2ee-Reverse Engineer,调出JavaReverseEngineer 对话框。

2、在此页面添加要进行逆向工程的Java文件,并选中,然后点击Reverse按钮即可。

==
Rational Rose逆向工程生成类图
Rational Rose是一个好用的软件设计工具,如果拿到一个项目工程框架源码却没有UML图,那么方法之间的调用关系功能流转就不容易看出来了,那么怎么用RationalRose生成类图呢?
1.新建一个工程,模板选择项目对应的模板,我选择J2EE
如图:
2.在出现的界面中,CLASSPATH加入源代码目录,加入支持的包,点'ADD RECURSIVE'然后点'SELECT ALL'然后点'REVERSE',如果没有错误完成后没有任何提示,点'DONE'结束
如图:
3.Logical View下就有你新建好的工程了,然后把包和类拖到右侧图中,点菜单上的'QUERY'下的'ADD CLASSES',确定
===
用rose2003逆向工程由java源代码生成类图时,遇到java泛型Map String,String报错。

这个问题有有人遇到过吗?
===
rose2003本来就不支持泛型,它只是只支持1.5以下的版本的类啦,
好像rose 7是支持泛型的,
建议你使用Enterprise Architect-UML CASE Tool,这个工具是支持最新
的规范和版本
===
用Rational Rose逆向工程(java)生成类图
拿到了项目框架工程代码却没有uml图,那么方法之间的调用关系功能流
转就不容易看出来,那么如何产生类图呢,记忆里方法有下:1.rose逆向工程,2.together rose有了,together前天才卸掉,那么就用ROSE,摸索后得出以
下步骤,知道的就不用看了,很粗糙的:)
1.新建一个ROSE工程,选择J2EE模板,
2.如图
3.在出现的界面中,CLASSPATH中加入源代码的目录,加入支持的包,点
'ADD RECURSIVE'点'SELECT ALL'点REVERSE',完成后没任何提示,点'DONE'结束。

逆向工程完成。

4逆向工程以后不会自动生成类图,但在logical view和component view 里面按照你的java包结构会自动生成相应的包和类,要按照自己的要求建立类图。

下面我们将所选包下的所有类显示在新建类图中:
ROSE里新建CLASS DIAGRAM,然后把类包一个个拖到右侧图中,点菜单上
的'QUERY'下的'ADD CLASS',确定。

Rational Rose逆向工程(java)常见问题解决:
1.rose逆向工程的时候,属性类型表现为:Logical View:java:lang:
解决办法:
菜单-Tools-Java/j2ee-Project
选择Fundamental Type页面
Remoe Common JDK Classes Add Common JDK Classes
确定即可,也许是Rose的Bug 2.rose逆向工程的时候,报错,一般是类中没有引用了一些包
在菜单view-》log选中就能看到log window中出错信息,一般可能是找不到类,你在tools-java/j2ee-project specification里面设置好项目的相关项,比如classpath等等
解决办法:
菜单-Tools-Java/j2ee-project specification
选择Class Path页面,将相应的包加入即可
===
tools-option-notation-default是不是java
我认为应该如此操作:(我是这样做的)
1、划出类图
2、做一个组件图(选择组建的属性,将language选为java或其他的语言)
3、将组件图拖到该组件所需要组装的类图的模型上(在树形视图中操作)
4、这样,在选中类图的模型点击右键时,就会有java蔡单项,在那里就可以生成java代码。

下面的内容因为没有图,所以,只能发成这个样子了。

详情可以查看程序员杂志去年合订本中的那篇文章:
下面这部分将描述如何从设计模型导出代码,如果在实际开发中保持设计模型的实用性,保持设计模型与代码的一致性。

6.1框架代码的生成
6.1.1类的语法检查
在导出代码之前,我们要做的第一个步骤就是要先进性语法检查,其操作很简单,先看看图6.1.1.1,然后再往下看。

图6.1.1.1语法检查的第一步操作
你可以依次选择多个,就像图7.1.1.1种所示,也可以一个一个选择进行语法检查。

检查过程中你不需要操作,系统显示提示如图6.1.1.2:
图6.1.1.2语法检查
如果检查成功,系统会提示如图7.1.1.3:
图6.1.1.3 a语法检查成功的系统提示
图6.1.1.3 b语法检查成功的系统Log提示
如果检查过程中发现了错误,系统会在Log框中给出提示的;
例如:笔者进行了如图6.1.1.4中的操作:
图6.1.1.4 a修改前的doPost方法
图6.1.1.4 b修改后的doPost方法
这时候在进行语法检查,系统提示如图7.1.1.5所示:
图6.1.1.5 a语法检查失败时的系统提示
图6.1.1.5 b语法检查失败时的系统Log提示
因为图6.1.1.5 b中的系统提示太长了,所以,这里笔者把它写在下面:
14:50:21|Starting Syntax Checking 14:50:21|Class Logical View:scInfoTech:iar:IARControl-Starting syntax checking 14:50:
21|WARNING:Class Logical View:scInfoTech:iar:IARControl-operation doPost-the type of parameter request cannot be resolved-no import
will be generated
大家应该可以看懂这段英文提示的意思,这就是告诉我们那个出错的地方
是在哪个方法上产生的。

6.1.2 ClassPath的设置
语法检查通过后,下面我们就可以进行下一步了,导出代码。

但是在导出
代码的对话框中,系统会要求我们进行一下ClassPath的设置,这时候,我们
就应该考虑到你的编辑器所建立的工程所在的路径,然后把这个路径添加到里面,选择这个路径进行导出就没有问题了。

好了,我们看看下面的详细过程吧:
1、首先,选择"Generate Code",请看图6.1.2.1所示:
图6.1.2.1生成代码的选项
2、然后,如果是第一次生成代码,系统会弹出一个对话框,请看图
6.1.2.2:
图6.1.2.2设置ClassPath路径
注意:这里的ClassPath与Java中的ClassPath的概念有些相似,但是Rose在这里所显示的并不是操作系统中所设置的ClassPath值,这一点不要搞
混淆了。

3、单击按钮"Edit…"后,Rose弹出的是操作系统中所设定的ClassPath
路径,请看图6.1.2.3所示:
图6.1.2.3 Project Specification的ClassPath 4、这里笔者添加了图
6.1.2.4中所标示的路径:
图6.1.2.4添加ClassPath
点击确定后确认你的添加。

5、这个时候在图6.1.2.2中就会出现"C:\My Documents\稿件杂志"这样
的路径,请看图6.1.2.5:
图6.1.2.5添加完成的ClassPath 6、这样我们就完成了设置ClassPath
的过程,接着就可以准备导出代码框架了。

6.1.3导出代码
在导出代码的过程中,我们仍然是在图7.1.2.5的状态下进行操作。

我们可以看到在图6.1.2.5中"OK"按钮和两视图间的"Assign"按钮都是灰
色的(不可使用的)。

这时候,我们要选择两个部分,一个是在视图中左侧的"CLASSPATH Entries"要选择一个你要导出代码的路径,点击让它变成蓝色就可以了。

这时候,按钮"OK"和"Assign"按钮仍然是灰色的。

下面我们就要确定右边哪个包是要导出的,这里很明显就是"scInfoTech"。

我们把它和它的组件视图全部选中。

这时候,"OK"按钮和"Assign"按钮都变成
可用的了。

接着就很简单了,单击"OK"就可以看着图6.1.3.1等待图6.1.3.2的出现。

图6.1.3.1代码生成过程
图6.1.3.2代码生成成功
好了,代码生成成功!
安ROSE前先安JDK,
不然,用ROSE找一下JDK的目录,
然后,画图的时候,
打开J2EE,这个最全啦
否则,复杂的类,可能转的不对,
我们要做的第一个步骤就是要先进性语法检查,只有这一步,是关键,
然后就可以了,
你的类,右点后的样子就变了,
这里可以加,JAVADOC,
可以对类的属性,
加READ WRITE方法,
这个还是很好用的,
不然,GET的,SET的会写好多,
还能自动产生MAIN,
呵呵,
另外一个巧的方法是,
把,tools-默认语言设为JAVA,
因为,你一般不会对使用的语言换来换去的,
这样的话,
只要一产生类,
就是JAVA类,
不过,
双击的项也变了,
不是General的项了
直接是JAVA类属性
ROSE产生的代码,每个类,每个方法,都会打上一个ROSE号,
后期可反转,
就是从代码到类图!
==
rose使用技巧
1.安ROSE前先安JDK,
不然,要设置一下jdk的路径或者用ROSE找一下JDK的目录:
Tools--java/J2EE--Project Specification--CLASSPATH--new 2.然后,画图的时候,
打开J2EE,这个最全啦,会自动导入三个包:java、javax、org;
否则,复杂的类,可能转的不对;
不过,使用J2EE model需要导入大量的包,会有点慢,只是第一次练习"from class diagram to java source"的话,打开rose时点cancle不选任何model
就可以;
3.斜菱形表示public,钥匙表示Protected,锁表示private,T表示default;
4.生成代码之前,在"open standard specification"中的"Attributes"和"Operations"中设置属性的type,方法的返回值等;
5.可以在"关联关系"等的箭头中指定引用的名称;
6.可以设置JAVADOC,
还能自动产生MAIN,(未找到相应项)
可以对类的属性,加READ WRITE方法,这个还是很好用的,不然,GET
的,SET的会写好多,设置:
右键单击要生成代码的类,选open standard Specification-Attributes,再右键单
击要生成setter/getter的属性,选specification-java.
然后按"edit set"
将"propertyType"改为"simple",就可以了;
(read/write的默认值就已经是read/write);
参考:一个小技巧:
把默认语言设为JAVA:tools-option-notation-default
因为,你一般不会对使用的语言换来换去的,
这样的话,只要一产生类,就是JAVA类,
并且,右击,有一项就相应变为"java/J2EE";
(如果默认语言时C++,右击的那项是"ANSI C++")
双击的项也变了,不是General的项了直接是JAVA类属性;
8.我们要做的第一个步骤就是要先进行语法检查,
这一步,是关键;
有时需要语法检查之后,"java/J2EE"中的"Genarate code"
这项才从灰色变为可用项;
然后设置好CLASSPATH的输出路径就可以了;
9.导出代码
在导出代码的过程中,我们可以看到"OK"按钮和两视图间的"Assign"按钮
都是灰色的。

这时候,我们要选择两个部分,
一个是在视图中左侧的"CLASSPATH Entries"要选择一个你要导出代码的路径,点击让它变成蓝色就可以了。

这时候,按钮"OK"和"Assign"按钮仍然是灰色的。

下面我们还要确定右边哪个包是要导出的,这里很明显就是"scInfoTech"。

我们把它和它的组件视图全部选中。

这时候,"OK"按钮和"Assign"按钮都变成
可用的了。

10.ROSE产生的代码,每个类,每个方法,都会打上一个ROSE号,
后期可反转,
就是从代码到类图!
若想去掉roseid:Tools--java/J2EE--Project Specification--Code Generation;
11.但是ROSE的反转厉害的很,可以转CLASS的,
生成的图,带有关系,
12.把类图、顺序图等图片保存到word中:
点工具栏中"view"的"fit in window"-"copy"-粘贴到word;
这样得到的图片又清晰又完整又小,通常不到10k;如果图片太小,在word中
可以以200%的比例阅读:"视图"菜单-"显示比例";
13.Rational Rose怎么导入java类库?:
问:我想用java代码生成rose模型,可是总是有一些类找不到,需要导入jdk
或者其他的类包,请问怎么操作?
答:菜单tools-Java/J2EE-Project Specification
在Classpaths中加入类库路径,比如
D:\JBuilder6\jdk1.3.1\src.jar 14.画好了类图、顺序图,并加上了所有的操作,注释,说明等,怎么才能自动
生成设计文档?(现在还不会,还没装SODA)
参考资料:问:我在rose中画了一个类图,所有操作什么的都有了,也都写了注释。

但怎么才能自动生成设计文档呢?总不能把注释一个一个的拷出来吧。

答:在report菜单总选择SoDA Report,再选择report template(比如Detail of all of attribute and operations by class by package)
问:怎么没有SoDA选项?是不是要先装soda for word
答:先装soda,还要有word
上有不少文档
问:谢谢诸位的回答.我已经装上了,虽然生成的文档有点儿乱,
但可以看出这是一个功能很强大的工具.
答:其实最好的办法是根据你们文档的要求自己定制soda的模版,定制的过程说
起来很麻烦,但是其实并不复杂,看看soda的教学文档,半天就可以掌握了
15.画类图的时候,最好把类按"包"组织;并跟java代码实现时的包结构对应;没有包,所有的类堆积在一起将是一盘散沙。

相关文档
最新文档