Skip to main content

Part of the book series: Lecture Notes in Computer Science ((LNPSE,volume 6491))

Abstract

During a software project’s lifetime, the software goes through many changes, as components are added, removed and modified to fix bugs and add new features. This paper is intended as a lightweight introduction to some of the issues arising from an ‘archaeological’ investigation of software evolution. We use our own work to look at some of the challenges faced, techniques used, findings obtained, and lessons learnt when measuring and visualising the historical changes that happen during the evolution of software.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 39.99
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 54.99
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. Adar, E.: GUESS: a language and interface for graph exploration. In: Proc. SIGCHI Conf. on Human Factors in Computing Systems, pp. 791–800. ACM, New York (2006)

    Chapter  Google Scholar 

  2. Beyer, D.: CCVisu: automatic visual software decomposition. In: Proc. of Int’l Conf. on Software Engineering, companion volume, pp. 967–968. ACM, New York (2008)

    Google Scholar 

  3. Beyer, D., Noack, A., Lewerentz, C.: Efficient relational calculation for software analysis. IEEE Trans. Software Eng. 31(2), 137–149 (2005)

    Article  Google Scholar 

  4. Bois, B.D., Rompaey, B.V., Meijfroidt, K., Suijs, E.: Supporting reengineering scenarios with FETCH: an experience report. Electronic Communications of the EASST 8 (2008)

    Google Scholar 

  5. Briand, L.C., Morasca, S., Basili, V.R.: Property-based software engineering measurement. IEEE Trans. Software Eng. 22(1), 68–86 (1996)

    Article  Google Scholar 

  6. Canfora, G., Cerulo, L., Di Penta, M.: Tracking your changes: A language-independent approach. IEEE Softw. 26(1), 50–57 (2009)

    Article  Google Scholar 

  7. Canfora, G., Penta, M.D.: New frontiers of reverse engineering. In: Future of Software Engineering, pp. 326–341. IEEE, Los Alamitos (2007)

    Google Scholar 

  8. Cordy, J.R.: The TXL source transformation language. Sci. Comput. Program. 61(3), 190–210 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  9. Cordy, J.R.: The txl source transformation language. Sci. Comput. Program. 61(3), 190–210 (2006)

    Article  MathSciNet  MATH  Google Scholar 

  10. Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley Professional, Reading (June 2000)

    Google Scholar 

  11. Dagenais, B., Robillard, M.P.: Recommending adaptive changes for framework evolution. In: Proc. 30th Int’l Conf. on Software Engineering, pp. 481–490. ACM, New York (2008)

    Google Scholar 

  12. Fernández-Ramil, J., Lozano, A., Wermelinger, M., Capiluppi, A.: Empirical studies of open source evolution. In: Software Evolution, ch. 11, pp. 263–288. Springer, Heidelberg (2008)

    Chapter  Google Scholar 

  13. Fluri, B., Wuersch, M., Pinzger, M., Gall, H.: Change distilling:tree differencing for fine-grained source code change extraction. IEEE Transactions on Software Engineering 33, 725–743 (2007)

    Article  Google Scholar 

  14. Jackson, M.: Automated software engineering: supporting understanding. Autom. Softw. Eng. 15(3-4), 275–281 (2008)

    Article  Google Scholar 

  15. Kagdi, H.H., Collard, M.L., Maletic, J.I.: A survey and taxonomy of approaches for mining software repositories in the context of software evolution. Journal of Software Maintenance 19(2), 77–131 (2007)

    Article  Google Scholar 

  16. Klint, P., Lämmel, R., Verhoef, C.: Toward an engineering discipline for grammarware. ACM Trans. Softw. Eng. Methodol. 14(3), 331–380 (2005)

    Article  Google Scholar 

  17. Madhavji, N.H., Fernandez-Ramil, J., Perry, D.E.: Software Evolution and Feedback: Theory and Practice. Wiley, Chichester (2006)

    Book  Google Scholar 

  18. Martin, R.C.: Large-scale stability. C++ Report 9(2), 54–60 (1997)

    Google Scholar 

  19. Mens, T., Demeyer, S. (eds.): Software Evolution. Springer, Heidelberg (2008)

    MATH  Google Scholar 

  20. Osterweil, L.: Software processes are software too. In: Proc. 9th Int’l Conf. on Software Engineering, pp. 2–13. IEEE, Los Alamitos (1987)

    Google Scholar 

  21. Popper, K.R.: The Logic of Scientific Discovery. Hutchinson (1959)

    Google Scholar 

  22. Schmidt, M., Gloetzner, T.: Constructing difference tools for models using the sidiff framework. In: Proc. 30th Int’l Conf. on Software Engineering, companion volume, pp. 947–948. ACM, New York (2008)

    Google Scholar 

  23. Selic, B.: The pragmatics of model-driven development. IEEE Software 20(5), 19–25 (2003)

    Article  Google Scholar 

  24. Shull, F., Singer, J., Sjoberg, D.I. (eds.): Guide to Advanced Empirical Software Engineering. Springer, Heidelberg (2008)

    Google Scholar 

  25. Stringfellow, C., Amory, C., Potnuri, D., Andrews, A., Georg, M.: Comparison of software architecture reverse engineering methods. Information and Software Technology 48(7), 484–497 (2006)

    Article  Google Scholar 

  26. Wermelinger, M., Yu, Y.: Analyzing the evolution of Eclipse plugins. In: Proc. 5th Working Conf. on Mining Software Repositories, pp. 133–136. ACM, New York (May 2008)

    Google Scholar 

  27. Wermelinger, M., Yu, Y., Lozano, A.: Design principles in architectural evolution: a case study. In: Proc. 24th Int’l Conf. on Software Maintenance, pp. 396–405. IEEE, Los Alamitos (October 2008)

    Google Scholar 

  28. Wermelinger, M., Yu, Y., Strohmaier, M.: Using formal concept analysis to construct and visualise hierarchies of socio-technical relations. In: Proc. 31st Int’l Conf. on Software Eng., companion volume, pp. 327–330. IEEE, Los Alamitos (May 2009)

    Google Scholar 

  29. Wong, K.: The Rigi User’s Manual, Version 5.4.4 (June 1998)

    Google Scholar 

  30. Wu, J., Spitzer, C., Hassan, A., Holt, R.: Evolution spectrographs: visualizing punctuated change in software evolution. In: Proc. 7th Intl Workshop on Principles of Software Evolution, pp. 57–66 (2004)

    Google Scholar 

  31. Xing, Z., Stroulia, E.: Umldiff: an algorithm for object-oriented design differencing. In: Proc. 20th Int’l Conf. on Automated Software Engineering, pp. 54–65. ACM, New York (2005)

    Google Scholar 

  32. Yu, Y., Wang, Y., Mylopoulos, J., Liaskos, S., Lapouchnian, A., do Prado Leite, J.C.S.: Reverse engineering goal models from legacy code. In: Int’l Conf. on Requirements Engineering, pp. 363–372. IEEE, Los Alamitos (2005)

    Google Scholar 

  33. Yu, Y., Wermelinger, M.: Graph-centric tools for understanding the evolution and relationships of software structures. In: Proc. 15th Working Conf. on Reverse Engineering, pp. 329–330. IEEE, Los Alamitos (October 2008)

    Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2011 Springer-Verlag Berlin Heidelberg

About this chapter

Cite this chapter

Wermelinger, M., Yu, Y. (2011). Some Issues in the ‘Archaeology’ of Software Evolution. In: Fernandes, J.M., Lämmel, R., Visser, J., Saraiva, J. (eds) Generative and Transformational Techniques in Software Engineering III. GTTSE 2009. Lecture Notes in Computer Science, vol 6491. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-18023-1_13

Download citation

  • DOI: https://doi.org/10.1007/978-3-642-18023-1_13

  • Publisher Name: Springer, Berlin, Heidelberg

  • Print ISBN: 978-3-642-18022-4

  • Online ISBN: 978-3-642-18023-1

  • eBook Packages: Computer ScienceComputer Science (R0)

Publish with us

Policies and ethics