Software evolution

laptop

The process of developing a software product using software development principles and methods is called software evolution. This involves initial software development, maintenance, and upgrades until the desired software product is developed that meets the expected requirements.

Software Evolution
Evolution begins with the requirements gathering process. Developers then create a prototype of the intended software and show it to users to get their feedback early in the software product development process. Users suggest changes, on which several successive updates and maintenance also continue to change. This process changes to the original software until the desired software is done.

Even after the user has received the desired software, advanced technology and changing requirements force the software product to change accordingly. It is not possible to rebuild the software from scratch and go head-to-head with the requirement. The only possible and cost-effective solution is to upgrade existing software to meet the latest requirements.

Software Evolution Laws
Lehman gave laws for software evolution. He divided software into three categories:

S-type (static type), which is software that works strictly according to certain specifications and solutions. The solution and how to achieve it is immediately understood before coding. S-type software is least susceptible to change, so it is the easiest of all. For example, a calculator program for mathematical calculations.
P-type (practical type) is software with a set of procedures. This is defined by exactly what the procedures can do. In this software, the specifications may be described, but the solution is not immediately obvious. For example, game software.
Electronic type (embedded) – this software is closely related to the requirements of the real environment. This software has a high degree of evolution, as various changes in laws, taxes, etc. occur in real-world situations. D. For example, online trading software.
Evolution of E-Type software.
Lehman gave eight laws for the evolution of E-Type software –

  • Continued change. An electronic-type software system must continue to adapt to changes in the real world, or it becomes less and less useful.
  • Increasing complexity. As an E-Type software system evolves, its complexity increases unless work is done to maintain or reduce it.
  • Retention of familiarity – familiarity with the software or knowledge of how it was developed, why it was developed that way, etc. etc., Must be retained at all costs to implement changes in the system.
  • Continued growth. For an E-type system to be designed to solve a business problem, its size to implement changes increases in line with changes in the way the business lives.
  • Decreasing quality. An E-type software system degrades in quality if it is not carefully maintained and adapted to the changing operating environment.
  • Feedback systems. E-type software systems are multi-loop, multi-level feedback systems and must be treated as such in order to be successfully modified or improved.
  • Self-regulation – E-type system evolutionary processes are self-regulating with product and measure distributions that are close to normal.
  • Organizational Stability . The average effective global level of activity in an evolving E-type system does not change over the life of the product.