Simulating the Structural Evolution of Software
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  as well as attributing observed effects to the various points in the causal chain . 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.
Unable to display preview. Download preview PDF.
- 1.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)Google Scholar
- 2.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.Google Scholar
- 3.Forrester, J.W.: “Urban Dynamics”. Productivity Press, Cambridge (1969)Google Scholar
- 4.Kellner, M.: Software Process Modeling Support for Management Planning and Control. In: Proceedings of the first international conference on the software process (1991)Google Scholar
- 5.Kelsen: A Simple Static Model for Understanding the Dynamic Behavior of Programs. In: International Workshop on Program Comprehension (2004)Google Scholar
- 6.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)Google Scholar
- 7.Kemerer, C.F., Slaughter, S.: An Empirical Approach to Studying Software Evolution. IEEE Transactions on Software Engineering 25(4) (July/August 1999)Google Scholar
- 9.Raffo, D.: Modeling Software Processes Quantitatively and Assessing the Impact of Potential Process Changes on Process Performance – PhD Dissertation. Carnegie Mellon University (1996)Google Scholar
- 10.Wernick, Lehman: Software Process White Box Modeling for FEAST/1. Journal of Software Systems (1999)Google Scholar
- 11.Lehman, P., Ramil: Implications of Evolution Metrics on Software Maintenance. In: Proc of the 1998 Intl. Conf. of Software Maintenance (ICSM 1998) (1998)Google Scholar
- 12.Godfrey, Tu: Evolution in Open Source Software: A Case Study. In: Proceedings of the International Conference on Software Maintenance (ICSM 2000) (2000)Google Scholar