View Full Document


Unformatted text preview:

Gadget A Tool for Extracting the Dynamic Structure of Java Programs Juan Gargiulo and Spiros Mancoridis Department of Mathematics Computer Science Drexel University Philadelphia PA USA e mail gjgargiu smancori mcs drexel edu Abstract Source code analysis and inspection does not provide enough information to describe the structure of an objectoriented program completely because there are components and relations that only exist during its runtime This paper presents a tool called Gadget that helps software engineers extract the dynamic structure of objectoriented programs written in the Java programming language The tool uses program profiling filtering and graph clustering techniques In this work we show how Gadget is used to analyze a standard graphical user interface library for Java called Swing This library has a complex structure part of which we expose using data gathered by Gadget during the execution of a simple Java program that uses Swing 1 Introduction As the size of a software system increases so does the complexity of its structure The use of object oriented OO development techniques and languages helps programmers manage this complexity by supporting data abstraction encapsulation polymorphism and reuse However the OO approach makes understanding the structure of these systems more difficult because of features such as dynamic binding and polymorphism Understanding the dynamic structure of a system is helpful during software maintenance The dynamic structure of an OO program shows which objects are created and what messages are sent between these objects at runtime Dynamic analysis can be used to complement static sourcelevel inspection and analysis which may not provide all of the information software engineers need in order to understand an OO system For example the Factory OO design pattern 3 is used to manufacture objects and make these objects accessible to client objects through an abstract interface at runtime Static analysis using a tool such

Access the best Study Guides, Lecture Notes and Practice Exams

Loading Unlocking...

Join to view Gadget and access 3M+ class-specific study document.

We will never post anything without your permission.
Don't have an account?
Sign Up

Join to view Gadget and access 3M+ class-specific study document.


By creating an account you agree to our Privacy Policy and Terms Of Use

Already a member?