Abstract
A traditional obstacle in the use of multiple representations is the need to maintain traceability among the representations in the face of evolution. The introduction of software architecture, and architecture-based development, has brought this need to architectural descriptions and corresponding source code. Specifically, the task is to relate versions of architectural elements to versions of source code configuration items, and to update those relations as new versions of the architecture and source code are produced. We present ArchTrace, a new approach that we developed to address this problem. ArchTrace distinguishes itself by continuously updating traceability relations from architectural elements to code elements through a policy-based extensible infrastructure that allows a group of developers to choose a set of traceability management policies that best match their situational needs and/or working styles. We introduce the high-level approach of ArchTrace, discuss its extensible infrastructure, and present our current set of ten pluggable traceability management policies. We conclude with a retrospective analysis of data collected from a twenty month period of development and maintenance of Odyssey, a component-based software development environment comprised of over 50,000 lines of code. This analysis shows that our approach is promising: with respect to the ideal set of traceability links, the policies applied resulted in a precision of 95% and recall of 89%.
Article PDF
Similar content being viewed by others
Explore related subjects
Discover the latest articles, news and stories from top researchers in related subjects.Avoid common mistakes on your manuscript.
References
Abi-Antoun, M., Aldrich, J., Garlan, D., Schmerl, B., Nahas, N.: Semi-automated incremental synchronization between conceptual and implementation level architectures. In: Working IEEE/IFIP Conference on Software Architecture (WICSA), pp. 265–268, Pittsburgh, PA, USA, November 2005
Agrawal, R., Srikant, R.: Fast algorithms for mining association rules in large databases. In: International Conference on Very Large Data Bases (VLDB), pp. 487–499, Santiago de Chile, Chile, September 1994
Aldrich, J., Chambers, C., Notkin, D.: ArchJava: connecting software architecture to implementation. In: International Conference on Software Engineering (ICSE), pp. 187–197, Orlando, USA, May 2002
Anderson, K.M., Taylor, R.N., Whitehead, E.J.: Chimera: hypertext for heterogeneous software environments. In: Conference on Hypertext and Hypermedia, pp. 94–107, Edinburgh, Scotland, September 1994
Antoniol, G., Canfora, G., Casazza, G., De Lucia, A., Merlo, E.: Recovering traceability links between code and documentation. IEEE Trans. Softw. Eng. 28(10), 970–983 (2002)
Baeza-Yates, R., Ribeiro-Neto, B.: Modern Information Retrieval. ACM, New York (1999)
Bosch, J.: Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach. Addison-Wesley, Reading (2000)
Briand, L.C., Labiche, Y., O’Sullivan, L.: Impact analysis and change management of UML models. In: International Conference on Software Maintenance (ICSM), pp. 256–265, Amsterdam, Netherlands, September 2003
Chen, P., Critchlow, M., Garg, A., Westhuizen, C., Van der Hoek, A.: Differencing and merging within an evolving product line architecture. In: International Workshop on Product Family Engineering, pp. 269–281, Siena, Italy, November 2003
Collins-Sussman, B., Fitzpatrick, B.W., Pilato, C.M., O’Reilly, J.: Version Control with Subversion (2004)
Conradi, R., Westfechtel, B.: Version models for software configuration management. ACM Comput. Surv. 30(2), 232–282 (1998)
Dashofy, E., Van der Hoek, A., Taylor, R.N.: A highly-extensible, XML-based architecture description language. In: Working IEEE/IFIP Conference on Software Architectures (WICSA), pp. 103–112, Amsterdam, Netherlands, August 2001
Dashofy, E., Van der Hoek, A., Taylor, R.N.: An infrastructure for the rapid development of XML-based architecture description languages. In: International Conference on Software Engineering (ICSE), pp. 266–276, Orlando, FL, USA, May 2002
De Lucia, A., Fasano, F., Oliveto, R., Tortora, G.: Enhancing an artefact management system with traceability recovery features. In: International Conference on Software Maintenance (ICSM), pp. 306–315, Chicago, IL, USA, September 2004
Eclipse Foundation: Eclipse IDE. http://www.eclipse.org (accessed 29 September 2007)
Garg, A., Critchlow, M., Chen, P., Van der Westhuizen, C., Van der Hoek, A.: An environment for managing evolving product line architectures. In: International Conference on Software Maintenance (ICSM), pp. 358–367, Amsterdam, Netherlands, September 2003
Huffman Hayes, J., Dekhtyar, A., Osborne, J.: Improving requirements tracing via information retrieval. In: International Conference on Requirements Engineering (RE), pp. 138–147, Monterey, USA, September 2003
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J.-M., Irwin, J.: Aspect-oriented programming. In: European Conference on Object-Oriented Programming (ECOOP), pp. 220–242, Jyväskylä, Finland, June 1997
Kruchten, P.: The Rational Unified Process: an Introduction. Addison-Wesley, Reading (2001)
Marcus, A., Maletic, J.I.: Recovering documentation-to-source-code traceability links using latent semantic indexing. In: International Conference on Software Engineering (ICSE), pp. 125–135, Portland, OR, USA, May 2003
Medvidovic, N., Rosenblum, D.S.: Domains of concern in software architectures and architecture description languages. In: Conference on Domain-Specific Languages, pp. 199–212, Santa Barbara, USA, October 1997
Muccini, H., Van der Hoek, A.: Towards testing product line architectures. In: International Workshop on Testing and Analysis of Component Based Systems, pp. 111–121, Warsaw, Poland, April 2003
Nentwich, C., Emmerich, W., Finkelstein, A., Ellmer, E.: Flexible consistency checking. ACM Trans. Softw. Eng. Methodol. 12(1), 28–63 (2003)
Nguyen, T.N., Munson, E.V., Boyland, J.T.: The molhado hypertext versioning system. In: Conference on Hypertext and Hypermedia, pp. 185–194, Santa Cruz, USA, August 2004
Ommering, R.V., Linden, F.V.D., Kramer, J., Magee, J.: The Koala component model for consumer electronics software. IEEE Comput. 33(6), 78–85 (2000)
Oreizy, P., Medvidovic, N., Taylor, R.N.: Architecture-based runtime software evolution. In: International Conference on Software Engineering (ICSE), pp. 177–186, Kyoto, Japan, April 1998
Reiss, S.P.: Constraining software evolution. In: International Conference on Software Maintenance (ICSM), pp. 162–171, Montreal, Canada, October 2002
Richardson, D.J., Wolf, A.L.: Software testing at the architectural level. In: International Software Architecture Workshop (ISAW), pp. 68–71, San Francisco, USA, October 1996
Settimi, R., Cleland-Huang, J., Khadra, O.B., Mody, J., Lukasik, W., Depalma, C.: Supporting software evolution through dynamically retrieving traces to UML artifacts. In: International Workshop on Principles of Software Evolution (IWPSE), pp. 49–54, Kyoto, Japan, September 2004
Shaw, M., Deline, R., Klein, D.V., Ross, T.L., Young, D.M., Zelesnik, G.: Abstractions for software architecture and tools to support them. IEEE Trans. Softw. Eng. 21(4), 314–335 (1995)
Shirabad, J.S., Lethbridge, T., Matwin, S.: Supporting software maintenance by mining software update records. In: International Conference on Software Maintenance (ICSM), pp. 22–31, Florence, Italy, November 2001
Van der Hoek, A.: Design-time product line architectures for any-time variability. Sci. Comput. Program. 53(3), 285–304 (2004)
Walls, C., Richards, N.: XDoclet in Action. Manning Publications (2003)
Werner, C.M.L., Mangan, M.A.S., Murta, L.G.P., Souza, R.P., Mattoso, M., Braga, R.M.M., Borges, M.R.S.: OdysseyShare: an environment for collaborative component-based development. In: IEEE Conference on Information Reuse and Integration (IRI), pp. 61–68, Las Vegas, USA, October 2003
Whitehead, E.J.: An analysis of the hypertext versioning domain. Ph.D. thesis, University of California, Irvine, USA (2000)
Ying, A.T.T., Murphy, G.C., Ng, R., Chu-Carroll, M.C.: Predicting source code changes by mining change history. IEEE Trans. Softw. Eng. 30(9), 574–586 (2004)
Zhao, J., Yang, H., Xiang, L., Xu, B.: Change impact analysis to support architectural evolution. J. Softw. Maintenance: Res. Pract. 14(5), 317–333 (2002)
Zimmermann, T., Weisgerber, P., Diehl, S., Zeller, A.: Mining version histories to guide software changes. In: International Conference on Software Engineering (ICSE), pp. 563–572, Edinburgh, Scotland, May 2004
Author information
Authors and Affiliations
Corresponding author
Additional information
This paper is an extended version of the paper “ArchTrace: Policy-Based Support for Managing Evolving Architecture-to-Implementation Traceability Links”, which was published in the proceedings of the Twenty-first ACM/IEEE International Conference on Automated Software Engineering, 2006.
Rights and permissions
About this article
Cite this article
Murta, L.G.P., van der Hoek, A. & Werner, C.M.L. Continuous and automated evolution of architecture-to-implementation traceability links. Autom Softw Eng 15, 75–107 (2008). https://doi.org/10.1007/s10515-007-0020-6
Received:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s10515-007-0020-6