簡體   English   中英

逆向工程記錄不良 Java 來自源

[英]Reverse Engineering poorly documented Java from source

我是一名系統工程師,應屆大學畢業生,我剛剛接到了一個非常令人生畏的項目。

我們有一個遺留系統,我們合法地擁有整個代碼及其所有權利。 問題是代碼的文檔記錄很差,很少的文檔不完整,有時是錯誤的,並且原始開發人員不可用。

它使用自定義 Perl 構建腳本需要來自 CPAN 的一千個模塊才能工作,我不知道 Perl。 除了 Doxygen 之外,對 UML 的逆向工程失敗了,並且僅限於 inheritance 圖和調用圖。

我得到了一塊巨大的黑板,我正在慢慢地瀏覽代碼、建模包,然后是其中的嵌套包。

我的問題是我是否正在從正確的方向進行逆向工程。 在開發 UML 和編寫設計文檔時,我正在從最底層開始努力弄清楚什么叫做什么。 我做了一個 package 圖,但很難弄清楚在這么高的水平上發生了什么。

我查閱的一篇學術論文建議我還制作了一個新的需求文檔,這會使我的速度更加慢,而且我不知道這是否是個好主意,因為其他開發人員總是忙於保持遺留系統的正常運行。

有沒有什么書可以幫助我,我是否從正確的角度來解決這個問題? 我應該聘請了解 Perl 和 JMX 的合同工來協助我嗎?

Michael Feathers 所著的“有效地使用遺留代碼”一書可能比我們在這里能告訴你的任何東西都更能幫助你。

但是,您需要為自己澄清的最重要的事情(從您的問題聽起來並不完全清楚)是:您的目標是什么? 你想用這個代碼庫實現什么?

如果答案是(聽起來)“能夠有效地維護現有項目”,那么嘗試直接構建系統的完整高級model可能不是最有效的路徑。 記住它可能太多了。

在這種情況下,我會嘗試僅了解您當前需要修改的系統用例; 通過代碼跟蹤方法調用(可能在正在運行的系統上使用調試器)以查看涉及哪些部分。 對幾個不同的用例執行此操作,您將開始看到模式,然后記錄這些模式並逐漸將它們組合成系統的高級圖像。

這個工具可能會幫助你。

或者如果遺留系統寫得不好,它可能會造成巨大的難以理解的混亂,但我希望它有所幫助。

如果它是 java 代碼,那么深度逆向工程將非常有幫助。 請參閱以下文檔: http://www.ejb3.org/jar_file_reverse/jar_file_reverse.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM