Abstract
Changes to a software system during implementation and maintenance can cause the architecture of a system to deviate from its documented architecture. If design documents are to be useful, maintenance programmers must be able to easily evaluate how closely the documents conform to the code they are meant to describe. Software architecture recovery, which deals with the extraction and analysis of a system’s architecture, has gained more tool support in the past few years. However, there is little research on developing effective and efficient architectural conformance methods. In particular, given the increasing emphasis on patterns and styles in the software engineering community, a method needs to explicitly aid a user in identifying architectural patterns.
This paper presents a semi-automatic method, called ARM (Architecture Reconstruction Method), that guides a user in the reconstruction of software architectures based on the recognition of patterns. Once the system’s actual architecture has been reconstructed, we can analyze conformance of the software to the documented design patterns.
The original version of this chapter was revised: The copyright line was incorrect. This has been corrected. The Erratum to this chapter is available at DOI: 10.1007/978-0-387-35563-4_35
Chapter PDF
Similar content being viewed by others
Key words
References
Bass, L., Clements, P., Kazman, R. (1998), Software Architecture in Practice,Addison-Wesley.
Buschmann, F., Meunier, R., Rohnert, H., Sommerlad, P., Stal, M. (1996), Pattern-Oriented Software Architecture,Wiley.
Chen, Y., Nishimoto, M., Ramamoorthy, C. (1990), The C Information Abstraction System, IEEE Transactions on Software Engineering, 3, 325–334.
Finnigan, P., Holt, R. C., et al (1997), The Software Bookshelf, IBM Systems Journal, 36 (4), 564–593.
Gamma, E., Helm, R., Johnson, R., Vlissides, J. (1994), Design Patterns,Addison Wesley.
Imagix Corporation, http://www.imagix.com
Portable Bookshelf, http://turing.toronto.edu/-holt/pbs
Johnson, J. (1993), Identifying Redundancy in Source Code Using Fingerprints, Proceedings of CASCON ‘83, 171–183.
Kazman, R., Abowd, G., Bass, L., Webb, M. (1994), SAAM: A Method for Analyzing the Properties of Software Architectures, Proceedings of the 16th International Conference on Software Engineering, 81–90, IEEE Computer Society Press.
Kazman, R. (1996), Tool Support for Architecture Analysis and Design, Joint Proceedings of the SIGSOFT `96 Workshops (ISAW-2), 94–97, ACM.
Kazman, R., Burth, M. (1998), Assessing Architectural Complexity, Proceedings of 2nd Euromicro Working Conference on Software Maintenance And Reengineering (CSMR), 104–112, IEEE Computer Society Press.
Kazman, R., Carrière, S. J. (1998), View Extraction and View Fusion in Architectural Understanding, Fifth International Conference on Software Reuse, 290–299.
Kazman, R., Carrière, S. J. (1999), Playing Detective: Reconstructing Software Architecture from Available Evidence, Automated Software Engineering, 6:2, April 1999, to appear.
Kontogiannis, K., DeMori, R., Bernstein, M., Merlo, E. (1994), Localization of Design Concepts in Legacy Systems, Proceedings of International Conference on Software maintenance `94, 414–423.
Lischetti, N., Coutaz, J. (1994), Supraanalyse de sup ratel. Technical report, Informatique et Mathematiques Appliquees de Grenoble (IMAG).
Murphy, G., Notkin, D. (1996), Lightweight Lexical Source Model Extraction, ACM Transactions on Software Engineering and Methodology, 5 (3), 262–292.
Murphy, G., Notkin, D., Sullivan, K. (1995), Software Reflexion Models: Bridging the Gap Between Source and High-Level Models. Proceedings of the Third ACM SIGSOFT Symposium on the Foundations of Software Engineering, 18–28, ACM Press.
Nigay, L., Coutaz, J. (1993), A Design Space for Multimodal Systems: Concurrent Processing and Data Fusion, Proceedings of InterCHI `93, ACM Press.
Nigay, L., Coutaz, J. (1993), Building User Interfaces: Organizing Software Agents, Proceedings of ESPRIT `91, 707–719.
Reasoning Inc., http://www.reasoning.com
SNiFF+, http://www.seed.arch.adelaide.edu.au/docs/sniff_online
Schull, F., Melo, W., Basili, V. (1996), An Inductive Method for Discovering Design Patterns from Object-Oriented Software Systems,UMIACS-TR-96–10, University of Maryland.
Storey, M., Muller, H., Wong, K. (1996) Manipulating and Documenting Software Structures, Software Visualization, World Scientific.
UIMS Tool Developers Workshop (1992), A Metamodel for the Runtime Architecture of an Interactive System, SIGCHI Bulletin, 24 (1), 32–37.
Wong, K., Tilley, S., Muller, H., Storey, M. (1994), Programmable Reverse Engineering, International Journal of Software Engineering and Knowledge Engineering,4(4), 501–520.
Woods, S. G., Yang, Q. (1995), Program Understanding as Constraint Satisfaction, Proceedings of the IEEE Seventh International Workshop on Computer-Aided Software Engineering (CASE-95), IEEE Computer Society Press.
Yeh, A., Harris, D., Chase, M. (1997), Manipulating Recovered Software Architecture Views, Proceedings of ICSE 19, 184–194, ACM Press.
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 1999 IFIP International Federation for Information Processing
About this chapter
Cite this chapter
Guo, G.Y., Atlee, J.M., Kazman, R. (1999). A Software Architecture Reconstruction Method. In: Donohoe, P. (eds) Software Architecture. WICSA 1999. IFIP — The International Federation for Information Processing, vol 12. Springer, Boston, MA. https://doi.org/10.1007/978-0-387-35563-4_2
Download citation
DOI: https://doi.org/10.1007/978-0-387-35563-4_2
Publisher Name: Springer, Boston, MA
Print ISBN: 978-1-4757-6536-6
Online ISBN: 978-0-387-35563-4
eBook Packages: Springer Book Archive