Practical guidelines for the readability of IT-architecture diagrams
Proceedings of the 20th annual international conference on Computer documentation
Documenting Software Architectures: Views and Beyond
Documenting Software Architectures: Views and Beyond
Software Reflexion Models: Bridging the Gap between Design and Implementation
IEEE Transactions on Software Engineering
A hybrid process for recovering software architecture
CASCON '96 Proceedings of the 1996 conference of the Centre for Advanced Studies on Collaborative research
Analyzing Java Software by Combining Metrics and Program Visualization
CSMR '00 Proceedings of the Conference on Software Maintenance and Reengineering
Recovering High-Level Views of Object-Oriented Applications from Static and Dynamic Information
ICSM '99 Proceedings of the IEEE International Conference on Software Maintenance
Reverse Engineering of Object Oriented Code (Monographs in Computer Science)
Reverse Engineering of Object Oriented Code (Monographs in Computer Science)
Using software evolution to focus architectural recovery
Automated Software Engineering
Discovering Architectures from Running Systems
IEEE Transactions on Software Engineering
Empirical studies in reverse engineering: state of the art and future trends
Empirical Software Engineering
Extraction of Component-Based Architecture from Object-Oriented Systems
WICSA '08 Proceedings of the Seventh Working IEEE/IFIP Conference on Software Architecture (WICSA 2008)
A field study in static extraction of runtime architectures
Proceedings of the 8th ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Software Architecture Reconstruction: A Process-Oriented Taxonomy
IEEE Transactions on Software Engineering
Proceedings of the 24th ACM SIGPLAN conference on Object oriented programming systems languages and applications
Developer refinement of runtime architectural structure
Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge
Static extraction and conformance analysis of hierarchical runtime architectural structure
Static extraction and conformance analysis of hierarchical runtime architectural structure
ECOOP'07 Proceedings of the 21st European conference on Object-Oriented Programming
Object graphs with ownership domains: an empirical study
Aliasing in Object-Oriented Programming
Hi-index | 0.00 |
Despite receiving much research attention, the extraction of runtime architecture remains hard. One approach, SCHOLIA, relies on adding typecheckable annotations to the code, and uses static analysis to extract a global, hierarchical Ownership Object Graph (OOG). The OOG provides architectural abstraction by ownership hierarchy and by types, and can be abstracted into a run-time architecture represented in an architectural description language, for documentation or conformance analysis. We report on our experience in analyzing a medium-sized object-oriented system undergoing maintenance to: (1) extract an OOG; and (2) refine the OOG based on the maintainers' feedback. We evaluate the effectiveness of abstraction by ownership hierarchy and by types to extract an OOG that the system maintainers understand. We measure the extraction effort to be about 1~hour/KLOC. An evaluation with the lead maintainer confirms that he understands abstraction by ownership hierarchy and by types. Finally, we illustrate how to incrementally refine an extracted OOG (without starting all over) to better match the maintainer's mental model.