Advances in software inspections
IEEE Transactions on Software Engineering
Managerial Use of Metrics for Object-Oriented Software: An Exploratory Analysis
IEEE Transactions on Software Engineering
Software engineering (6th ed.)
Software engineering (6th ed.)
Software Inspections: An Effective Verification Process
IEEE Software
Metric-Based Selective Representation of UML Diagrams
CSMR '02 Proceedings of the 6th European Conference on Software Maintenance and Reengineering
Analyzing Java Software by Combining Metrics and Program Visualization
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
Experiences with Program Static Analysis
METRICS '98 Proceedings of the 5th International Symposium on Software Metrics
Application of UML Associations and Their Adornments in Design Recovery
WCRE '01 Proceedings of the Eighth Working Conference on Reverse Engineering (WCRE'01)
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)
A Study on the Current State of the Art in Tool-Supported UML-Based Static Reverse Engineering
WCRE '02 Proceedings of the Ninth Working Conference on Reverse Engineering (WCRE'02)
The Development and Evaluation of Three Diverse Techniques for Object-Oriented Code Inspection
IEEE Transactions on Software Engineering
Runtime Checking of UML Association-Related Constraints
WODA '07 Proceedings of the 5th International Workshop on Dynamic Analysis
ACS'10 Proceedings of the 10th WSEAS international conference on Applied computer science
Hi-index | 0.00 |
An approach to system verification is described in which design artefacts produced during forward engineering are automatically compared to corresponding artefacts produced during reverse engineering. The goal is to automatically determine if an implementation is consistent with the original design. In the system described, XML Metadata Interchange (XMI) representations of Unified Modelling Language (UML) class diagrams are recovered from compiled Java class files. These are automatically compared with the corresponding diagrams produced during forward engineering by software engineers using CASE tools. Examples are provided in which reversed engineered UML class diagrams differ from those produced during forward engineering but are still faithful to the original design intent. Such differences are often due to more abstract system representations being captured in forward engineered design artefacts, the inclusion of design attributes and annotations that are not retained in the final implementation, and issues associated with the use of weakly typed containers. In other cases, differences indicate a deviation from the intended design. It is this latter type of difference that this paper is particularly interested in identifying. We advocate that an automated comparison of forward and reverse engineering artefacts should be performed during formal code inspection preparation and used to guide human review of the identified differences.