2012-02-10 92 views
0

對於一個學生項目,我需要擴展一個Java項目。 問題是這個項目沒有太多的評論,很難分析它。 我正在尋找一些東西來生成一個類圖,如果可能的話,還有一個序列圖。分析Java源代碼的工具

我已經試過umbrello(但是有一些大類錯誤)和agilej,但是該項目有很多包和子包,我沒有找到如何遞歸生成圖。

是否有其他工具可以做到這一點?

預先感謝您。

+0

如果你使用eclipse然後看看這裏:http://stackoverflow.com/questions/1120032/what-is-your-favorite-automatic-class-diagram-generator-for-eclipse – yurib 2012-02-10 15:09:42

+0

你試過的ArgoUML? – Joni 2012-02-10 15:14:51

回答

0

另一個eclipse插件叫做'metrics',你可以在sourceforge上找到它。它可以以文本和圖形形式提供一組關於Java項目的信息。

1

在Eclipse中,您可以選擇將包演示文稿設置爲Flat或Hierarchical。在平面模式下,您可以在src /文件夾下看到每個軟件包的完整名稱,在分層模式下,您必須展開以查看src/com/mypackage等。在AgileJ中,當您處於平面模式時(默認模式爲Eclipse),然後無論你從包資源管理器中拖出什麼東西,無論是項目,文件夾,庫,Java源文件,類還是其他任何東西,它都會通過所有權樹進行緩衝並添加所發現的類,就像您期望的那樣。

你在你的問題中描述的異常問題 - 不是通過子包遞歸 - 當你使用層級模式下的包資源管理器時發生。在這種情況下,發生的事情是類圖只接收到一個包的下落通知 - 但它無法知道包資源管理器的包呈現模式,或者即使拖動源自包explorer。

所以,如果你真的想通過軟件包層次遞減,並且出於某種原因不想多次選擇它們與平面模式下的包資源管理器,那麼最簡單的事情就是切換到資源透視圖並在Navigator視圖中找到要包含的所有包的父級文件夾,然後將其拖到類圖上。這將啓動對子類的遞歸搜索。

請注意,如果拖拽足夠多的類(確切的閾值是可配置的),那麼它會提供過濾它們 - 例如,您可能想要過濾掉單元測試或生成的類。如果你嘗試添加大量的類(同樣,它是可配置的,但是默認情況下它是200),那麼你將被阻塞 - 但是一個包含200個類的類圖有什麼意義呢?只會導致不可讀的類圖。