The software landscape: a visual formalism for programming-in-the-large
The software landscape: a visual formalism for programming-in-the-large
A program understanding environment based on the “Star” approach to tool integration
CSC '94 Proceedings of the 22nd annual ACM computer science conference on Scaling up : meeting the challenge of complexity in real-world computing applications: meeting the challenge of complexity in real-world computing applications
Reverse engineering to the architectural level
Proceedings of the 17th international conference on Software engineering
Strongest postcondition semantics as the formal basis for reverse engineering
Reverse engineering
Reverse Engineering and Design Recovery: A Taxonomy
IEEE Software
Extracting and Restructuring the Design of Large Systems
IEEE Software
Reengineering Legacy Systems to Meet Quality Requirements: An Experience Report
ICSM '94 Proceedings of the International Conference on Software Maintenance
Design maintenance: unexpected architectural interactions (experience report)
ICSM '95 Proceedings of the International Conference on Software Maintenance
A software reverse engineering experience
CASCON '91 Proceedings of the 1991 conference of the Centre for Advanced Studies on Collaborative research
Linux as a case study: its extracted software architecture
Proceedings of the 21st international conference on Software engineering
Automatic architectual clustering of software
Advances in software engineering
Architecture recovery of web applications
Proceedings of the 24th International Conference on Software Engineering
Software architecture recovery using Conway's law
CASCON '98 Proceedings of the 1998 conference of the Centre for Advanced Studies on Collaborative research
Using software evolution to focus architectural recovery
Automated Software Engineering
Developer refinement of runtime architectural structure
Proceedings of the 2010 ICSE Workshop on Sharing and Reusing Architectural Knowledge
Resolving architectural mismatches of COTS through architectural reconciliation
ICCBSS'05 Proceedings of the 4th international conference on COTS-Based Software Systems
Extraction of ownership object graphs from object-oriented code: an experience report
Proceedings of the 8th international ACM SIGSOFT conference on Quality of Software Architectures
Hi-index | 0.00 |
A large portion of the software used in industry today is legacy software. Legacy systems often evolve into difficult to maintain systems whose original design has been lost or else no longer closely matches the actual structure of the system.In our paper we present a "hybrid" process in which we combine extracted code facts and information derived from interviewing developers to determine the architectural structure of a legacy system. We introduce the steps of this process using a case study of a large legacy system, an optimizing back end for IBM compilers. These steps include collecting "back of the envelope" designs from project personnel, extracting raw facts from the source code, collecting naming conventions for files, clustering code artifacts based on naming conventions, creating tentative structural diagrams, and collecting more "live" information in terms of reactions to these tentative diagrams, and so on, until we converge to an architectural structure.Our conclusion is that there is a reasonably well defined sequence of steps that the reverse engineer can go through to extract facts and collect live information in order to create a useful architectural structure diagram.