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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
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)
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)
Beyer, D., Noack, A., Lewerentz, C.: Efficient relational calculation for software analysis. IEEE Trans. Software Eng. 31(2), 137–149 (2005)
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)
Briand, L.C., Morasca, S., Basili, V.R.: Property-based software engineering measurement. IEEE Trans. Software Eng. 22(1), 68–86 (1996)
Canfora, G., Cerulo, L., Di Penta, M.: Tracking your changes: A language-independent approach. IEEE Softw. 26(1), 50–57 (2009)
Canfora, G., Penta, M.D.: New frontiers of reverse engineering. In: Future of Software Engineering, pp. 326–341. IEEE, Los Alamitos (2007)
Cordy, J.R.: The TXL source transformation language. Sci. Comput. Program. 61(3), 190–210 (2006)
Cordy, J.R.: The txl source transformation language. Sci. Comput. Program. 61(3), 190–210 (2006)
Czarnecki, K., Eisenecker, U.: Generative Programming: Methods, Tools, and Applications. Addison-Wesley Professional, Reading (June 2000)
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)
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)
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)
Jackson, M.: Automated software engineering: supporting understanding. Autom. Softw. Eng. 15(3-4), 275–281 (2008)
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)
Klint, P., Lämmel, R., Verhoef, C.: Toward an engineering discipline for grammarware. ACM Trans. Softw. Eng. Methodol. 14(3), 331–380 (2005)
Madhavji, N.H., Fernandez-Ramil, J., Perry, D.E.: Software Evolution and Feedback: Theory and Practice. Wiley, Chichester (2006)
Martin, R.C.: Large-scale stability. C++ Report 9(2), 54–60 (1997)
Mens, T., Demeyer, S. (eds.): Software Evolution. Springer, Heidelberg (2008)
Osterweil, L.: Software processes are software too. In: Proc. 9th Int’l Conf. on Software Engineering, pp. 2–13. IEEE, Los Alamitos (1987)
Popper, K.R.: The Logic of Scientific Discovery. Hutchinson (1959)
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)
Selic, B.: The pragmatics of model-driven development. IEEE Software 20(5), 19–25 (2003)
Shull, F., Singer, J., Sjoberg, D.I. (eds.): Guide to Advanced Empirical Software Engineering. Springer, Heidelberg (2008)
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)
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)
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)
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)
Wong, K.: The Rigi User’s Manual, Version 5.4.4 (June 1998)
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)
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)
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)
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)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights 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)