2012-04-21 135 views
1

我嘗試做我的工作,即「分析Java應用程序中的源代碼」,其中分析未編譯的.java或.txt文件。

我創建了this主題,在那裏我瞭解到我走錯了路。據我所知,我認爲處理ANTLR或JavaCC的最佳方式,但我無法弄清楚它是如何工作的以及如何使用它(JavaCC我無法打開)。我想找到一些可以在我使用的Netbeans中編程「古典」的東西。

是否有可能使用java.lang.reflect(在我的主題中有人寫道它只能在編譯代碼中使用)?有沒有一種方法可以在沒有任何「補充」或僅使用Java庫的情況下編寫所有這些內容?

感謝您提供寶貴意見。我很困惑,不知道如何開始。



1.選擇主語言分析器
2.構建掃描器(詞法分析器)
3.構建語法分析器(語法分析器)
4.保存獲取的信息XML形式,
5.分析項目的UML圖形表示。
主要目標是創建UML,XML是一個附加。什麼是分析代碼來創建UML的最佳方式?

+0

通過分析做u意味着畫UML(爲主題的建議)? – 2012-04-21 10:18:06

+0

我允許加載「n」個文件並基於它們之間的鏈接(如果有)來繪製UML類圖。 – avalagne 2012-04-21 10:21:13

回答

0

從廣義上講,你有兩種選擇。

如果你想使用源代碼,你必須構建一些能夠解釋這些文件的東西,並在它們中形成一個編程結構的模型。這是不平凡的 - 你基本上構建了一個編譯器的重要子集,你必須處理很多內務處理的東西 - 加載文件,處理對.jar文件的引用等,並處理代碼可能的事實沒有實際編譯。如果你選擇這條路線,你最好的選擇是ANTLR;去讀維基和書籍,並卡住。

另一種方法是使用編譯文件 - 罐子等 - 你可以使用反射工具來解釋代碼。這簡化了事情 - 至少你知道代碼編譯,而其他人已經做了很多內務。這仍然不是微不足道的。

+0

好的,我明白了。你認爲更簡單的方法是什麼?如果我決定採用反射工具,那麼在分析之前很難編譯加載的文件(並準備好)?感謝您的幫助。 – avalagne 2012-04-21 11:59:44

1

更簡單的解決方案是獲取支持導入Java源代碼併爲您生成圖表的UML工具。

你的方式充滿了困難。你被困在輸入端,但你還沒有考慮圖形方面。即使您成功地確定如何創建抽象語法樹,繪製圖表也不容易。

+0

你不喜歡我:)必須有一些「體面的」解決方案來做到這一點:(這是「只」學士論文... – avalagne 2012-04-21 12:43:52

+0

你需要多少時間來完成它?它是在2012學年結束,是嗎? – duffymo 2012-04-21 12:49:55

+0

是的,的確如此。不幸的是,我走錯了方向,我的主管也沒有幫助我,所以我在論壇上尋找解決方案和建議,這並不妨礙我這樣的時間,我不知道如何 – avalagne 2012-04-21 12:53:58

0

topcased可能對你有用, HTH

+0

也許我看錯了,但是Topcased生成的代碼是從UML圖表中得到的,或者不是嗎?我需要從代碼創建UML圖表 – avalagne 2012-04-21 17:12:57

+0

@avalagne:是的,您可以:Topcased能夠做逆向工程(不是很漂亮,它是開源的,但是有用)。不適用於龐大的API,但可以通過打包來確定。我沒有在這裏,但在Eclipse的projet中的不同菜單搜索,以及文檔如何調整最大可以顯示 – 2012-04-22 14:38:18

+0

好的,謝謝。我看着它... – avalagne 2012-04-22 15:05:17

相關問題