Advertisement

Automated Software Engineering

, Volume 15, Issue 1, pp 75–107 | Cite as

Continuous and automated evolution of architecture-to-implementation traceability links

  • Leonardo G. P. MurtaEmail author
  • André van der Hoek
  • Cláudia M. L. Werner
Article

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%.

Keywords

Traceability Software architecture Configuration management Software evolution 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 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 Google Scholar
  2. 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 Google Scholar
  3. 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 Google Scholar
  4. 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 Google Scholar
  5. 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) CrossRefGoogle Scholar
  6. Baeza-Yates, R., Ribeiro-Neto, B.: Modern Information Retrieval. ACM, New York (1999) Google Scholar
  7. Bosch, J.: Design and Use of Software Architectures: Adopting and Evolving a Product-Line Approach. Addison-Wesley, Reading (2000) Google Scholar
  8. 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 Google Scholar
  9. 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 Google Scholar
  10. Collins-Sussman, B., Fitzpatrick, B.W., Pilato, C.M., O’Reilly, J.: Version Control with Subversion (2004) Google Scholar
  11. Conradi, R., Westfechtel, B.: Version models for software configuration management. ACM Comput. Surv. 30(2), 232–282 (1998) CrossRefGoogle Scholar
  12. 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 Google Scholar
  13. 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 Google Scholar
  14. 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 Google Scholar
  15. Eclipse Foundation: Eclipse IDE. http://www.eclipse.org (accessed 29 September 2007)
  16. 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 Google Scholar
  17. 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 Google Scholar
  18. 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 Google Scholar
  19. Kruchten, P.: The Rational Unified Process: an Introduction. Addison-Wesley, Reading (2001) Google Scholar
  20. 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 Google Scholar
  21. 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 Google Scholar
  22. 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 Google Scholar
  23. Nentwich, C., Emmerich, W., Finkelstein, A., Ellmer, E.: Flexible consistency checking. ACM Trans. Softw. Eng. Methodol. 12(1), 28–63 (2003) CrossRefGoogle Scholar
  24. 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 Google Scholar
  25. 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) Google Scholar
  26. 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 Google Scholar
  27. Reiss, S.P.: Constraining software evolution. In: International Conference on Software Maintenance (ICSM), pp. 162–171, Montreal, Canada, October 2002 Google Scholar
  28. 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 Google Scholar
  29. 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 Google Scholar
  30. 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) CrossRefGoogle Scholar
  31. 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 Google Scholar
  32. Van der Hoek, A.: Design-time product line architectures for any-time variability. Sci. Comput. Program. 53(3), 285–304 (2004) CrossRefGoogle Scholar
  33. Walls, C., Richards, N.: XDoclet in Action. Manning Publications (2003) Google Scholar
  34. 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 Google Scholar
  35. Whitehead, E.J.: An analysis of the hypertext versioning domain. Ph.D. thesis, University of California, Irvine, USA (2000) Google Scholar
  36. 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) CrossRefGoogle Scholar
  37. 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) zbMATHCrossRefGoogle Scholar
  38. 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 Google Scholar

Copyright information

© Springer Science+Business Media, LLC 2007

Authors and Affiliations

  • Leonardo G. P. Murta
    • 1
    Email author
  • André van der Hoek
    • 2
  • Cláudia M. L. Werner
    • 1
  1. 1.COPPE—System Engineering and Computer ScienceFederal University of Rio de JaneiroRio de JaneiroBrazil
  2. 2.Department of InformaticsUniversity of California at IrvineIrvineUSA

Personalised recommendations