• Skip to main content
  • Skip to primary sidebar
  • Skip to secondary sidebar
  • Skip to footer

Computer Notes

Library
    • Computer Fundamental
    • Computer Memory
    • DBMS Tutorial
    • Operating System
    • Computer Networking
    • C Programming
    • C++ Programming
    • Java Programming
    • C# Programming
    • SQL Tutorial
    • Management Tutorial
    • Computer Graphics
    • Compiler Design
    • Style Sheet
    • JavaScript Tutorial
    • Html Tutorial
    • Wordpress Tutorial
    • Python Tutorial
    • PHP Tutorial
    • JSP Tutorial
    • AngularJS Tutorial
    • Data Structures
    • E Commerce Tutorial
    • Visual Basic
    • Structs2 Tutorial
    • Digital Electronics
    • Internet Terms
    • Servlet Tutorial
    • Software Engineering
    • Interviews Questions
    • Basic Terms
    • Troubleshooting
Menu

Header Right

Home » Software Engineering » Software Maintenance Life Cycle
Next →
← Prev

Software Maintenance Life Cycle

By Dinesh Thakur

Changes are implemented in the software system by following a software maintenance process, which is known as Software Maintenance Life Cycle (SMLC).This life cycle comprises seven phases, namely, problem identification, analysis, design, implementation, system testing, acceptance testing, and delivery phase.

                                          Phases of SMLC

All the phases in SMLC evolve through four attributes, namely, input, process, control, and output. All these attributes are listed in Table

                                                                   Table Attributes of SMLC

Phases

Input

Process

Control

Output

Problem identification phase

  • Modification request (MR)
  • Assign identification number
  • Classify MR into appropriate category
  • Accept or reject change
  • Assign a priority
  • Uniquely identified modification request
  • Enter process modification  request in repository
  • Validated modification request
  • Validated determinations

Analysis phase

  • Project document
  • Repository information
  • Validated modification request
  • Feasibility study
  • Detailed analysis
  • Conduct technical review
  • Verify test strategy
  • Verify whether documentation is updated or not
  • Identify security issues
  • Feasibility report
  • Updated requirements
  • Test strategy
  • Detailed analysis report
  • Preliminary modification list

Design phase

  • Project document
  • Source code
  • Databases
  • Output of analysis phase
  • Develop test cases
  • Revise requirements
  • Revise implementation plan
  • Software inspections /reviews
  • Verify design
  • Refined modification list
  • Refined detailed analysis
  • Modified test plans

Implementation phase

  • Source code
  • Project documentation
  • Output of design phase
  • Software code
  • Unit test
  • Test preparation review
  • Software inspections/review

Updated software

Updated design documents

Updated test documents

Updated user documents

Test preparation review report

System test phase

  • Updated software documentation
  • Test preparation review report
  • Updated system
  • Functional test
  • Interfere testing
  • Test preparation review
  • Software code listings
  • Modification request
  • Test documentation
  • Tested and integrated system
  • Test report

Acceptance test phase

  • Test preparation review report
  • Fully integrated system
  • Acceptance test plans
  • Acceptance test cases
  • Acceptance test procedures
  • Acceptance test
  • Interoperability test
  • Acceptance test
  • Acceptance test report

Delivery Phase

  • Tested/accepted system
  • Installation
  • Training
  • Version description document
  • Version description document

We’ll be covering the following topics in this tutorial:

  • Problem Identification Phase
  • Problem Analysis Phase
  • Design Phase
  • Implementation Phase
  • System Test Phase
  • Acceptance Test Phase
  • Delivery Phase

Problem Identification Phase

In this phase, the requests for modifications in the software are identified and assigned an identification number. Each Modification Request (MR) is then assessed to determine to which type of maintenance activity (corrective, adaptive, perfective, and preventive) the MR belongs. After classification, each MR is assigned with a priority to determine the order in which it is to be processed.

Problem Identification Phase

The input attribute comprises modification request. If changes are required in the software then the following set of activities is performed in the process attribute.

1. Assigning an identification number

2. Classifying MR into appropriate type of maintenance activity

3. Deciding whether to accept, reject, or evaluate the request further

4. Assigning a priority to each modification.

After the process attribute, the control attribute begins, which uniquely determines the identified MR and enters it into a repository. This is because there are different kinds of software maintenance requests and each modification required in a software system needs to be identified and stored in the repository according to its type, priority, and so on. Repository is a place of storage and consists of components such as statement of problem or modification request, requirement evaluation, type of software maintenance, initial priority, and an estimate of resources required in software maintenance. The output of this phase is a validated modification request and the process determinations that are stored in the repository.

Problem Analysis Phase

In this phase, the feasibility and scope of each validated modification request are determined and a plan is prepared to incorporate the changes in the software. The input attribute comprises validated modification request, initial estimate of resources, project documentation, and repository information.

Problem Analysis Phase

The process attribute comprises two components, namely, feasibility, analysis and detailed analysis. A feasibility analysis is performed for an MR and a feasibility report is prepared, which contains the following information.

  1. Impact of the changes
  2. Alternative solutions including prototyping
  3. Analysis of conversion requirements
  4. Safety and security implications
  5. Human factors
  6. Short-term and long-term costs.

Detailed analysis serves the following purposes.

  1. Defining firm requirements for modification
  2. Determining the elements to be modified
  3. Determining safety and security issues
  4. Preparing a test strategy
  5. Devising an implementation plan.

The control attribute of this phase concentrates on the review of project documentation as well as modification request to evaluate the technical and economic feasibility. In addition, this attribute verifies that project documentation is updated according to the analysis of modification request. The time and resource estimates are verified for their accuracy in control attribute. The output of this phase comprises elements such as feasibility report for modification request, updated requirements, test strategy, detailed analysis report, and preliminary modification list.

Design Phase

In this phase, the modifications to be made in the software are designed. The input attribute comprises outputs produced by analysis phase (detailed analysis), project and system documentation, software’s source code, and databases.

The process attribute for design comprises the following steps.

  1. Identifying the affected software modules
  2. Modifying software module documentation (like data-flow diagrams and program design language)
  3. Developing test cases for the new design including safety and security issues.
  4. Creating regression tests
  5. Documenting the updated requirements
  6. Revising the list of modifications.

In the design phase, the control attribute performs the following functions.

  1. Conducting software inspection of the design in compliance with IEEE standards
  2. Verifying that the new design/requirement has been documented
  3. Verifying that the new design along with safety and security issues has been included
  4. Verifying that the test documentation has been modified.

The output of this phase is a refined modification list, refined detailed analysis, modified test plans, verified requirements, and the list of constraints and risks in implementation. The output provides information of detailed analysis of user requirements along with the implementation plan. This plan lists the tasks to be implemented in the implementation phase of SMLC. The design test plans are prepared according to the updated design. Generally, the quality factors that are considered before developing the software design include flexibility of design and reusability of the software code.

Implementation Phase

In this phase, the actual modifications in the software code are made, new features that support the specification of present software are added, and the modified software is installed. The input attribute comprises the source code, the output of design phase, and the modified system and project documentation.

                            Implementation Phase

The process attribute comprises the following subprocesses.

1.                  Coding and unit testing: The user requirements as identified in the design phase are implemented in the form of software code. After the software code is written, unit testing on individual modules is performed.

2.                  Integration: When the software code is written and all the modules are tested, the modified software modules are integrated with the existing system. After integration of the software system, integration test and regression test are performed. These tests are conducted to identify the impact on the functionality, performance, usability, and security of the modified software system. Impacts that lead to serious errors such as failure of software system are recorded so that they can be removed after identifying and understanding the source of error.

3.                  Risk analysis and review: In the implementation phase, the risk analysis and review are carried out periodically rather than on the completion of this phase. Risks that commonly occur are risk for data failure, provision of backup, and so on.

4.                  Test preparation review: This review is conducted to evaluate the review for system test in accordance with IEEE standards.

The control attribute performs the following functions.

  1. Conducting software inspections of the code in compliance with IEEE standards
  2. Ensuring that the unit and integration testing have been performed and documented
  3. Ensuring that test documentation such as test plan and test cases are either updated or created
  4. Verifying that the new software has been placed under SCM control
  5. Verifying that the changes in training and technical documentation have been made.

The output of this phase is in the form of updated (modified) software according to the modification request, updated design documents, updated test documents, updated user documents, and test preparation review report.

System Test Phase

In this phase, the regression testing (a type of system testing) is performed on the modified system to ensure that no new faults are introduced in the software as a result of the maintenance activity. The input attribute comprises the updated software documentation, test preparation review report, and the updated system.

                         System Test Phase

In the process attribute, various types of testing such as system functional testing, interface testing, and regression testing are performed on the fully integrated system. While in the control attribute, system testing is performed. The system test is conducted with the help of a separate test function. The test function is required to record the output of the system test and determine the status of the criterion that has been established in the test plan for system testing. This information is essential to proceed to the next phase, which is acceptance testing. The output of this phase is the tested and integrated system and the test report.

Acceptance Test Phase

In this phase, acceptance testing is performed on the fully integrated system by the user or by a third party specified by the user. The objective is to detect errors and verify that the software features are according to the requirements stated in the modification request. The input attribute comprises the fully integrated system, acceptance test plans, acceptance test cases, and acceptance test procedures.

Acceptance Test Phase The process attribute includes the procedures for performing acceptance test at the functional level and testing the system to determine its performance and operation. The control attribute performs the following functions.

  1. Executing acceptance tests
  2. Conducting functional audit
  3. Reporting test results for the Functional Configuration Audit (FCA)
  4. Placing the acceptance test documentation under SCM control.

The output of acceptance test phase comprises an FCA report and the acceptance test report.

Delivery Phase

In this phase, the modified (or new) software system is delivered to the user. In addition, users are provided with a proper documentation consisting of manuals and help files that describe the operation of the software along with its hardware specifications. The input attribute comprises a fully tested and accepted version of the system.

Delivery Phase

The process attribute of the delivery phase comprises the following steps.

  1. Conducting a Physical Configuration Audit (PCA)
  2. Informing the users
  3. Making provision for the system backup
  4. Installing the modified system and providing training to the users.

The control attribute performs the following functions.

1.      Arranging and documenting a PCA

2.      Allowing users to access system materials

3.      Providing a complete Version Description Document (VDD)

4.      Placing contents of the delivery under SCM control.

The output of this phase is a VDD and a PCA report.

You’ll also like:

  1. Software Process and Life Cycle
  2. Software Maintenance in Software Engineering
  3. Types of Software Maintenance
  4. Software Maintenance Models
  5. Life Cycle of JSP
Next →
← Prev
Like/Subscribe us for latest updates     

About Dinesh Thakur
Dinesh ThakurDinesh Thakur holds an B.C.A, MCDBA, MCSD certifications. Dinesh authors the hugely popular Computer Notes blog. Where he writes how-to guides around Computer fundamental , computer software, Computer programming, and web apps.

Dinesh Thakur is a Freelance Writer who helps different clients from all over the globe. Dinesh has written over 500+ blogs, 30+ eBooks, and 10000+ Posts for all types of clients.


For any type of query or something that you think is missing, please feel free to Contact us.


Primary Sidebar

Software Engineering

Software Engineering

  • SE - Home
  • SE - Feasibility Study
  • SE - Software
  • SE - Software Maintenance Types
  • SE - Software Design Principles
  • SE - Prototyping Model
  • SE - SRS Characteristics
  • SE - Project Planning
  • SE - SRS Structure
  • SE - Software Myths
  • SE - Software Requirement
  • SE - Architectural Design
  • SE - Software Metrics
  • SE - Object-Oriented Testing
  • SE - Software Crisis
  • SE - SRS Components
  • SE - Layers
  • SE - Problems
  • SE - Requirements Analysis
  • SE - Software Process
  • SE - Software Metrics
  • SE - Debugging
  • SE - Formal Methods Model
  • SE - Management Process
  • SE - Data Design
  • SE - Testing Strategies
  • SE - Coupling and Cohesion
  • SE - hoc Model
  • SE - Challenges
  • SE - Process Vs Project
  • SE - Requirements Validation
  • SE - Component-Level Design
  • SE - Spiral Model
  • SE - RAD Model
  • SE - Coding Guidelines
  • SE - Techniques
  • SE - Software Testing
  • SE - Incremental Model
  • SE - Programming Practices
  • SE - Software Measurement
  • SE - Software Process Models
  • SE - Software Design Documentation
  • SE - Software Process Assessment
  • SE - Process Model
  • SE - Requirements Management Process
  • SE - Time Boxing Model
  • SE - Measuring Software Quality
  • SE - Top Down Vs Bottom UP Approaches
  • SE - Components Applications
  • SE - Error Vs Fault
  • SE - Monitoring a Project
  • SE - Software Quality Factors
  • SE - Phases
  • SE - Structural Testing
  • SE - COCOMO Model
  • SE - Code Verification Techniques
  • SE - Classical Life Cycle Model
  • SE - Design Techniques
  • SE - Software Maintenance Life Cycle
  • SE - Function Points
  • SE - Design Phase Objectives
  • SE - Software Maintenance
  • SE - V-Model
  • SE - Software Maintenance Models
  • SE - Object Oriented Metrics
  • SE - Software Design Reviews
  • SE - Structured Analysis
  • SE - Top-Down & Bottom up Techniques
  • SE - Software Development Phases
  • SE - Coding Methodology
  • SE - Emergence
  • SE - Test Case Design
  • SE - Coding Documentation
  • SE - Test Oracles
  • SE - Testing Levels
  • SE - Test Plan
  • SE - Staffing
  • SE - Functional Testing
  • SE - Bottom-Up Design
  • SE - Software Maintenance
  • SE - Software Design Phases
  • SE - Risk Management
  • SE - SRS Validation
  • SE - Test Case Specifications
  • SE - Software Testing Levels
  • SE - Maintenance Techniques
  • SE - Software Testing Tools
  • SE - Requirement Reviews
  • SE - Test Criteria
  • SE - Major Problems
  • SE - Quality Assurance Plans
  • SE - Different Verification Methods
  • SE - Exhaustive Testing
  • SE - Project Management Process
  • SE - Designing Software Metrics
  • SE - Static Analysis
  • SE - Software Project Manager
  • SE - Black Box Testing
  • SE - Errors Types
  • SE - Object Oriented Analysis

Other Links

  • Software Engineering - PDF Version

Footer

Basic Course

  • Computer Fundamental
  • Computer Networking
  • Operating System
  • Database System
  • Computer Graphics
  • Management System
  • Software Engineering
  • Digital Electronics
  • Electronic Commerce
  • Compiler Design
  • Troubleshooting

Programming

  • Java Programming
  • Structured Query (SQL)
  • C Programming
  • C++ Programming
  • Visual Basic
  • Data Structures
  • Struts 2
  • Java Servlet
  • C# Programming
  • Basic Terms
  • Interviews

World Wide Web

  • Internet
  • Java Script
  • HTML Language
  • Cascading Style Sheet
  • Java Server Pages
  • Wordpress
  • PHP
  • Python Tutorial
  • AngularJS
  • Troubleshooting

 About Us |  Contact Us |  FAQ

Dinesh Thakur is a Technology Columinist and founder of Computer Notes.

Copyright © 2025. All Rights Reserved.

APPLY FOR ONLINE JOB IN BIGGEST CRYPTO COMPANIES
APPLY NOW