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. This standard uses a process model to discuss and depict aspects of software maintenance. An example of the object cross reference generated by edt. Software maintenance maintenance models quickfix model this is basically an adhoc approach to maintaining software. Some methodologies are sometimes known as software development life cycle sdlc methodologies. Software maintenance itself as a field of study is new compared to software development. Corrective maintenance is concerned with fixing errors that are observed when the software is in use.
The distribution of types of maintenance by type and by. This standard describes an iterative process for managing and executing software maintenance activities. Then thereafter many successive iterations versions are implemented and delivered to the customer until the desired system is released. Software process models fundamental process activities the software engineering process is the set of activities and associated results that produce a software product. In contrast to software life cycle models, software process. 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. It presents a description of a process from some particular perspective as. Capability maturity model cmm, ami, spice, bootstrap, trillium, iso 90003 standards. Studies suggest that the software maintenance process begins without proper. Also, traditional models fail to capture the evolutionary nature of the software. Software maintenancesoftware maintenance a very essential activity 2. I believe it was devised by the us department of defense or at least heavily used by it. 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. 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. This is when technicians get bogged down by unnecessary tasks and cost the organization time and money. 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. This section describes the six software maintenance processes as. 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. The more complex the software, the more maintenance it will likely need to ensure continued use. The basic premise is that when given a problem to solve, it is divided into stages. Perfective maintenance is concerned with the change in the software that occurs while adding new functionalities in the software. Similar to the definition provided in chapter 2 for software development process, a. There are four types of maintenance, namely, corrective, adaptive, perfective, and preventive. Software maintenance is the process of modifying a software product after it has been delivered to the customer. 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.
The quickfix model is an ad hoc approach used for maintaining the software. The methodology may include the predefinition of specific deliverables and artifacts that are created and completed by a project. The smdp addresses software processes, methods, organizational responsibilities. On an average, the cost of software maintenance is more than 50% of all sdlc phases. Explain the weaknesses of traditional lifecycle models with respect to maintenance. There are very many software process and lifecycle models and. Incremental process model is also know as successive version model. Process performance baselines vs models examples of process performance models. Process models in software engineering walt scacchi, institute for software research, university of california, irvine. However, generic models, as they aimed at more wide applications, are not always straightforward to implement. There are a number of processes, activities and practices that are unique to maintainers, for example. Studies suggest that the software maintenance process begins without proper knowledge of the software system. Preventive preventive software maintenance services help in preventing the system from any upcoming vulnerabilities.
User support and software maintenance process model. They can be adapted and extended to create more specific processes. 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. It is a fire fighting approach, waiting for the problem to occur and then trying to fix it as quickly as possible. This document presents the fundamental principles that will guide the software maintenance and the user support tasks within the project. It is the process by which we prevent our system from being obsolete. It is also known as a software development life cycle sdlc. To design, implement, and operate a successful software development process, exposure to similar existing systems is invaluable. This process contains search out for errors in code and correct.
The essential part of software maintenance requires preparation of an accurate plan during the development cycle. 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. He also describes the key metrics used by several major software developers and discusses software metrics data collection. In this chapter from his book on software quality engineering, stephen h. This occurs because the software maintenance team is unaware of the requirements and design documentation. 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 objective of this paper is thus to document and analyze an existing, moderate size, software maintenance project. For example, initially unix was developed in assembly language. Software engineering institute carnegie mellon university. Each process model follows a series of steps unique to its type to ensure success in the process of software development. In this video, we learn about maintaining software, why is it required, its tasks and the potential problems and challenges. Exactly what are process performance models in the cmmi. These models are also referred as software development process models. First, a simple working system implementing only a few basic features is built and then that is delivered to the customer. Most parts of the icebergs are under water and cannot be seen.
Software process models a software process model is an abstract representation of a process. The main purpose of software maintenance is to modify and update software application after delivery to correct faults and to improve performance. Identify ways of accommodating the evolutionary tendency of software within traditional software lifecycle models. Download scientific diagram software maintenance process model. Typically, maintenance takes up about 4080% of the project cost, usually closer to the higher pole. 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. What is an example of a waterfall model in software. A comparison between five models of software engineering. 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. In maintenance management, bug fixing comes at priority to run the software seamlessly. 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. Software maintenance is an important phase of software development life cycle sdlc, and it is. The software maintenance process model alain april1, jane huffman hayes.
Maintenance also requires several activities that are not found in software development see section 3. As with all maintenance types, there are potential drawbacks to relying solely on preventive maintenance. Explore 10 different types of software development process. Kan discusses several metrics in each of three groups of software quality metrics. An introduction slide 10 software process improvement models objective. Software maintenance and development plan for the emd.
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. The criteria established apply to both the planning of maintenance for software while. Software engineering software maintenance with software engineering. 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. Ever since mankind starting exploring the oceans, icebergs have been a problem for seamen getting closer to the poles. This varies and is a bit of a loaded question because every software product is different.
Software engineering software maintenance javatpoint. There are various software development life cycle models defined and designed which are followed during the software development process. Such models can be used to develop more precise and. 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. This lesson defines the software development life cycle sdlc, and explains its sixstage process. Software engineering software process and software. Its possible to minimize maintenance costs through intelligent planning and execution, but its also possible. These generic models are abstractions of the process that can be used to explain different approaches to the software development. Preventive maintenance involves implementing changes to prevent the occurrence of errors.
Need for maintenance software maintenance must be performed in order to. 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. Use of this standard is not restricted by size, complexity, criticality, or application of the software product. Software maintenance in software engineering is the modification of a software product after. Software engineering software maintenance geeksforgeeks. Software maintenance overview software maintenance is widely accepted part of sdlc now a. The waterfall method is a project management strategy.