Skip to main content

Software Evolution


Software Evolution is a process of developing software initially, then timely updating it for various reasons, i.e., to add new features or to remove obsolete functionalities etc. The evolution process includes fundamental activities of change analysis, release planning, system implementation and releasing a system to customers.
The cost an impact of these changes are accessed to see how much system is affected by the change and how much it might cost to implement the change. If the proposed changes are accepted, a new release of the software system is planned. During release planning, all the proposed changes (fault repair, adaptation, and new functionality) are considered.
A design is then made on which changes to implement in the next version of the system. The process of change implementation is an iteration of the development process where the revisions to the system are designed, implemented and tested.

Software maintenance :


• The term is mostly used for changing custom software. Generic software products are said to evolve to create new versions.
• Maintenance does not normally involve major changes to the system’s architecture. 
• Changes are implemented by modifying existing components and adding new components to the system. 

Types of Software maintenance :

E.B. Swanson initially identified the three categories of maintenance: corrective, adaptive, and perfective. Four categories of software were then catalogued by Lientz and Swanson (1980). 
  • Corrective maintenance: Reactive modification of a software product performed after delivery to correct discovered problems;
  • Adaptive maintenance: Modification of a software product performed after delivery to keep a software product usable in a changed or changing environment;
  • Perfective maintenance: Modification of a software product after delivery to improve performance or maintainability;
  • Preventive maintenance: Modification of a software product after delivery to detect and correct latent faults in the software product before they become effective faults.


Laws used for Software Evolution:


(a) Law of continuing changeThis law states that any software system that represents some real-world reality undergoes continuous change or become progressively less useful in that environment.

(b) Law of increasing complexity : As an evolving program changes, its structure becomes more complex unless effective efforts are made to avoid this phenomenon.

(c) Law of conservation of organization stabilityOver the lifetime of a program, the rate of development of that program is approximately constant and independent of the resource devoted to system development.

(d) Law of conservation of familiarity This law states that during the active lifetime of the program, changes made in the successive release are almost constant.

Importance of evolution :

• Organisations have huge investments in their software systems . 
• To maintain the value of these assets to the business, they must be changed and updated. 
• The majority of the software budget in large companies is devoted to changing and evolving existing software rather than developing new software.

The software evolution process  :



• Software evolution processes depend on :
    – The type of software being maintained;
    – The development processes used;
    – The skills and experience of the people involved.
• Proposals for change are the driver for system evolution.
    – Should be linked with components that are affected by the change, thus allowing the cost and impact of the change to be estimated.
• Change identification and evolution continues throughout the system lifetime. 

System re-engineering :


• Re-structuring or re-writing part or all of a legacy system without changing its functionality. 
• Applicable where some but not all sub-systems of a larger system require frequent maintenance. 
• Re-engineering involves adding effort to make them easier to maintain. The system may be re-structured and re documented.

Advantages of reengineering :

• Reduced risk – There is a high risk in new software development. There may be development problems, staffing problems and specification problems. 
• Reduced cost – The cost of re-engineering is often significantly less than the costs of developing new software.


Comments

Popular posts from this blog

Team Work - Meaning and Tips for better Team Work

A single brain is not always capable of making key decisions on its own. To come up with an efficient solution, an individual requires the help and advice of others. A team is established when individuals get together on a common platform with the common goal of completing a task. To guarantee optimum compatibility, team members should ideally come from similar backgrounds and have a single aim. To provide their best, the team members must complement each other and function as a single unit in tight cooperation. "There is no I in Team Work," as the saying goes, and each member must put the needs of his team first. Personal interests must take a second seat. Any team's performance is directly proportionate to the relationship between its members and their combined efforts. What is the definition of teamwork? Teamwork is defined as the sum of each team member's efforts toward the fulfilment of the team's goal. In other words, any team's backbone is its ability t

Scientists discover a new theory / The fundamental property of light – 150 years after Maxwell

Light plays a vital role in our everyday lives and technologies based on light are all around us. So we might expect that our understanding of light is pretty settled. But scientists have just uncovered a new fundamental property of light that gives new insight into the 150-year-old classical theory of electromagnetism and which could lead to applications manipulating light at the nanoscale. It is unusual for a pure-theory physics paper to make it into the journal Science. So when one does, it’s worth a closer look. In the new study, researchers bring together one of physics' most venerable set of equations – those of James Clerk’s Maxwell’s famous theory of light – with one of the hot topics in modern solid-state physics: the quantum spin Hall effect and topological insulators . To understand what the fuss is about, let’s first consider the behaviour of electrons in the quantum spin Hall effect. Electrons possess an intrinsic spin as if they were tiny spinning-tops,

19 Types Of Content Writing Services For Your Business

  It’s hard to know which type of content writing service is the best for your business.  There are so many  different types of content writing services  out there that it’s easy to get confused. You end up wondering if you’re choosing the right one for you. In this post, we’ll get rid of this confusion, once and for all. I’m going to list out the different kinds of writing services you could use.  By the end of this article, you’ll know whether you need a copywriter, a content writer, or a social media marketer and how they can help you achieve your business goals. This post is also useful for writers who want to hone their writing skills in a specific area. Let’s dive in and learn what types of content writing services exist and when you should use them. (Bonus – if you want to  hire the top 1%  of writers, go to the bottom to learn how). Types of Content Writing Services As we go through the list of content writing services, you will find that many of them overlap. That’s perfectly