Skip to main content

5 - Software Maintenance - 3 - Maintenance Process


In addition to standard software engineering processes and activities described in IEEE 14764, there are a number of activities that are unique to maintainers.
Maintenance Processe
Maintenance processes provide needed activities and detailed inputs/outputs to those activities as described in IEEE 14764.Software maintenance activities include
• process implementation,
• problem and modification analysis,
• modification implementation,
• maintenance review/acceptance,
• migration, and
• software retirement
Other maintenance process models include:
• quick fix,
• spiral,
• Osborne’s,
• iterative enhancement, and
• reuse-oriented.
Recently, agile methodologies, which promote light processes, have been also adapted to maintenance. This requirement emerges from the ever increasing demand for fast turnaround of maintenance services. Improvement to the software maintenance process is supported by specialized software maintenance capability maturity models

Maintenance Activities
The maintenance process contains the activities and tasks necessary to modify an existing software product while preserving its integrity. These activities and tasks are the responsibility of the maintainer. As already noted, many maintenance activities are similar to those of software development. Maintainers perform analysis, design, coding, testing, and documentation. They must track requirements in their activities—just as is done in development—and update documentation as baselines change. IEEE 14764 recommends that when a maintainer uses a development process, it must be tailored to meet specific needs . However, for software maintenance, some activities involve processes unique to software maintenance.
Unique Activities
There are a number of processes, activities, and practices that are unique to software maintenance:
• Program understanding: activities needed to obtain a general knowledge of what a software product does and how the parts work together.
• Transition: a controlled and coordinated sequence of activities during which software is transferred progressively from the developer to the maintainer.
• Modification request acceptance/rejection: modifications requesting work beyond a certain size/effort/complexity may be rejected by maintainers and rerouted to a developer.
• Maintenance help desk: an end-user and maintenance coordinated support function that triggers the assessment, prioritization, and costing of modification requests.
• Impact analysis: a technique to identify areas impacted by a potential change;
• Maintenance Service-Level Agreements (SLAs) and maintenance licenses and contracts: contractual agreements that describe the services and quality objectives.
Supporting Activities
Maintainers may also perform support activities, such as documentation, software configuration management, verification and validation, problem resolution, software quality assurance, reviews,and audits. Another important support activity consists of training the maintainers and users.
Maintenance Planning Activities
An important activity for software maintenance is planning, and maintainers must address the issues associated with a number of planning perspectives, including
• business planning (organizational level),
• maintenance planning (transition level),
• release/version planning (software level), and
• individual software change request planning (request level).
At the individual request level, planning is carried out during the impact analysis (see section 2.1.3, Impact Analysis). The release/version planning activity requires that the maintainer:
• collect the dates of availability of individual requests,
• agree with users on the content of subsequent releases/versions,
• identify potential conflicts and develop alternatives,
• assess the risk of a given release and develop a back-out plan in case problems should arise, and
• inform all the stakeholders.
Whereas software development projects can typically last from some months to a few years, the maintenance phase usually lasts for many years. Making estimates of resources is a key element of maintenance planning. Software maintenance planning should begin with the decision to develop a new software product and should consider quality objectives. A concept document should be developed, followed by a maintenance plan. The maintenance concept for each software product needs to be documented in the plan and should address the
• scope of the software maintenance,
• adaptation of the software maintenance process,
• identification of the software maintenance organization, and
• estimate of software maintenance costs.
The next step is to develop a corresponding software maintenance plan. This plan should be prepared during software development and should specify how users will request software modifications or report problems. Software maintenance planning is addressed in IEEE 14764. It provides guidelines for a maintenance plan. Finally, at the highest level, the maintenance organization will have to conduct business planning activities (budgetary, financial, and human resources) just like all the other divisions of the organization. Management is discussed in the chapter Related Disciplines of Software Engineering.
Software Configuration Management
IEEE 14764 describes software configuration management as a critical element of the maintenance process. Software configuration management procedures should provide for the verification, validation, and audit of each step required to identify, authorize, implement, and release the software product.
 It is not sufficient to simply track modification requests or problem reports. The software product and any changes made to it must be controlled. This control is established by implementing and enforcing an approved software configuration management (SCM) process. The Software Configuration Management KA provides details of SCM and discusses the process by which software change requests are submitted, evaluated, and approved. SCM for software maintenance is different from SCM for software development in the number of small changes that must be controlled on operational software. The SCM process is implemented by developing and following a software configuration management plan and operating procedures. Maintainers participate in Configuration Control Boards to determine the content of the next release/version.
Software Quality
It is not sufficient to simply hope that increased quality will result from the maintenance of software. Maintainers should have a software quality program. It must be planned and processes must be implemented to support the maintenance process. The activities and techniques for Software Quality Assurance (SQA), V&V, reviews, and audits must be selected in concert with all the other processes to achieve the desired level of quality. It is also recommended that the maintainer adapt the software development processes, techniques and deliverables (for instance, testing documentation), and test results

Back - 2 - Key Issues In Software Maintenance
Next - 4 - Techniques for Maintenance
Home - Software Maintenance
Main - The BOK

Published on : 30-May-2018
Ref no : DTC-WPUB-000038

About Author

My photo
Wan Mohd Adzha CAPM,MCPD,MCSD,MCSE
Passionate about new technology ( Software Engineering ) and how to build,manage and maintain them

Comments