繁体   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