Abstract

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 within these social systems to effect the evolution within the software systems requires broader data that we currently have or currently are considering. The understanding of system evolution is of fundamental importance to the software engineering enterprise. Lehman's Laws have been a fundamental and seminal start on the road to that understanding. However, we have a long way to go. We need more instances of systems and their evolution. We need more attributes of those evolutions. We need related process and organizational data. It is a research area that is a rich field that will yield a deep understanding of the phenomena of system evolution. But, we have a long way to go and a lot of work to do.

Full Text
Paper version not known

Talk to us

Join us for a 30 min session where you can share your feedback and ask us any queries you have

Schedule a call

Disclaimer: All third-party content on this website/platform is and will remain the property of their respective owners and is provided on "as is" basis without any warranties, express or implied. Use of third-party content does not indicate any affiliation, sponsorship with or endorsement by them. Any references to third-party content is to identify the corresponding services and shall be considered fair use under The CopyrightLaw.