最近重溫了一下設計模式,看到大家的部落格裡面都是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示例:
- 隻能顯示基本的接口實作關系,有點失望。但是這個工具模組化能力,模型生成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
- 相比較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視圖,如下:
- 唉,,,還是商業版本軟體好,效果吊炸天,接口與實作、對象委托等關系全部能夠分析展示出來!!!