Laws and Principles of Evolution

Dewayne E. Perry · 2002

First, we note that Evolution is one of Brooks ' [1] essential characteristics of software systems: the only systems that are not evolving are the dead ones. Evolution is a basic fact of software life. The fact that we have evolution on multiple levels is often overlooked in considering the fact of evolution: local versus global, component versus system, internally versus externally motivated, etc. Second, we note that while we have masses of data about local and component level evolution buried in our change and version management systems, we have done relatively little with that data to determine software evolution principles or theories for the underpinnings of software engineering. Principles are foundational in providing guidance in the various levels of evolution that take place – they form the bedrock of the software engineering enterprise. Third, we note that we have very little data about software systems evolution- global evolution, evolution on a large scale. For our work on FEAST [2] we have had what amounts to a wealth of data: a mere handful of systems. The utility of these few sets of data is hampered further by the fact that there are at most about 25 data points (ie, 25 systems evolution instances) for each system. Fourth, we note that we have in this small amount of data only a few of the important attributes needed to understand evolution deeply- namely, we have basic attributes such as system size, release dates (in some cases), etc. To substantiate laws of evolution we need both more systems and instances as well as more attributes for those systems and instances. Fifth, we note that we need more than just (more) product data. We need process and organizational data to determine the fate of the FEAST hypothesis [3]. We need process and organizational data [4] in order to gain a deep understanding of the organizational processes and structures within which the systems are evolved. Determining the underlying correlations and causal mechanisms that show how feedback control works

Read the paper · More papers on PaperTik