Compilers: principles, techniques, and tools
Compilers: principles, techniques, and tools
The C++ programming language (2nd ed.)
The C++ programming language (2nd ed.)
Maintenance Support for Object-Oriented Programs
IEEE Transactions on Software Engineering - Special issue on software maintenance
Support for Maintaining Object-Oriented Programs
IEEE Transactions on Software Engineering - Special issue on software maintenance
Slicing object-oriented software
Proceedings of the 18th international conference on Software engineering
Points-to analysis in almost linear time
POPL '96 Proceedings of the 23rd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
The Unified Modeling Language reference manual
The Unified Modeling Language reference manual
Modular type-based reverse engineering of parameterized types in Java code
Proceedings of the 14th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Java 2: The Complete Reference
Java 2: The Complete Reference
Design Recovery by Automated Search for Structural Design Patterns in Object-Oriented Software
WCRE '96 Proceedings of the 3rd Working Conference on Reverse Engineering (WCRE '96)
Recovering High-Level Views of Object-Oriented Applications from Static and Dynamic Information
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Java implementation verification using reverse engineering
ACSC '04 Proceedings of the 27th Australasian conference on Computer science - Volume 26
A reverse engineering tool for precise class diagrams
CASCON '04 Proceedings of the 2004 conference of the Centre for Advanced Studies on Collaborative research
Precise identification of composition relationships for UML class diagrams
Proceedings of the 20th IEEE/ACM international Conference on Automated software engineering
Reverse-engineering 1-n associations from Java bytecode using alias analysis
Information and Software Technology
Recovering UML class models from C++: A detailed explanation
Information and Software Technology
Runtime Checking of UML Association-Related Constraints
WODA '07 Proceedings of the 5th International Workshop on Dynamic Analysis
Composition inference for UML class diagrams
Automated Software Engineering
ACM SIGSOFT Software Engineering Notes
nAIT: A source analysis and instrumentation framework for nesC
Journal of Systems and Software
Extracting UML class diagrams from object-oriented Fortran: ForUML
SE-HPCCSE '13 Proceedings of the 1st International Workshop on Software Engineering for High Performance Computing in Computational Science and Engineering
Hi-index | 0.00 |
UML diagrams, and in particular the most frequently used one, the class diagram, represent a valuable source of information even after the delivery of the system, when it enters the maintenance phase. Several tools provide a reverse engineering engine to recover it from the code.In this paper, an algorithm is proposed for the improvement of the accuracy of the UML class diagram extracted from the code. Specifically, important information about inter-class relations may be missed in a reverse engineered class diagram, when weakly typed containers, i.e., containers collecting objects whose type is the top of the inheritance hierarchy, are employed. In fact, the class of the contained objects is not directly known, and therefore no relation with it is apparent from the container declaration.The proposed approach was applied to several software components developed at CERN. Experimental results highlight that a substantial improvement is achieved when the container type information is refined with the inferred data. The number of relations otherwise missed is relevant and the connectivity of the associated class diagrams is radically different when containers are considered.