Take the 2-minute tour ×
Programmers Stack Exchange is a question and answer site for professional programmers interested in conceptual questions about software development. It's 100% free, no registration required.

I am a Sr java Developer and have recently joined a new team. Here I have been asked to create a functional document looking at the code of a legacy application. This application was written about 8-10 years back, which is currently running in live environment but due to lack of documentation it is difficult to be setup and run on local development box. I consulted some of the old team members who support it, but none was able to run it on their dev boxes.

Now I have to create a functional document out of it (with running it only looking at the code) which will act as a base to re-write this application with new technology and some enhancements. Kindly suggest what would be the best way to move forward?

I tried to find out from testers and found that there is no tester currently allocated to this application as it's an old running app on live. There are not much enhancements or bugs coming up. Ans as this re-write project is already queued up, the management is looking into aligning any coming bugs to this new app.

share|improve this question
    
did you consulted with application testers / support team? –  gnat Apr 1 '13 at 6:48
    
yes, i tried to find out from testers and found that there is no tester currently allocated to this application as its an old running app on live. There are not much enhancements or bugs coming up. Ans as this re-write project is already queued up, the management is looking into aligning any coming bugs to this new app. –  mehta Apr 1 '13 at 10:32
    
You are stuck between a rock and a hard place. You could try something like a UML modelling tool and see if it can reverse engineer the models from the java code (AFAIK, NetBeans for example used to have a tool capable of this pre version 7.) That could be a starting point, else, it's navigating the code manually and documenting as you go - eitherways, a shit job to do! –  Nim Apr 1 '13 at 11:15
    
Thanks Nim for your reply. This is exactly what I have started to do. I have started creating sequence diagrams looking at the code. This way I am trying to understand the flow. However, coming at functional details from this is something I am finding difficult. –  mehta Apr 1 '13 at 13:13

1 Answer 1

Joel Spolsky had a lot to say about rewriting code (i.e., "don't").

In your shoes I'd try to tie down the business users and see if I could get a current set of requirements out of them. It's possible the old code contains logic to handle situations and conditions that are no longer relevant. You may have an opportunity to greatly reduce the footprint.

You can use this new list as a guide when you examine the code, to determine which bits are important and which bits can receive less attention.

Be sure to remind management that they'll need to assign testers to this project.

(A mechanical bug-for-bug port is possible of course, but personally I'd avoid it)

Good luck!

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.