简述怎样用argouml把学习日记的源代码反向生成类图 - 日志 - littlebat ...

来源:百度文库 编辑:神马文学网 时间:2024/04/29 19:22:26

简述怎样用argouml把学习日记的源代码反向生成类图

已有 289 次阅读  2006-10-17 22:02   标签:  学习日记  源码  这里以学习日记的learndiaryV0.9.0.4为例,结合最新版的ArgoUML0.22简述一下怎么样从学习日记源代码反向生成类图。其它环境为:操作系统:redhat linux9.0,jdk1.4.2_12-b03(最新的jdk6在ArgoUML0.22下工作起来据我使用好像有点问题)。

1、选择档案->汇入原始码:



2、在出现的“汇入原始码...”浏览对话框中选定源代码顶层目录:./learndiary/src/com:



3、在出现的“setup the import classpath”对话框中手工逐个把学习日记涉及到的类库加进去:

我加了的类库有:
1)Tomcat5.0中common目录下的:common/lib/servlet-api.jar
2)学习日记源码涉及到的类库,都在 ./learndiary/web/WEB-INF/lib下面,包括(保险起见,都加吧:)):
activation.jar          commons-logging.jar    jstl.jar                             standard.jar
antlr.jar               commons-validator.jar  log4j-1.2.12.jar                     struts-el.jar
commons-beanutils.jar   CVS                    mail.jar                             struts.jar
commons-digester.jar    jakarta-oro.jar        mysql-connector-java-3.1.12-bin.jar
commons-fileupload.jar  jdom.jar               rome-0.8.jar
(注:这是现在cvs库中的最新版,里面有些类库是learndiaryV0.9.0.4没有的,你如果用learndiaryV0.9.0.4的话就可以不加。)
这个过程有点麻烦,也是argouml需要改进的地方,还有,加了第一个路径后,你会发现对话框跑到主界面后面去了,你加下一个的时候需要在任务栏上的相应图标上点一下才能使它成为当前对话框继续添加classpath。

4、把classpath添加完后,点击OK,你就可以把源代码反向成类图了,这个过程可能要花几分钟,可要耐心点哟:)



这样,完成反向工程了。但是,因为argouml现在还在开发中,还没有达到一个成熟的V1.0版,据我的经验,反向的类图如果再正向生成代码是通不过编译的,比如,在类com.learndiary.website.util.Util.java中
反向后的类文件头部为:

package com.learndiary.website.util;

import byte[];
import String[];


而真正的原始文件头部为:

package com.learndiary.website.util;

import java.security.MessageDigest;
import java.util.Random;


这显然是不对的。但是,其它的绝大多数类是正确的。所以我认为,ArgoUML现在作为一个uml基础知识的学习工具和一些不需要双向生成类图和类的简单应用中可用。也就是说,我认为ArgoUML还不是一个可用的生产版本!

下面征对一个朋友的提问“servlet和struts的包是如何导入到ArgoUML中”来说一下怎样单独把这些类库反向工程成类图。
1、同上面的第1步同;

2、在同样的“汇入原始码...”浏览对话框中的“select language for import”中选择“java from classes” :



3、在出现的“汇入原始码...”浏览对话框中选定你要反向工程的类库,比如下面的struts.jar:


4、在出现的“setup the import classpath”对话框中手工逐个把编译这个类库涉及到的其它类库加进去,因为我不清楚struts.jar都需要依赖什么其它类库,所以把Struts的lib目录下的所有jar文件都加进去了,外加Tomcat5.0下面的那个:common/lib/servlet-api.jar(我也不知道是不是该用J2EE中的servlet相关的那个类库?或者用这个就行了?)

因为,我对UML的应用仅限于非常基础的类分析和活动分析,用于在后来加入的部分模块的设计中理清思路。我觉得对我来说ArgoUML已经够用了。而且,我的使用过程中也有一些肯定不正规的甚至错误的UML应用,还希望看到的朋友能够指点一二。我的电子邮件为:mdx-xx@tom.com,你最好是在网上给我留言。谢谢。


分享 举报
路过
鸡蛋
鲜花
握手
雷人

发表评论 评论 (3 个评论)

  • 回复 举报 littlebat 2006-10-19 23:34 上面我说:
    也就是说,我认为ArgoUML还不是一个可用的生产版本!

    实际上这个说法不当,真有人用ArgoUML作真正的商业应用。下面是我大概1年多两年前在argouml的用户邮件列表中得到的一个argouml模型局部(也只有局部,别人不会把整个商业建模的成果拿出来分享吧,这个模型局部好像是他在回复某位用户对argouml用于实际生产中的可能性表示怀疑的回答吧),明显可以看出来是用于商业正式应用的。后面是它的建模图片和它的argouml模型。
    而且,ArgoUML用的是非常宽松的开源协议BSD协议,听说商业应用都是完全免费的哟(应该是吧,具体还没有详细研究:))
    我会继续使用ArgoUML的,别的不说,就是冲在他们坚持了10年不间断的前进的那种精神上也要使用和支持他们。况且,我用的完全是UML中最基本的一些概念,主要是用来理清自己的设计思路的,argouml的表达能力对我来说应该绰绰有余了吧。

    附图:

    1、类图:



    2、页面导航设计图:



    3、argouml建模文件:

    附件:filmLibrary.zargo.zip,11897 bytes
  • 回复 举报 anonymous 2007-02-12 23:35
    刚看你的挺激动,仔细一看,反的
  • 回复 举报 littlebat 2007-02-13 16:39 可以呀,而且不止是类图,整个UML模型都可以导出成XMI文件(XML Metadata Interchange(XML 元数据交换))。应该说大多数UML建模工具都提供了这个模型导出成XMI文件的功能。

    在ArgoUML0.22中的方法是在“档案”菜单(左起第一个菜单)中选择“Export as XMI...”即可。

    另外,分享两篇关于UML和XMI的文章:

    XMI 与 UML 合力推动产品开发: http://www-128.ibm.com/developerworks/cn/xml/x-xmi/index.html

    使用 XML: UML、XMI 和代码生成,第 1 部分: http://www-128.ibm.com/developerworks/cn/xml/x-wxxm23/index.html