ACM Home Page
Please provide us with feedback. Feedback
A framework for the simulation of structural software evolution
Full text PdfPdf (2.03 MB)
Source
ACM Transactions on Modeling and Computer Simulation (TOMACS) archive
Volume 18 ,  Issue 4  (September 2008) table of contents
Article No. 17  
Year of Publication: 2008
ISSN:1049-3301
Authors
Benjamin Stopford  Birkbeck, University of London, UK
Steve Counsell  Brunel University, Uxbridge, UK
Publisher
ACM  New York, NY, USA
Bibliometrics
Downloads (6 Weeks): 23,   Downloads (12 Months): 304,   Citation Count: 0
Additional Information:

abstract   references   index terms   collaborative colleagues  

Tools and Actions: Request Permissions Request Permissions    Review this Article  
DOI Bookmark: Use this link to bookmark this Article: http://doi.acm.org/10.1145/1391978.1391983
What is a DOI?

ABSTRACT

As functionality is added to an aging piece of software, its original design and structure will tend to erode. This can lead to high coupling, low cohesion and other undesirable effects associated with spaghetti architectures. The underlying forces that cause such degradation have been the subject of much research. However, progress in this field is slow, as its complexity makes it difficult to isolate the causal flows leading to these effects. This is further complicated by the difficulty of generating enough empirical data, in sufficient quantity, and attributing such data to specific points in the causal chain. This article describes a framework for simulating the structural evolution of software. A complete simulation model is built by incrementally adding modules to the framework, each of which contributes an individual evolutionary effect. These effects are then combined to form a multifaceted simulation that evolves a fictitious code base in a manner approximating real-world behavior. We describe the underlying principles and structures of our framework from a theoretical and user perspective; a validation of a simple set of evolutionary parameters is then provided and three empirical software studies generated from open-source software (OSS) are used to support claims and generated results. The research illustrates how simulation can be used to investigate a complex and under-researched area of the development cycle. It also shows the value of incorporating certain human traits into a simulation—factors that, in real-world system development, can significantly influence evolutionary structures.


REFERENCES

Note: OCR errors may be found in this Reference List extracted from the full text article. ACM has opted to expose the complete List rather than only correct and linked references.

 
1
 
2
3
 
4
 
5
 
6
Capiluppi, A., Morisio, M., and Ramil, J. 2004. Studying the evolution of open source systems at different levels of granularity. In Proceedings of the 12th International Workshop on Program Comprehension. Bari, Italy, 172--182.
 
7
 
8
 
9
10
 
11
 
12
 
13
 
14
FINDBUGS. 2007. http://findbugs.sourceforge.net/.
 
15
Forrester, J. 1969. Urban Dynamics. Productivity Press, Cambridge, MA.
 
16
Forrester, J. 1971. Counter-intuitive behaviour of social systems. Tech. Rev. 73(3), 52--68.
 
17
 
18
 
19
 
20
Gilbert, N. and Terna, P. 2000. How to build and use agent-based models in social science. Mind Soc. 1, 1, 57--72.
 
21
 
22
GNU. 2008. http://www.gnu.org/software/classpath/.
23
 
24
 
25
 
26
Kellner, M., Madachy, R., and Raffo, D. 1999. Software process modeling and simulation: why, what, how, J. Syst. Softw. 46, 2/3, 91--105.
 
27
 
28
Kemerer, C. F. and Slaughter, S. 1996. Need for more longitudinal studies of software maintenance. In Proceedings of the International Workshop on Empirical Studies of Software Maintenance.
 
29
 
30
Kiczales, G., Lamping, J., Mendhekar, A., Maeda, C., Lopes, C., Loingtier, J-M., and Irwin, J. 1997. Aspect-oriented programming. In Proceedings of the 11th European Conference on Object-Oriented Programming (ECOOP'97). Jyvaskyla, Finland, 220--242.
 
31
Lehman, M. 1980. On understanding laws, evolution, and conservation in the large-program life cycle, J. Syst. Softw. 1, 213--221.
 
32
 
33
 
34
Miiller, G. A. 1956. The magical number seven, plus or minus two: some limits on our capacity for processing information. Psych. Rev. 63, 81--97.
 
35
Mubarak, A., Counsell, S., Hierons, R., and Hassoun, Y. 2007. Package evolvability and its relationship with refactoring. In Proceedings of 3rd International ERCIM Symposium on Software Evolution. Paris, France.
 
36
 
37
 
38
 
39
Parnas, D. 1971. Information distribution aspects of design methodology, In Proceedings of the IFIP Congress (1). Ljubljana, Yugoslavia, 339--344.
 
40
 
41
 
42
43
 
44
Smith, N., Capiluppi, A., and Fernandez-Ramil, J. 2006. Agent-based simulation of open source evolution. J. Softw. Proc.-Improv. Pract. 11, 4, 423--434.
 
45
Smith, N., Capiuppi, A., and Fernadez-Ramil, J. 2005. A study of open source evolution data using qualitative simulation. J. Softw. Proc.-Improv. Pract. 10, 3, 287--300.
 
46
 
47
SOURCEFORGE. net. 2007. www.sourceforge.net.
 
48
Stopford, B. and Counsell, S. 2006. Simulating the structural evolution of software. In Proceedings of the International Software Process Workshop (PROSIM'06). Shanghai, China. Lecture Notes in Computer Science, vol. 3966, 294--301.
 
49
Wernick, P., and Lehman, M. 1999. Software process white box modeling for FEAST/1. J. Syst. Softw. 46, 2/3, 193--201.

Collaborative Colleagues:
Benjamin Stopford: colleagues
Steve Counsell: colleagues