This occurs because the software maintenance team is unaware of the requirements and design documentation. Corrective maintenance is concerned with fixing errors that are observed when the software is in use. They can be adapted and extended to create more specific processes. Software maintenance the first law of software engineering no matter where you are in the system life cycle, the system will change, and the desire to change it will persist throughout the life cycle bersoff et al. Also, traditional models fail to capture the evolutionary nature of the software.
The software maintenance, which can last for 56 years or even decades after the development process, calls for an effective plan which can address the scope of software maintenance, the tailoring of the post deliverydeployment process, the designation of who will provide maintenance, and an estimate of the lifecycle costs. These models are also referred as software development process models. Preventive preventive software maintenance services help in preventing the system from any upcoming vulnerabilities. The distribution of types of maintenance by type and by. Lets take a look at two interesting models that are not widely used. A study on estimating software maintenance found that the cost of maintenance is as high as 67% of the cost of entire software process cycle. Studies suggest that the software maintenance process begins without proper knowledge of the software system. The software maintenance task is responsible to coordinate the continuous maintenance of the middleware components developed within the project and included in an emi distribution, preserving. The essential part of software maintenance requires preparation of an accurate plan during the development cycle. As with all maintenance types, there are potential drawbacks to relying solely on preventive maintenance. Explore 10 different types of software development process. Software maintenance in software engineering is the modification of a software product after. Software engineering software maintenance javatpoint. The software maintenance process model alain april1, jane huffman hayes.
Some methodologies are sometimes known as software development life cycle sdlc methodologies. It presents a description of a process from some particular perspective as. The process and lifecycle models have evolved in an environment of high awareness of software development issues as opposed to maintenance issues and, as such, are development models. If the pm schedule isnt regularly monitored, audited, and improved, pm creep can occur. Download scientific diagram software maintenance process model. This standard describes an iterative process for managing and executing software maintenance activities. Process models in software engineering walt scacchi, institute for software research, university of california, irvine. In contrast to software life cycle models, software process models often represent a networked sequence of activities, objects, transformations, and events that embody strategies for. Software maintenance overview software maintenance is widely accepted part of sdlc now a. There are very many software process and lifecycle models and. This lesson defines the software development life cycle sdlc, and explains its sixstage process.
In contrast to software life cycle models, software process. The basic premise is that when given a problem to solve, it is divided into stages. The scope of this study is user support and maintenance processes that could be described as activities, which are performed during software operation phase, but are more of service nature, i. For example, user issues that surface in the maintenance and support phase can become requirements at the beginning of the next cycle. Software engineering institute carnegie mellon university. This is when technicians get bogged down by unnecessary tasks and cost the organization time and money. In this video, we learn about maintaining software, why is it required, its tasks and the potential problems and challenges. There are a number of processes, activities and practices that are unique to maintainers, for example. The waterfall method is a project management strategy. It is the process by which we prevent our system from being obsolete. It is also known as a software development life cycle sdlc. Software development process steps can be grouped into the phases of the lifecycle, but the importance of the lifecycle is that it recycles to enable continuous improvement. Maintenance also requires several activities that are not found in software development see section 3. Machines, tools, parts, equipment, hardware, software, and so on equipment to be maintained.
Explain the weaknesses of traditional lifecycle models with respect to maintenance. Incremental process model is also know as successive version model. The quickfix model is an ad hoc approach used for maintaining the software. The objective of this paper is thus to document and analyze an existing, moderate size, software maintenance project. He also describes the key metrics used by several major software developers and discusses software metrics data collection. This standard uses a process model to discuss and depict aspects of software maintenance. This process contains search out for errors in code and correct. Exactly what are process performance models in the cmmi. Software maintenance and development plan for the emd. Software maintenance is the process of modifying a software product after it has been delivered to the customer. Perfective maintenance is concerned with the change in the software that occurs while adding new functionalities in the software. Sdlc or the software development life cycle is a process that produces software with the highest quality and lowest cost in the shortest time possible.
Preventive maintenance involves implementing changes to prevent the occurrence of errors. Identify ways of accommodating the evolutionary tendency of software within traditional software lifecycle models. User support and software maintenance process model. Software engineering software process and software. There are four types of maintenance, namely, corrective, adaptive, perfective, and preventive.
I believe it was devised by the us department of defense or at least heavily used by it. Software engineering software maintenance with software engineering. In contrast to software life cycle models, software process models often represent a networked sequence of activities, objects, transformations, and events that embody strategies for accomplishing software evolution. There are various software development life cycle models defined and designed which are followed during the software development process. Ever since mankind starting exploring the oceans, icebergs have been a problem for seamen getting closer to the poles. For example, initially unix was developed in assembly language. A task oriented software maintenance model 11 a methodology for software maintenance developed by yau 12 also explicitly deals with ripple effect as shown infigure 3. Its possible to minimize maintenance costs through intelligent planning and execution, but its also possible. This section describes the six software maintenance processes as. The main purpose of software maintenance is to modify and update software application after delivery to correct faults and to improve performance. Capability maturity model cmm, ami, spice, bootstrap, trillium, iso 90003 standards. Kan discusses several metrics in each of three groups of software quality metrics.
This document presents the fundamental principles that will guide the software maintenance and the user support tasks within the project. First, a simple working system implementing only a few basic features is built and then that is delivered to the customer. This varies and is a bit of a loaded question because every software product is different. Software process models fundamental process activities the software engineering process is the set of activities and associated results that produce a software product.
Studies suggest that the software maintenance process begins without proper. At the process level, software maintenance activities share much in common with software development for example, software configuration management is a crucial activity in both. Software maintenance maintenance models quickfix model this is basically an adhoc approach to maintaining software. It is a fire fighting approach, waiting for the problem to occur and then trying to fix it as quickly as possible. The emd sdps software maintenance and development plan smdp, cdrl item 002, did emdsmdp2, defines the steps by which the development and maintenance of emd sdps software will be accomplished and the management approach to software development and maintenance. On an average, the cost of software maintenance is more than 50% of all sdlc phases. Among the explanations of software development life cycle with examples, the most useful ones are those that explore the aforementioned models and stages in detail.
The problem with too many general methods is confirmed by 33 who argue that there is a lack of specific, adaptable process improvement models for software maintenance and try to address this. Process performance baselines vs models examples of process performance models. In this chapter from his book on software quality engineering, stephen h. Software maintenance itself as a field of study is new compared to software development. However, generic models, as they aimed at more wide applications, are not always straightforward to implement. The methodology may include the predefinition of specific deliverables and artifacts that are created and completed by a project. Then thereafter many successive iterations versions are implemented and delivered to the customer until the desired system is released.
Similar to the definition provided in chapter 2 for software development process, a. This article will explain how sdlc works, dive deeper in each of the phases, and provide you with examples to get a better understanding of each phase. Each process model follows a series of steps unique to its type to ensure success in the process of software development. In software engineering, a software development process is the process of dividing software development work into distinct phases to improve design, product management, and project management. Typically, maintenance takes up about 4080% of the project cost, usually closer to the higher pole. The criteria established apply to both the planning of maintenance for software while. An example of the object cross reference generated by edt. What is an example of a waterfall model in software. Software maintenancesoftware maintenance a very essential activity 2.
Most parts of the icebergs are under water and cannot be seen. To design, implement, and operate a successful software development process, exposure to similar existing systems is invaluable. The more complex the software, the more maintenance it will likely need to ensure continued use. The software maintenance process software engineering 3rd ed.
The software maintenance task is responsible to coordinate the continuous maintenance of the middleware components developed within the project and included in an emi distribution, preserving at the same time their stability in terms of interface and behavior, so that higherlevel frameworks and. Need for maintenance software maintenance must be performed in order to. Software engineering software maintenance geeksforgeeks. These generic models are abstractions of the process that can be used to explain different approaches to the software development. Software process models a software process model is an abstract representation of a process. Software maintenance is an important phase of software development life cycle sdlc, and it is. In maintenance management, bug fixing comes at priority to run the software seamlessly. Such models can be used to develop more precise and. Use of this standard is not restricted by size, complexity, criticality, or application of the software product. A comparison between five models of software engineering. The smdp addresses software processes, methods, organizational responsibilities. An introduction slide 10 software process improvement models objective.