Abstract
As functionality is added to an ageing piece of software, its original design and structure tends to erode. The underlying forces which cause such degradation have been the subject of much research. However, progress in this field is slow due to the difficultly faced in generating empirical data [6] as well as attributing observed effects to the various points in the causal chain [7]. This paper tackles these problems by providing a framework for simulating the structural evolution of software. A complete model is built by incrementally adding modules to the framework, each of which contribute an individual evolutionary effect. These effects are then combined to form a multi-faceted simulation that evolves a fictitious code base approximating real world behavior. Validation of a simple set of evolutionary parameters is provided, demonstrating agreement with current empirical observations.
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
Briand, L.C., Daly, J.W., Wust, J.K.: A Unified Framework for Coupling Measurement in Object-Oriented Systems. IEEE Transactions on Software Engineering 25(1) (January/February 1999)
Capiluppi, M., Ramil: Studying the Evolution of Open Source Systems at Different Levels of Granularity. In: Proceedings of the 12th International Workshop on Program Comprehension.
Forrester, J.W.: “Urban Dynamics”. Productivity Press, Cambridge (1969)
Kellner, M.: Software Process Modeling Support for Management Planning and Control. In: Proceedings of the first international conference on the software process (1991)
Kelsen: A Simple Static Model for Understanding the Dynamic Behavior of Programs. In: International Workshop on Program Comprehension (2004)
Kemerer, C.F., Slaughter, S.: Need for more Longitudinal Studies of Software Maintenance. In: Proc. Int’l Workshop Empirical Studies Software Maintenance, Monterey Calif. (1996)
Kemerer, C.F., Slaughter, S.: An Empirical Approach to Studying Software Evolution. IEEE Transactions on Software Engineering 25(4) (July/August 1999)
Lehman, M.: Program, Life Cycle and the Law of Program Evolution. Proceedings of the IEEE 68, 1060–1078 (1980)
Raffo, D.: Modeling Software Processes Quantitatively and Assessing the Impact of Potential Process Changes on Process Performance – PhD Dissertation. Carnegie Mellon University (1996)
Wernick, Lehman: Software Process White Box Modeling for FEAST/1. Journal of Software Systems (1999)
Lehman, P., Ramil: Implications of Evolution Metrics on Software Maintenance. In: Proc of the 1998 Intl. Conf. of Software Maintenance (ICSM 1998) (1998)
Godfrey, Tu: Evolution in Open Source Software: A Case Study. In: Proceedings of the International Conference on Software Maintenance (ICSM 2000) (2000)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Stopford, B., Counsell, S. (2006). Simulating the Structural Evolution of Software. In: Wang, Q., Pfahl, D., Raffo, D.M., Wernick, P. (eds) Software Process Change. SPW 2006. Lecture Notes in Computer Science, vol 3966. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11754305_32
Download citation
DOI: https://doi.org/10.1007/11754305_32
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34199-4
Online ISBN: 978-3-540-34201-4
eBook Packages: Computer ScienceComputer Science (R0)