by Anna Khrupa on Jul 11, 2022 Show
Software development is a continuous process throughout the lifetime of a system. It does not stop after the product is deployed and delivered to a customer. Modern software is never finished. To remain useful, it has to improve regularly to meet the expectations of a user. To maintain the value of the system and stay competitive, companies have to invest in a system change. The request for an improvement is inevitable in the software development life cycle. Changing business requirements, software defects, and modifications in different systems in the same software environment are the reasons for software evolution and maintenance. What do we mean by that? Let’s start with a brief overview of software evolution first. Evolution of Software DevelopmentSoftware evolution is the process of continually developing and updating software to meet the requirements of the market over time. The system has to undergo it for progress, advanced user requirements, and the needs of business and urgent changes without destroying the integrity of the organization of the system. The process depends on several factors, such as the type of software, development processes, and how experienced the involved people are. Though it can be costly because of complicated projects, innovations in technologies, and structure, it is still crucial. The Importance of Software Evolution ProcessThe software evolution process is critical for the entire development cycle. It helps keep the product up-to-date and monitor the performance and failure-free operations continually by suggesting improvements and fixing current issues. Upgrading the system improves usability and functionality. When the software is upgraded, it is stable enough to decrease security risks and undergo cyber attacks over time. That is why major software investments in companies are devoted to evolution specifically. It is important to keep the existing systems updated because of the investments the companies have made in those systems initially. One of the best explanations was offered by Meir Lehman. Lehman’s Law ExplainedLehman’s law is a theory of evolution offered by Lehman and Belady. It concerns a change that describes a balance between forces driving progress and forces slowing it down. The theory was propounded in the early 70s. However, it seems to be applicable for the evolution of software development nowadays as well. It claims that software has to grow exponentially, quickly, and in large amounts. Modified features that satisfy the requirements should be regularly added to the product, contributing to the frequent releases with the increased size and complexity each time. According to this law, every software product should be regularly modified and strictly maintained to be able to adjust new functional and nonfunctional requirements without decreasing quality. In fact, Lehman’s law is a set of software evolution laws, suitable for multi-level organizational systems (or E-type systems), where the requirements and the modifications depend on the growing needs of a business. They are:
The laws explain software evolutionfrom the point of view of the dependency between the system and the environment with its requirements and circumstances. Inconsistent requirements are supposed to reflect the dynamic needs of a business. The 4 Types of Software MaintenanceSoftware maintenance is a modification of a product that is required for the software to represent the latest possible technology all the time. The primary reasons are to adapt and enhance the system in a way to meet the changes (not bug-related mainly) and the needs of a customer. The life of software continues after the program has been launched. It is continuously developing. After a product has been deployed, maintenance begins. Maintenance covers any post-delivery activity or change that is a modification either to the code or requirements associated with the demand for improvement or the problem that has occurred in software, as well as the need to keep a product up to date and consistent. There are four types of software maintenance in the development life cycle:
The main distinction between software evolution definition and maintenance is how they influence the system, though there is always a need for both of them to modify and maintain the product. Evolution refers to a change from a basic to a more advanced state of the software. And maintenance refers to enhancements and modifications required to keep the software continually responsive. Which type of systems maintenance is most commonly given the highest priority by organizations?Adaptive maintenance is a significant part of an organization's maintenance effort. Both perfective and preventive maintenance typically have a much higher priority than corrective maintenance.
What are the four major activities that occur within maintenance?Four major activities occur within maintenance: obtaining maintenance requests, transforming requests into changes, designing changes, and implementing changes.
What best describes corrective maintenance in the systems development life cycle?Corrective maintenance is the category of maintenance tasks that are performed to rectify and repair faulty systems and equipment. The purpose of corrective maintenance is to restore systems that have broken down. Corrective maintenance can be synonymous with breakdown or reactive maintenance.
Which SDLC phase is analogous to the maintenance process of obtaining a maintenance request?The systems analysis SDLC phase is analogous to the maintenance process of obtaining maintenance requests.
|