Avatar of bored_shiva
bored_shiva

asked on 

Reading a big Java project - advice?

This is sort of amorphous, but:
I'm starting a new job soon, and will be working on a fairly large (40 packages, several hundred classes) project. It's an awful lot of material to cover, and I have only a couple of weeks to get a handle on things.
The project is a network client, and to make matters worse they use a bunch of external packages (aside from the 40 from the project itself)
My question is, could anyone recommend any effective strategies in dealing with something like this?  I tried starting at the main class and following each branch as I get to it (ie, every import, method, etc) but it seems fairly hopeless as it is. It took me two hours to get through two lines of import (especially when I realized that two of the imported classes actually import each other. I didn't even know you can do that...)
Please help.
JavaProject Management

Avatar of undefined
Last Comment
bored_shiva
Avatar of aman123_123
aman123_123

You can use Understand for Java for reverse engg. of code.
It will create easy to understand diagrams from the code.

http://www.softpedia.com/get/Programming/File-Editors/Understand-for-Java.shtml
Avatar of drequinox
drequinox

you can try to get the class diagrams from java soruce code using
http://www.visual-paradigm.com/product/vpuml/demos/roundtrip/javatomodel.jsp

also
you can use code analyzers which will help you a bit to understand whats going on
http://java-source.net/open-source/code-analyzers
ASKER CERTIFIED SOLUTION
Avatar of softwarepearls_com
softwarepearls_com

Blurred text
THIS SOLUTION IS ONLY AVAILABLE TO MEMBERS.
View this solution by signing up for a free trial.
Members can start a 7-Day free trial and enjoy unlimited access to the platform.
See Pricing Options
Start Free Trial
Avatar of CEHJ
CEHJ
Flag of United Kingdom of Great Britain and Northern Ireland image

Personally i'd suggest a combination of the reverse engineering into class diagrams approach and the one suggested by softwarepearls, with an emphasis on the latter
Avatar of bored_shiva
bored_shiva

ASKER

Excellent idea. I've learned so much more in the past 24 hours since taking up your suggestion. Thanks a lot
Java
Java

Java is a platform-independent, object-oriented programming language and run-time environment, designed to have as few implementation dependencies as possible such that developers can write one set of code across all platforms using libraries. Most devices will not run Java natively, and require a run-time component to be installed in order to execute a Java program.

102K
Questions
--
Followers
--
Top Experts
Get a personalized solution from industry experts
Ask the experts
Read over 600 more reviews

TRUSTED BY

IBM logoIntel logoMicrosoft logoUbisoft logoSAP logo
Qualcomm logoCitrix Systems logoWorkday logoErnst & Young logo
High performer badgeUsers love us badge
LinkedIn logoFacebook logoX logoInstagram logoTikTok logoYouTube logo