`
gogole_09
  • 浏览: 201821 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

开源UML项目Udoc简介

阅读更多

   由于对开源的热爱,经常需要看开源的东东,但是像Struts那样的开源框架来说,从代码入手的话,却像一头扎进了大海, 出不来。 经常想能获取到官方的文档资料, 比如说类关系图等, 这样的话,可以对整个系统的架构很清楚,从架构再往代码方面转移。 这样的话,对于整个开源产品的理解无疑更加深入。

      最近一段时间,由于工作需要,接触到powerDesigner和Rose比较多。 这两个产品可以正向产生出资料,如PD的PDM图,然后根据物理模型(PDM),生成相关SQL 脚本。 Rose的UML图,而后的java文件。这些资料的生成都很方便。 更重要的是,这两个工具都支持逆向工程。 既支持脚本或者源代码来反向生成PDM图或UML图。 而今天的主角却不是这些“重量级”的东西。

     使用过以上产品的朋友都知道,这两个产品有个致命的缺点。就是跑起来非常的耗内存,而且破解麻烦,。

     而今天我介绍的东西,源代码和第三方库,整个加起来, 大小不超过500K。 而且能够根据class或者jar文件,动态产生出UML图。

   那么,今天的主角隆重登场, 它就是-----------UDoc.

     为了证明我没有说谎,我把截图发上来, 看看这个软件的大小:

    

 

     解压后, 其目录非常简单,包含

   

                            

                   

 

    其中,src包含着源代码, lib包含第三方包。 UDoc.jar是直接可以运行的程序,(当然,前提是你必须有jre).

   

   OK,言归正传,我今天主要介绍其是如何使用的。 看其强大之处到底体现在哪里:

   双击 "UDoc.jar" 出现如图,这是其主界面,一个词---  简便  有点GOOGLE的风格 :

 

 

  其中,菜单栏出有4个小的向下三角形:

  将鼠标移到第2个,可以出现如下界面,(这也是今天重点介绍的)

  


 

  这代表通过class来生成UML, 出现上图后,单击一下,即可出现下面的效果:

 

 


 

 其中的classpath 是需要你选择你需要生成UML图的地址,比如c:/mysql.jar

  下面的classes 是jar包中,哪些类需要生成UML。 举例说明,如图

 

 

   

 

 

 


   最后的图形,如下:

 

 


 

 真正强大之处在于图的四个方向的小箭头, 上代表父类,下代表其子类或者实现类.

  左,右代表与此类有关系的其他对象。

  我们来看看,其父类(点击上箭头):

 

 


    再向上追溯下, 查看com.mysql.jdbc.Driver的父类:

   

 

 


  OK.一个结构图就此出现,对于你查看整个系统的结构来说,这样的图相信会给你很大的帮助。 OK。 这个好东西就介绍到这里, 发现好东西,不敢独享, 所以贡献出来,希望有兴趣的朋友,可以去尝试一下。 当然,好东西还有其他很多的功能,这里就不能一一介绍了。 有兴趣的还是自己去琢磨吧。


  最后发个源代码结构图, 这么强大的东西,其代码可以说是非常简单,有兴趣有时间的,可以好好研究研究。

 

 

 

  这里把项目传上来, 免去感兴趣的朋友去搜索之苦。 附件如下:

  • 大小: 7.6 KB
  • 大小: 20.7 KB
  • 大小: 11.5 KB
  • 大小: 46.8 KB
  • 大小: 46.5 KB
  • 大小: 31.6 KB
  • 大小: 41.9 KB
  • 大小: 18.2 KB
  • 大小: 23.1 KB
  • 大小: 74.9 KB
  • 大小: 102.2 KB
分享到:
评论
22 楼 programlv 2010-11-29  
求教一下LZ,这个是怎么解析Java文件的?
21 楼 littleJava 2010-11-11  
这个东西很早就有介绍了,而且这个项目貌似停止更新了
20 楼 pengsuyun 2010-11-11  
顶一个,很实用的东东!
19 楼 donle_elxj 2010-10-31  
chpublish1012 写道
楼主讲的好  东西实用  
我也经常头疼不能整体的去观察一个开源项目
看代码的话 web项目还好 java项目就不知道从何入手了
找过这种反向的工具  效果都不好
有了这个以后对设计的理解就能又有所提高了


MyEclipse中的UML视图也不错
18 楼 a_nuo 2010-02-08  
这个工具太棒了!!
多谢楼主!!
17 楼 creasure 2010-01-20  
creasure 写道
将楼主的下载下来后,运行,提示无法加载main class。

发现在CMD下可以运行。
为了方便,写了一个start.bat文件放在UDoc.jar相同路径下。双击start.bat即可启动UDoc.
16 楼 creasure 2010-01-20  
将楼主的下载下来后,运行,提示无法加载main class。
15 楼 lmq871124 2010-01-20  
我怎么点了browser以后弹出的页面没东西,是不是还对jdk版本有要求?
14 楼 tangfeng 2010-01-18  
好东西,很强大啊!打开程序速度很快,不知道是不是新装了update18的缘故
13 楼 睡着的兔子 2010-01-15  
谢谢 楼主  用的不错
12 楼 大猫阿Ken 2010-01-11  
是个好东西,可以帮助理清开源代码的类关系,谢谢楼主
11 楼 asin 2010-01-10  
工具不错,而且很小。。。。
但像这种工具做逆向的工程总有些问题。。。
这边有个类似的东西,请看
http://www.iteye.com/topic/566684
10 楼 gogole_09 2010-01-09  
xingqiba 写道
piao_bo_yi 写道
struts文档里面带类图...



在哪儿呢,,能否具体点给个地。thanks

这位兄弟,你把源代码下过来, 去docs目录下找找,应该可以找得到的……
9 楼 gogole_09 2010-01-09  
kingxip 写道
问下楼主,如果源代码写得非常糟糕,他也能生成吗?

  这个……  我只能告诉你,如果没法生成,它会把简单的类单个列出来,但是点不出关系, 只能看见几个X的图标
8 楼 kingxip 2010-01-07  
问下楼主,如果源代码写得非常糟糕,他也能生成吗?
7 楼 cai555 2010-01-07  
not bad!!
6 楼 chpublish1012 2010-01-07  
楼主讲的好  东西实用  
我也经常头疼不能整体的去观察一个开源项目
看代码的话 web项目还好 java项目就不知道从何入手了
找过这种反向的工具  效果都不好
有了这个以后对设计的理解就能又有所提高了
5 楼 cqllang 2010-01-07  
用了一下,感觉还不错。。
4 楼 fyb207 2010-01-06  
恩,非常好,学习了,谢谢。
3 楼 xingqiba 2010-01-06  
piao_bo_yi 写道
struts文档里面带类图...



在哪儿呢,,能否具体点给个地。thanks

相关推荐

    开源UML项目Udoc简介UDoc-1-005.rar

    由于对开源的热爱,经常需要看开源的东东,但是像Struts那样的开源框架来说,从代码入手的话,却像一头扎进了大海, 出不来。 经常想能获取到官方的文档资料, 比如说类关系图等,这样的话,可以对整个系统的架构很...

    UDoc java代码分析uml

    UDoc java代码分析uml 分析出来的结果类似于struts2中的uml图

    EMF Parser (TypeScript) 源码

    UDOC.js 是 [Photopea](https://www.Photopea.com) 项目的文档解析和转换组件。 FromEMF.js 是 UDOC.js 中的 EMF 文件解析器。 此代码是把 FromEMF.js 用 TypeScript 改写的版本,并且修正了原版代码在解析 ...

    node-v8.15.0-linux-s390x.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    Java基础知识总结(超详细整理).txt

    Java基础知识总结(超详细整理)

    ISO IEC 27021-2017 信息技术.安全技术.信息安全管理系统专业人员的能力要求.pdf

    ISO IEC 27021-2017 信息技术.安全技术.信息安全管理系统专业人员的能力要求.pdf

    2024年中国DFB激光器芯片行业研究报告.docx

    2024年中国DFB激光器芯片行业研究报告

    公开整理-ESG视角下的多期DID构建数据集(2009-2022年).xlsx

    详细介绍及样例数据:https://blog.csdn.net/li514006030/article/details/138510939

    红帆OA(医疗版)漏洞细节未授权SQL注入请求注入数据包

    红帆OA(医疗版)是**一款专为医疗机构设计的办公自动化软件,旨在提高医院和相关卫生机构的工作效率和管理效能**。其功能特点包括: 1. **日常办公管理**:提供医院日常行政办公所需的基本功能,如文档处理、通知公告、会议管理等。 2. **科室管理**:支持医院内部各科室的管理需求,包括人员管理、资源分配、绩效考核等。 3. **信息集成**:能够整合医院内部的各类信息系统,实现数据共享和业务协同。 4. **多样化的医院类型支持**:适用于不同类型和规模的医院,如大学附属教学医院、综合性医院、专科医院、民营医院和集团医院等。 5. **业务范围广泛**:涵盖行政办公、医务室管理、科研管理、护士排班管理、党政管理和医患关系管理等多个方面。 6. **综合业务管理平台**:结合了卫生主管部门的管理规范和众多行业特色应用,是符合医院行业特点的综合业务管理平台。 7. **丰富的成功案例**:拥有众多成功案例,是医院综合业务管理软件中应用最广泛的之一。 需要注意的是,尽管红帆OA(医疗版)提供了强大的功能和广泛的应用场景,但任何软件系统都可能存在一定的安全风险,例如SQL注入漏洞等。因

    网页制作基础学习--HTML+CSS常用代码.txt

    网页制作基础学习--HTML+CSS常用代码

    ECHO HCS-2810ES_3810ES 操作手册

    HCS-2810ES_3810ES 说明书

    2024-2030中国3-吗啉丙磺酸市场现状研究分析与发展前景预测报告.docx

    2024-2030中国3-吗啉丙磺酸市场现状研究分析与发展前景预测报告

    node-v4.6.2-x64.msi

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    node-v8.8.1-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    QYResearch:2023年前10大高流量治疗系统企业占据全球98%的市场份额.docx

    QYResearch:2023年前10大高流量治疗系统企业占据全球98%的市场份额.docx

    0.Python实现3D建模工具(上)内含设计文档和源码.md

    0.Python实现3D建模工具(上)内含设计文档和源码.md

    node-v8.8.1-linux-x86.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    c语言文件读写操作代码

    c语言文件读写操作代码

    node-v9.8.0-linux-arm64.tar.xz

    Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。

    公开整理-ESG视角下的多期DID构建数据集(2009-2022年).dta

    详细介绍及样例数据:https://blog.csdn.net/li514006030/article/details/138510939

Global site tag (gtag.js) - Google Analytics