Roles for composite objects in object-oriented analysis and design
OOPSLA '93 Proceedings of the eighth annual conference on Object-oriented programming systems, languages, and applications
Lightweight extraction of object models from bytecode
Proceedings of the 21st international conference on Software engineering
Finding refactorings via change metrics
OOPSLA '00 Proceedings of the 15th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
On the Visualization of Java Programs
Revised Lectures on Software Visualization, International Seminar
GD '97 Proceedings of the 5th International Symposium on Graph Drawing
No Java without Caffeine: A Tool for Dynamic Analysis of Java Programs
Proceedings of the 17th IEEE international conference on Automated software engineering
Chava: Reverse Engineering and Tracking of Java Applets
WCRE '99 Proceedings of the Sixth Working Conference on Reverse Engineering
Reverse Engineering of the UML Class Diagram from C++ Code in Presence of Weakly Typed Containers
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Design Pattern Recovery in Object-Oriented Software
IWPC '98 Proceedings of the 6th International Workshop on Program Comprehension
Instantiating and Detecting Design Patterns: Putting Bits and Pieces Together
Proceedings of the 16th IEEE international conference on Automated software engineering
TOOLS '01 Proceedings of the 39th International Conference and Exhibition on Technology of Object-Oriented Languages and Systems (TOOLS39)
Recovering binary class relationships: putting icing on the UML cake
OOPSLA '04 Proceedings of the 19th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Green: a customizable UML class diagram plug-in for eclipse
OOPSLA '05 Companion to the 20th annual ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Test Order for Class-based Integration Testing of Java Applications
QSIC '05 Proceedings of the Fifth International Conference on Quality Software
TAUPE: towards understanding program comprehension
CASCON '06 Proceedings of the 2006 conference of the Center for Advanced Studies on Collaborative research
Do software libraries evolve differently than applications?: an empirical investigation
LCSD '07 Proceedings of the 2007 Symposium on Library-Centric Software Design
nAIT: A source analysis and instrumentation framework for nesC
Journal of Systems and Software
Refactorings of design defects using relational concept analysis
ICFCA'08 Proceedings of the 6th international conference on Formal concept analysis
Using FCA to suggest refactorings to correct design defects
CLA'06 Proceedings of the 4th international conference on Concept lattices and their applications
Dynamic architecture extraction
FATES'06/RV'06 Proceedings of the First combined international conference on Formal Approaches to Software Testing and Runtime Verification
Maintaining invariant traceability through bidirectional transformations
Proceedings of the 34th International Conference on Software Engineering
Taupe: Visualizing and analyzing eye-tracking data
Science of Computer Programming
Hi-index | 0.00 |
Developers use class diagrams to describe the architecture of their programs intensively. Class diagrams represent the structure and global behaviour of programs. They show the programs classes and interfaces and their relationships of inheritance, instantiation, use, association, aggregation and composition. Class diagrams could provide useful data during programs maintenance. However, they often are obsolete and imprecise: They do not reflect the real implementation and behaviour of programs. We propose a reverse-engineering tool suite, Ptidej, to build precise class diagrams from Java programs, with respect to their implementation and behaviour. We describe static and dynamic models of Java programs and algorithms to analyse these models and to build class diagrams. In particular, we detail algorithms to infer use, association, aggregation, and composition relationships, because these relationships do not have precise definitions. We show that class diagrams obtained semi-automatically are similar to those obtained manually and more precise than those provided usually. (A demonstration applet of the Ptidej tool suite is provided also. The latest version of the Ptidej tool suite is available at www.yann-gael.gueheneuc.net/Work/.)