objectaid - 如何從Java代碼生成UML圖(特別是序列圖)?




uml designer reverse engineering (9)

我如何從現有的Java代碼生成UML圖(特別是序列圖)?


ObjectAid UML Explorer

是我用過的。 它可以從存儲庫輕鬆installed

Name:     ObjectAid UML Explorer
Location: http://www.objectaid.com/update/current

並生成相當不錯的UML圖:

網站描述:

ObjectAid UML Explorer與其他UML工具不同。 它使用UML符號來顯示與您的文本編輯器一樣準確和最新的現有代碼的圖形表示,同時非常易於使用。 幾個獨特的功能使這成為可能:

  • 您的源代碼和庫是顯示的模型,它們不會被反向設計為不同的格式。
  • 如果您在Eclipse中更新代碼,您的圖表也會更新; 沒有必要對源代碼進行逆向工程。
  • 重構會更新您的圖表以及源代碼。 當您重命名字段或移動課程時,您的圖表只會反映更改而不會失去同步。
  • Eclipse工作空間中的所有圖表都會根據適當的重構更改進行更新。 如果有必要,它們會從您的版本控制系統中檢出。
  • 圖完全集成到Eclipse IDE中。 您可以將Java類從任何其他視圖拖放到該圖上,並在適用的情況下在其他視圖中顯示與圖相關的信息。

before曾經有人問before類似的東西。

到目前為止,我已經用於逆向工程的最佳工具,以及Java的圓形跳脫 - > UML是Borland的Together 。 它基於Eclipse(不僅僅是一個插件),而且非常有效。


http://www.zenuml.com並不直接從Java代碼生成UML圖,但它的DSL類似於Java。 順便說一句我創建zenuml :)


你也可以試試netbeans UML建模器。 我用它來生成我在eclipse項目中使用的javacode。 您甚至可以在netbeans中導入eclipse項目並保持eclipse設置與netbeans項目設置同步。

我嘗試了幾種用於eclipse的UML建模器,但對它們並不滿意。 他們要么不穩定,要么複雜,要么簡單醜陋。 ;-)


使用IntelliJ IDEA。 要生成類圖選擇包並按下Ctrl + Alt + U

默認情況下,它僅顯示類名稱,而不是所有依賴項。 要改變它:右鍵單擊 - >顯示類別...和顯示依賴關係:

為了生成依賴關係圖(UML部署圖),並使用Maven進入視圖 - >工具窗口 - > Maven項目並按下Ctrl + Alt + U

結果:

也可以生成更多的其他圖表。 請參閱documentation


您可以使用針對Eclipse 3.5的EclipseUML的30天評估版本: http://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip ://www.uml2.org/eclipse-java-galileo-SR2-win32_eclipseUML2.2_package_may2010.zip這不是最新的3.6版本,但非常好,不需要購買它來測試逆向工程。

逆向工程: http://www.forum-omondo.com/documentation_eclipseuml_2008/reverse/reverse/reverse_engineering_example.html : http://www.forum-omondo.com/documentation_eclipseuml_2008/reverse/reverse/reverse_engineering_example.html

現場Flash演示: http://www.ejb3.org/reverse.swfhttp://www.ejb3.org/reverse.swf

EclipseUML Omondo是Java世界中最好的工具。 只有eUML似乎在這個活躍的java同步市場上與他競爭,但eUML在代碼中添加了模型標籤,這實際上是非常糟糕的,並且對我來說是絕對不行的。


我會推薦Omondo的EclipseUML用於一般用途,雖然在幾個月前,我的web項目確實遇到過一些問題。 他們在某個時間點上有免費版本,但據說不會再推廣。

如果你真的熱衷於從源代碼反向工程序列圖,我會推薦jTracert

就Eclipse項目本身而言, Eclipse UML2 Tools項目可能支持逆向工程,儘管我在實踐中從未見過它的用處。

MoDisco (模型發現)項目Eclipse GMT項目似乎更清晰地實現您的目標。 技術特定工具列表將是一個開始的好地方。


我發現Green插件使用非常簡單,並從源代碼生成類圖。 試一試 :)。 只需將該插件複製到您的插件目錄即可。


編輯:如果你是一名設計師,然後紙莎草紙是你的最佳選擇,它是非常先進的功能,但如果你只是想繪製一些uml圖和簡單的安裝,那麼ObjectAid是非常酷,它不需要任何插件我只是將它安裝在Eclipse-Java EE上,並且效果很好!

更新2013年10月11日

我原來的帖子是在2012年6月,很多東西都發生了變化,許多工具都在增長,而其他的則沒有。 由於我要回過頭來做一些建模,同時也得到了一些回复,我決定再次安裝紙莎草紙,並且會再次調查其他可能的uml建模解決方案。 Uml代(具有同步功能)對於軟件設計師而言非常重要,但對於普通開發人員來說非常重要。

我希望紙莎草紙可以直接將逆向工程類轉換成UML類圖,如果這種逆向工程具有同步功能,那將是非常酷的,但不幸的是,紙莎草紙項目充滿特徵,我認為那裡的開發人員已經手頭多了,你在紙莎草紙上所做的動作可能不會給你任何回應,只是沒有任何反應,但這已經超出了這個問題範圍。

答案 (2013年10月11日)

工具

  1. 下載紙莎草紙
  2. 轉到幫助 - >安裝新軟件...
  3. 使用:下拉菜單中,選擇- 所有可用站點 -
  4. 在過濾器中輸入Papyrus
  5. 安裝完成後重新啟動Eclipse
  6. 重複步驟1-3,這次安裝Modisco

腳步

  1. 在你的java項目中(假設它叫做MyProject)創建一個文件夾,例如UML
  2. 右鍵單擊項目名稱 - >發現 - >發現者 - >從Java項目發現Java和庫存模型,將生成名為MyProject_kdm.xmi的文件。
  3. 右鍵單擊項目名稱文件 - >新建 - >紙莎草紙模型 - >並將其命名為MyProject。
  4. 將三個生成的文件MyProject.di,MyProject.notation,MyProject.uml移動到UML文件夾
  5. 右鍵單擊MyProject_kdm.xmi - >發現 - > Discoverer - >從KDM代碼中發現UML模型,再次獲得屬性對話框,將序列化prop設置為TRUE,以生成名為MyProject.uml的文件

  6. 將生成在根目錄下的生成的MyProject.uml移動到UML文件夾,Eclipse會問你如果你想替換它,點擊是。 我們在這裡做的是,我們用一個生成的模型替換了一個空模型。

  7. ALT + W - >顯示視圖 - >紙莎草紙 - >模型瀏覽器

  8. 在這個視圖中,你會發現你的課程在圖片中

  9. 在視圖中右鍵單擊根模型 - >新圖

  10. 然後開始從視圖中抓取類到圖中

一些功能

  • 顯示類元素(變量,函數等)右鍵單擊任何類 - > Filters - >顯示/隱藏內容Voila !!

  • 您可以從Window - > pereferences - > papyrus - >類圖中使用默認的友好顏色設置

  • 一個非常重要的設置是安排,當你放棄他們得到擁擠的課程時,右鍵單擊課程圖上的任何空白處並單擊排列全部

  • 模型資源管理器視圖中的箭頭可以被抓到圖上以顯示泛化,實現等

  • 畢竟你的設置會顯示圖表

  • 由於我知道您不需要同步,因此您需要手動導入任何新的類。

就是這樣,除非你真的需要它,否則不要購買商業產品,紙莎草紙實際上是偉大而復雜的,而不是捐贈或其他東西。

免責聲明:我和紙莎草人沒有任何關係,事實上我一開始並不喜歡紙莎草,直到我做了大量的研究,並且經歷了一些耐心。 當我嘗試其他免費工具時,會再次回到這篇文章。







diagram