2008-09-17 122 views
27

我正在尋找一種將Java逆向工程化爲序列圖的工具,但也提供了將某些庫調用過濾掉的功能。順序圖逆向工程

例如,Netbeans IDE在這方面做得非常出色,但它包含所有對String或Integer的調用,這些調用將圖解混淆到無法使用的地步。

任何幫助非常感謝!!!!!!!

+0

你用了很多標籤,你還沒有明確你想從哪個語言進行逆向工程! Java的? – 2008-09-17 20:17:50

回答

9

我認爲jtracert是你在找什麼。它從正在運行的Java程序生成序列圖。另外,因爲它的輸出是圖的文本描述(以幾種流行的SD工具的格式),所以您可以使用grep來僅篩選您感興趣的類。

+5

來自該項目的網站,jTracert已停止支持jSonde – 2011-10-11 18:52:59

+0

jsonde.com沒有真正的內容 – zkarthik 2013-03-15 16:25:01

+0

任何從源文件生成序列圖的工具?而不是運行代碼? – Mahesha999 2016-08-22 13:52:37

1

Sparx的企業架構師聲稱能夠逆向工程的Java代碼,包括生成序列圖 - 看到的user guide

它看起來這部分喜歡的話可以記錄調試會話,然後您生成從

我沒有嘗試過的序列圖(雖然已經使用EA作爲建模工具),所以ymmv!

有一個免費30天評估下載

1

看看http://www.maintainj.com

它不知道,是否可以過濾庫調用,但它有一個合理的圖形前端,似乎追查甚至非常大的應用程序

0

我剛開始在Sparx Systems Enterprise Architect中使用序列圖記錄功能。它適用於C#。您可以按類和方法創建過濾器。其實我試圖找出是否有可能過濾掉整個包裹。有一個自動排除外部模塊(如.NET框架)的複選框,它有助於清理。 YMMV for Java,但我認爲他們對Java的支持(和文檔)通常比.NET更好(更多示例)。

9

嘗試MaintainJ。 MaintainJ在運行時爲用例生成序列圖。它提供了multiple ways to filter out unwanted calls。是的,過濾不需要的呼叫是序列圖生成工具中最重要的功能。此外,MaintainJ提供了一個簡潔的界面來瀏覽圖表,並在一個用例或跨用例中搜索調用。

檢查demo video以獲得快速概覽。順便說一下,我是MaintainJ的作者。

1

熱燈(http://www.jmolly.com/heatlamp/)是專門爲此目的而設計的。

它從運行Java代碼生成交互(和可打印)的圖。您可以指定過濾器來描述要跟蹤的類,包和方法。繪製圖表後,您還可以搜索,篩選和摺疊調用,以進一步縮小順序圖。

聲明:我是Heatlamp的作者。

1

MaintainJ是一個非常棒的工具,最近我開始使用MaintainJ和我的應用程序,它使我的整個使用過程更加舒適,基於Maintainj序列& UML圖瞭解我的系統。

我相信對於上述問題MaintainJ是會給更好的主意。 謝謝, 克里希納MM

10

我相信解決您的問題的完美工具是潛水員:動態交互視圖反向工程。它提供了靜態和動態序列圖,並期望解決您的問題中的所有需求。

這是一個Eclipse插件,讓你:

  • 輕鬆跟蹤你的Java程序
  • 可視化你的程序的運行時功能
  • 過濾你的痕跡,使之更緊湊
  • 過濾您的IDE基於在運行時發生什麼
  • 查看源代碼編輯器中運行的代碼

這是對Github並且也有一個project web site

全面披露:我目前的項目領導潛水員

0

這裏和附加到Asgeir的答案。這是我找到的鏈接。在命令行

http://www.zanthan.com/ajm/sequencev7/sequence.jar

運行... 「Java的罐子sequence.jar」 ...這是一個圖形用戶界面的Java應用程序。

幫助部分說: SEQUENCE是生產UML序列圖的程序。與大多數類似的程序相反,您實際上並未繪製圖表。相反,您可以編寫您想要繪製的方法調用的文本描述,並自動計算和繪製佈局。

所以這個工具不逆向工程什麼,但我可以看到,如果你想快速從頭圖的東西如何可能是有益的。看起來它是在2002年建成的,我認爲現在可能有更好的工具。

這裏還有一個類似的工具在這裏: http://sdedit.sourceforge.net/example/index.html

0

JIVE(www.cse.buffalo.edu/jive)將從Java程序的執行中構建一個序列圖。它具有排除過濾器功能,可以排除屬於指定類或包的對象。 JIVE可以繪製多線程Java程序執行的序列圖。在用戶指導下,它還能夠在水平和垂直維度上緊湊大型圖表。