天天看點

【UML】Java代碼與UML模型互相轉換方法

最近重溫了一下設計模式,看到大家的部落格裡面都是Java代碼+UML視圖,UML表達整體架構,然後再秀出具體的代碼,點面結合、一目了然。是以也研究了一下Java代碼與UML模型互相轉換方法。

一、常用的UML模組化工具

  • 三大模組化工具可以參考:UML模組化工具Visio 、Rational Rose、PowerDesign的比較
  • 三者都能非常好的支援UML的模組化,由于和Eclipse或者IDEA等代碼IDE內建不太友善或者不可行,是以沒有深入研究

二、Java、UML模組化與反向工具推薦

  • 十二個開源UML工具推薦:http://developer.51cto.com/art/200911/161814.htm
  • 6 個 Java 項目的 UML 反向工程工具:https://www.oschina.net/news/32803/6-java-to-uml-tools
  • 開源UML工具推薦:https://www.cnblogs.com/tk55/p/6194141.html
  • 各種工具,說的天花亂墜,實際在Eclipse插件中根本安裝不了或者安裝完成之後各種使用不了,吐槽一下Eclipse插件管理的混亂。
  • 折騰了幾天之後,發現Papyrus、ObjectAid這兩個Eclipse插件的效果還可以,基本可以滿足需求。

三、Papyrus使用

  • 安裝參考:

    https://www.eclipse.org/papyrus/download.html

    https://www.eclipse.org/papyrus/downloads/index.php

    http://www.eclipse.org/downloads/download.php?file=/modeling/mdt/papyrus/downloads/drops/3.3.0/R201803070505/Papyrus-Update-3.3.0.zip&protocol=http

    http://www.eclipse.org/downloads/download.php?file=/modeling/mdt/papyrus/downloads/drops/1.0.2/R201502180839/Papyrus-Update-1.0.2.zip&protocol=http

    https://wiki.eclipse.org/Papyrus_User_Guide#Create_a_new_Model

    http://wiki.eclipse.org/Java_reverse_engineering

    http://wiki.eclipse.org/Java_Code_Generation

  • Java反向生成的UML示例:
  • 【UML】Java代碼與UML模型互相轉換方法
  • 隻能顯示基本的接口實作關系,有點失望。但是這個工具模組化能力,模型生成Java代碼的能力很強。還是很推薦的!!!

四、ObjectAid使用

  • ObjectAid主要用于Java代碼反向UML
  • https://blog.csdn.net/shifangwannian/article/details/49105375

    http://www.objectaid.com/           比較好用,進階功能需要LICENSE,如:導出圖形

    https://stackoverflow.com/questions/51786/how-to-generate-uml-diagrams-especially-sequence-diagrams-from-java-code 推薦工具

    http://green.sourceforge.net/        2011年更新

    http://plantuml.com/                    國内的,持續更新

    http://developer.51cto.com/art/200911/161814.htm

    https://www.oschina.net/news/32803/6-java-to-uml-tools

    https://www.cnblogs.com/tk55/p/6194141.html

  • 【UML】Java代碼與UML模型互相轉換方法
  • 相比較Papyrus,反向UML的效果更好,能夠生成稍微隐藏一點兒的關系
  • Eclipse裡面,推薦使用Papyrus進行UML模組化,使用ObjectAid反向Java代碼到UML

五、IDEA終極版的UML視圖功能

  • 該功能隻在IDEA Ultimate版本提供,需要付費,隻能免費試用
  • https://www.jetbrains.com/help/idea/navigating-through-a-diagram-with-the-file-structure-view.html
  • https://stackoverflow.com/questions/51786/how-to-generate-uml-diagrams-especially-sequence-diagrams-from-java-code#
  • 選中包、目錄、或者Java檔案之後按住Ctrl+Alt+U即可調出Diagram視圖,如下:
  • 【UML】Java代碼與UML模型互相轉換方法
  • 唉,,,還是商業版本軟體好,效果吊炸天,接口與實作、對象委托等關系全部能夠分析展示出來!!!