My Profile
Active Members
TodayLast 7 Days
more...
Awards & Gifts
Online Exams
Fresher Jobs
Our fresher job section is exclusively for fresh graduates! Find jobs for freshers in major Indian
cities including Bangalore, Chennai, Hyderabad, Pune or Kochi
Resources
Find educational articles, blogs, discussion threads and other resources.
Colleges
Find details about any college in India or search for courses.
|
Reverse-Engineering Tool
Posted Date: 19 Mar 2008 Resource Type: Articles/Knowledge Sharing Category: General
|
Posted By: Aparanjitha Member Level: Gold Rating: Points: 5
|
|
|
|
Title of the project To use the Reflection API of Java to create a comprehensive Reverse-Engineering Tool
Abstract of the project
This project aims to develop a tool that will reverse engineer existing java code into meaningful class diagrams. The tool must show various class relationships, viz inheritance, aggregation, is-a, has-a etc. The utility must plug-in to the Eclipse IDE so that it is easily accessible to developers. As an option, the service could be exposed as a web-service.
Keywords
Generic Technology keywords
J2EE, IDE’s, Tools
Specific Technology keywords
Java, Eclipse IDE
Project type keywords
Analysis, Design, Implementation, Testing, User Interface
Functional components of the project
Following is a list of functionalities of the system. More functions that you find appropriate can be added to this list. And, in places where the description of is not adequate, you can make appropriate assumptions and proceed.
One of the common requirements in industry is to understand an existing system to work on it later. Understanding occurs at various levels, viz. business needs, high level working, operations with other systems etc. One of the ways in which an overall picture of the system can be gained is with UML Diagrams. Surprisingly, several modern systems do not have this documentation at all.
This project aims to reverse engineer exising code into usable class diagrams.
A person should be able to Use this system from the Eclipse IDE
Give a .class or .java file as input and see the class diagram for classes in that .java or .class file
Point to a java package structure / jar file and see the class structure and interactions among classes, inheritance, associations and other class-relationships etc.
As an option, the tool can also show sequence diagrams for possible flows.
Use the system to gauge the various code-quality parameters of the input code like cyclometric complexity, depth of inheritance etc.
As an option, this service can be exposed as a web-service.
Steps to start-off the project 1.Understand the reflection API and what it can and cannot do. Things not possible with the reflection API must be handled differently. 2.Learn thoroughly how Java compiles classes and loads them. You will need to understand this to perform sanity checks on the input code. 3.Generate the class hierarchy as text before going in for graphical representation. 4.While reflection API is one way to perform reverse-engineering, you may, at some points, want to actually parse the code to get more information, especially about associations among classes. A tool JavaCC, similar to Lex-Yacc, for Java is available. 5.Learn what are the industry standards for inheritance depth, complexities etc. Study the different ways these may be measured. 6.A lot of help is available for developing eclipse plugins on the internet. Check out various sourceforge sites to learn more. The Eclipse project is open source, so you can study that code as well. 7.Try to use various testing frameworks like JUnit to test your code.
|
Responses
|
No responses found. Be the first to respond and make money from revenue sharing program.
|
|
Watch TV Channels
|