2009-05-26 58 views
8

HI我只是在我的項目發佈結束。因此,爲了繼續工作,我們的經理要求我們爲我們編寫的代碼生成類圖。它與3500個java文件的中型項目。所以我認爲我們需要生成類圖。首先,我需要知道逆向工程在這裏如何工作。此外,我在谷歌(綠色,紫羅蘭)尋找一些工具,但不知道 是否他們有任何help.Please建議我如何進行。也是一個很好的開始教程表示讚賞。生成類圖

回答

7

我強烈建議BOUML。它的Java反向支持絕對是ROCK SOLID

BOUML有許多其他advanteges:

  • 這是非常快的(最快 UML工具創建過,簽出benchmarks
  • 具有堅如磐石的C++,JAVA,PHP和其他導入支持,
  • 它是多平臺的(Linux,Windows,其他操作系統),
  • 有很好的SVG導出支持,這很重要,因爲查看矢量格式的大圖Firefox,非常方便(您可以快速切換「鳥眼」視圖和課程詳細視圖),
  • 它功能全面,令人印象深刻,集中發展(看看development history,很難相信如此快速的進展是可能的)。
  • 支持插件,具有模塊化的架構(這允許user contributions,貌似BOUML社會形成了)
+0

這很好,而且很容易使用。然而,這些圖很難看。 – 2010-03-27 16:39:26

0

有一些工具可以幫助您生成這些圖表。這些花錢。

否則,您可以嘗試解析您的Java文件。這可能很簡單,只需創建一個簡單的解析器即可讀取Java文件,並將該類的名稱和所有導入語句寫入文件並從中生成類圖,graphviz可以幫助您。

+0

您可以將此方法與免費的http://yuml.me UML圖生成器結合使用。 對於Powershell類和Ruby on Rails域,人們[已經在執行此操作](http://yuml.me/wildthing)。 既然你有這麼多的課程,你需要將圖表分解成10-50個班級。 – tobinharris 2009-05-31 14:56:48

1

UML標準版(或更好)的可視化範式將反向工程Java文件到類圖中。

6

您要使用的工具是Doxygen。它與Javadoc類似,但可以跨多種語言使用。如果找出依賴關係,並且可以調用graphviz來渲染類圖。以下是幾個Java classes run through Doxygen的示例。

+0

WOW。很棒。 – Epaga 2009-12-18 10:42:54

2

我已經使用了Visual Paradigm for UML來處理你想要做的事情,它非常好。

查看here瞭解詳情。

只要去工具 - >即時反向並選擇你的軟件包。

1

我猜如果你的老闆只是想讓你忙到下一個項目開始,那麼這裏沒有任何壞處,但是你會很快發現用3500個類創建一個類圖會告訴你對你的系統完全沒有關係。事實上,你並不是真的想要一個擁有10個以上類的圖。所以一旦你把所有的代碼都轉換到你的建模工具中,你就需要開始組織和安排來找到它的含義。創建一個新圖,將一個重要的類放到它上面,並引入所有與該類直接相關的類。重複300個最重要的課程。別擔心,它不像聽起來那麼可怕,也許是一週的工作。

爲了記錄,我選擇的建模工具是Enterprise Architect Sparx Systems。它會反轉java源文件或.jar文件。有一個免費的30天試用版。

+0

我同意爲所有課程生成是一件痛苦的工作。這個練習是爲了讓人們保持良好的狀態。:_) – GustyWind 2009-05-27 04:47:53

0

我已經使用了多年的Enterprise Architect。一位JBoss開發人員向我建議。它適用於所有類型的UML建模,包括類模型(Java,C#和其他)的逆向工程。目前的基本版本是每個座位120美元,但它具有大部分昂貴工具的功能,而且學習起來更容易。我特別喜歡它生成HTML和RTF文檔的能力。

在工具和源代碼之間同步代碼非常容易。即使是雙向的,如果你想。

您的PM也可能喜歡它可以創建的活動和順序圖。我也經常使用部署圖。把所有這些都放在一個工具裏是非常有用的。

1

ObjectAid是相當不錯的。您可以將課程拖放到圖表中並按照您的要求進行排列。