Abstract
Organizations use to have implemented systems that represent a large effort and budget invested in the past. These systems are evolved and adapted over time in order to accommodate technological and business changes. Moreover, big companies often develop similar systems within the same domain. This has been motivating them to migrate to reuse approaches, such as domain engineering and product line. However, existing systems in general don’t have up-to-date architectural documentation that can help in their maintenance and reuse. Considering this scenario, this paper presents an approach to architecture recovery and evaluation that aims at extracting knowledge from existing systems to help in their understanding and reuse. This extracted knowledge is represented through a recovered application architectural model composed by architectural elements that represent domain concepts traced to implemented functional requirements, which may help in generating reusable artifacts. In order to evaluate the approach feasibility, an experimental study was performed.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Agrawal, R., Srikant, R.: Fast Algorithms for Mining Association Rules. In: 20th Very Large Databases Conference, Santiago Chile, pp. 487–499 (1994)
Anquetil, N., Fourrier, C., Lethbridge, T.C.: Experiments with Hierarchical Clustering Algorithms as Software Remodularization Methods. In: Working Conference on Reverse Engineering, Pittsburgh PA USA, pp. 235–255 (1999)
Anquetil, N., Lethbridge, T.: Recovering Software Architecture from the Names of Source Files. Journal of Software Maintenance: Research and Practice 11, 201–221 (1999)
Aspectj: Eclipse Project, AspectJ 1.5.3. (2007), http://eclipse.org/aspectj/
Barcelos, R., Travassos, G.H.: Evaluation Approaches for Software Architectural Documents: A Systematic Review. In: Ideas 2006 - 9º Workshop Iberoamericano de Ingenieria de Requisitos y Ambientes de Software, La Plata Argentina, vol. 1, pp. 433–446 (2006)
Bass, L., Clements, P., Kazman, R.: Software Architecture in Practice, 2nd edn. Addison-Wesley, Reading (2003)
Bojic, D., Velasevic, D.: A Use-Case Driven Method of Architecture Recovery for Program Understanding and Reuse Reengineering. In: 4th European Software Maintenance and Reengineering Conference. Zuriq Swiss, pp. 23–31 (2000)
Booch, G., Rumbaugh, J., Jacobson, I.: The Unified Modeling Language User Guide, 1st edn. Addison-Wesley, Reading (1998)
Deursen, A.V., Hofmeister, C., Koschke, R., Moonen, L., Riva, C.: Symphony: View-Driven Software Architecture Reconstruction. In: Fourth Working IEEE/IFIP Conference on Software Architecture (WICSA 2004). Oslo Norway, pp. 122–132 (2004)
Duenas, J.C., De Oliveira, W.L., De La Puente, J.A.: A Software Architecture Evaluation Model. In: 2nd International ESPRIT ARES Workshop, Las Palmas de Gran Canaria Spain, pp. 148–157 (1998)
Fagan, M.E.: Design and Code Inspection to Reduce Errors in Program Development. IBM Systems Journal 15(3), 182–211 (1976)
Kazman, R., Bass, L., Abowd, G., Webb, M.: SAAM: A Method for Analyzing the Properties of Software Architectures. In: International Conference on Software Engineering (ICSE). Sorrento Italy, pp. 81–90 (1994)
Kazman, R., Carrière, S.J.: Playing Detective: Reconstructing Software Architecture from Available Evidence. Technical Report CMU/SEI-97-TR-010. Pittsburgh PA USA (1997)
Kazman, R., Klein, M., Clements, P.: ATAM: Method for Architecture Evaluation. Technical Report CMU/SEI-2000-TR-004 CMU/SEI. Pittsburgh PA USA (2000)
Lima, M.J.D., Ururahy, C., Moura, A., Melcop, T., Cassino, C., Nery, M., Silvestre, B., Reis, V., Cerqueira, R.: CSBase: A Framework for Building Customized Grid Environments. In: Third International Workshop on Emerging Technologies for Next-generation GRID (ETNGRID 2006), Manchester Reino Unido, pp. 187–192 (2006)
Mitchell, B.S., Mancoridis, S.: On the Automatic Modularization of Software Systems Using the Bunch Tool. IEEE Transactions on Software Engineering 32(3), 193–208 (2006)
Murta, L.G.P., Van Der Hoek, A., Werner, C.M.L.: ArchTrace: Policy-Based Support for Managing Evolving Architecture-to-Implementation Traceability Links. In: International Conference on Automated Software Engineering (ASE), Tokyo Japan, pp. 135–144 (2006)
Odyssey.: Software Reuse Environment based on Domain Engineering (2007), http://reuse.cos.ufrj.br/odyssey
Sametinger, J.: Software Engineering with Reusable Components. Springer, New York (1997)
Sartipi, K.: Software Architecture Recovery based on Pattern Matching. In: International Conference on Software Maintenance, Amsterdam the Netherlands, pp. 293–296 (2003)
Schmerl, B., Aldrich, J., Garlan, D., Kazman, R., Yan, H.: Discovering Architectures from Running Systems. IEEE Transactions on Software Engineering 32(7), 454–466 (2006)
Tzerpos, V.: Comprehension-Driven Software Clustering. PhD Thesis. Department of Computer Science University of Toronto (2001)
Vasconcelos, A.P.V., Cepêda, R.S.V., Werner, C.M.L.: An Approach to Program Comprehension through Reverse Engineering of Complementary Software Views. In: 1st International Workshop on Program Comprehension through Dynamic Analysis, Pittsburgh PA USA, pp. 58–62 (2005)
Vasconcelos, A.P.V., Werner, C.M.L.: Towards a set of Application Independent Clustering Criteria within an Architecture Recovery Approach. In: 5th IEEE/IFIP Working Conference on Software Architecture - Software Architecture Evaluation and Analysis Working Session, Pittsburgh PA USA, pp. 235–236 (2005)
Vitharana, P., Jain, H., Zahedi, F.M.: Strategy-Based Design of Reusable Business Components. IEEE Transactions on Systems, Man, and Cybernetics – Part C: Applications and Reviews 34(4), 460–474 (2004)
Wohlin, C., Runeson, P., Höst, M., Ohlsson, M.C., Regnell, B., Wesslén, A.: Experimentation in Software Engineering: An Introduction. Kluwer Academic Publishers, Boston (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2007 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Vasconcelos, A., Werner, C. (2007). Architecture Recovery and Evaluation Aiming at Program Understanding and Reuse. In: Overhage, S., Szyperski, C.A., Reussner, R., Stafford, J.A. (eds) Software Architectures, Components, and Applications. QoSA 2007. Lecture Notes in Computer Science, vol 4880. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-77619-2_5
Download citation
DOI: https://doi.org/10.1007/978-3-540-77619-2_5
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-77617-8
Online ISBN: 978-3-540-77619-2
eBook Packages: Computer ScienceComputer Science (R0)