Software evolution is the continuous updating, maintenance, and improvement of a program driven by external business and consumer needs. Imperial College London created the three fundamental laws of software evolution, which have expanded to eight. The evolution of software is similar to natural changes, and the program must adapt to meet current real-world business conditions. Lehman’s laws are based on the premise that software evolves as feedback about its performance increases, and its inevitable tendency is to become increasingly complex.
Software evolution is a process whereby a commercial computer program requires continuous updating, maintenance, and improvement over time to remain a viable product. In this regard, the evolution of software is driven by external business and consumer needs that change as other software and technologies advance around it. The driving factor behind software evolution, however, is often internal focused on the engineering team that produced the product and the company that depends on its success for profitability. Imperial College London, England first promulgated three fundamental laws of software evolution in the early 1970s, which have since been expanded to a total of eight laws as of 2011. They have been made other attempts to quantify the process using models such as the Linear Sequential Model and the Prototype Model as well, but the paradigm that seems to fit best with software entropy life cycles is that of a Darwin-like evolution of living things.
The drivers behind changes in software architecture resemble the same forces that motivate companies to update industrial machinery or standard operating procedures as societal needs change. As the software is used more and more, new needs or functions become apparent that need to be addressed in subsequent product versions. All software is also released with previously unknown bugs, so periodic patching and maintenance procedures need to be performed to fix situations such as security holes that could make a business vulnerable to attacks through the software itself. A key to the evolution of software is also the fact that such programs must increasingly be adapted to run on different types of emerging computing equipment and within various operating system architectures so that the program has more appeal. ample.
Meeting all of these needs is critical to determining whether a software program remains viable, and because software assets are such a crucial aspect of the information economy as of 2011, software evolution has become a critical aspect of adapting and of company growth. Meir Lehman, a computer scientist at Imperial College London, is credited with creating Lehman’s Laws, which succinctly defined the process of software evolution and guided developers in thinking about the future of software visualization. Lehman’s laws are based on the premise that software evolves as feedback about its performance increases, and that its inevitable tendency is to become increasingly complex.
Lehman said the nature of software evolution mirrors natural changes such as mutation in fruit flies, how cities expand over time, and how military facilities incrementally improve weapons systems. The first three laws of process emulate these trends in detailing continual change, increasing complexity, and what is known as the evolution of large programs. Continuing Change refers to the fact that the program must be adapted to meet current real-world business conditions, and this reflects the increasing complexity as the program must meet an ever-increasing diversity of unforeseen needs. Large Program Evolution refers to the need for bug fixes and new program versions that are inexorably linked to market demands.
Of the five remaining laws of software evolution, number four is organizational stability and refers to the fact that the growth of a program takes on a life of its own regardless of the level of resources intentionally devoted to it, and number five is Preservation of Familiarity which states that incremental growth of the program is inevitable. Number six of Lehman’s eight laws is continued growth, necessary to meet consumer demand, and number seven is declining quality, which underscores the fact that all software eventually faces functionality limitations that it cannot meet . Lehman’s latest law of software evolution is the feedback system itself, which combines all the forces affecting the viability of a software program to rapidly drive it to greater success or to inevitable obsolescence and death.
Protect your devices with Threat Protection by NordVPN