Software Development  ·  Level 6
Application End-User Support
Chapter 4: To perform application maintenance
📚 4 Topics
What you will be able to do

By the end of this chapter, you will be able to:

  • Provide technical assistance that meets the specific needs of users.
  • Monitor application performance to ensure it matches user requirements.
  • Optimize applications effectively based on what users need.
  • Carry out security updates correctly to keep applications safe.
  • Perform routine maintenance following workplace procedures accurately.
  • Execute system updates precisely according to user requirements.

These skills will help you keep applications running smoothly and securely, making you a valuable support professional in any workplace.

Application maintenance is a critical responsibility for software development professionals in Kenya, ensuring that software applications remain functional, efficient, and aligned with users’ evolving needs. In the context of Kenya’s dynamic business and public service environments, maintaining software supports operational continuity and user satisfaction across sectors such as banking, healthcare, and government services. This chapter explores the different types of application maintenance, highlighting their unique purposes and how they contribute to the longevity and performance of software systems.

4.1 Types of Application Maintenance

Application maintenance refers to the modifications and updates made to software after its initial deployment to correct faults, improve performance, or adapt to changes in the environment. In Kenya’s software development industry, understanding the types of maintenance allows developers and support teams to prioritize tasks efficiently and sustain software relevance in diverse operational contexts. The four main categories of maintenance, corrective, adaptive, perfective, and preventive, address different aspects of software upkeep.

4.1.1 Corrective Maintenance

Corrective maintenance involves diagnosing and fixing errors or defects in software that impede its normal functioning. This type of maintenance is reactive, focusing on resolving issues reported by users or detected through monitoring tools. It is fundamental in maintaining trust and reliability, especially in critical sectors such as financial institutions and hospitals where software failures can cause significant disruption.

Nature of Corrective Maintenance

Corrective maintenance addresses unexpected malfunctions such as software crashes, data corruption, or incorrect outputs. These faults may arise from coding errors, integration problems, or unforeseen user interactions. For example, a SACCO’s loan management system might require immediate corrective updates if it miscalculates interest, risking financial losses and member dissatisfaction.

Methods for Identifying Defects

Detecting defects typically involves error reports from end-users, automated error logging, and system performance monitoring. Helpdesk teams in county government offices often serve as the frontline for receiving software problem reports, which are then triaged by development teams. Additionally, diagnostic tools and debugging software help isolate the root causes.

Process for Implementing Corrections

Corrective maintenance follows a structured process: first, the defect is logged and prioritized; second, developers analyze the source code to locate the fault; third, a fix is implemented and tested in a controlled environment; fourth, the update is deployed to production; finally, user feedback is monitored to confirm resolution. This process ensures minimal disruption and sustained system availability.

Challenges in Corrective Maintenance

Challenges include incomplete error reports, difficulty replicating issues, and balancing urgent fixes with ongoing development. In a retail business using a point-of-sale system, delayed corrective maintenance might result in transaction errors and loss of revenue. Effective communication between users and developers is essential to overcome these obstacles.

4.1.2 Adaptive Maintenance

Adaptive maintenance modifies software to keep it compatible with changing external environments such as operating systems, hardware, or regulatory requirements. This type of maintenance is proactive, ensuring that software remains operable despite shifts in technology or policy. Kenyan public sector systems, for instance, often require adaptive updates to comply with new data protection laws or infrastructure upgrades.

Purpose of Adaptive Maintenance

The primary goal is to maintain software usability by adjusting to environmental changes without altering core functionality. For example, a banking application must be updated to support the latest Android OS version used by customers. Without adaptive maintenance, software may become obsolete or insecure.

Types of Environmental Changes

Environmental changes include upgrades to operating systems, middleware, hardware platforms, network configurations, or legal frameworks. A university’s student portal might need adaptive maintenance when the institution migrates to a new server infrastructure or adopts cloud services, requiring compatibility adjustments.

Procedures for Adaptive Updates

Adaptive maintenance involves impact analysis of environmental changes, planning updates, coding necessary modifications, rigorous testing for compatibility, and deployment with minimal downtime. Coordination with IT infrastructure teams is vital during this process to align software updates with hardware or network changes.

Risks Associated with Adaptive Maintenance

Risks include the introduction of new errors, incomplete adaptation to all environmental changes, and resource constraints. In healthcare clinics using electronic medical records, failure to adapt software to new privacy regulations could expose patient data to breaches, underscoring the critical nature of this maintenance type.

4.1.3 Perfective Maintenance

Perfective maintenance focuses on enhancing software performance, usability, and functionality based on user feedback and evolving requirements. It reflects continuous improvement efforts to optimize the software beyond mere bug fixes or environmental adjustments. Such maintenance is particularly important in competitive sectors like banking, where user experience improvements can drive customer retention.

Objectives of Perfective Maintenance

The main objectives are to improve system efficiency, add new features, and refine existing functionalities. For example, a hotel reservation system might be enhanced with a new user interface and faster search capabilities to improve customer satisfaction.

Sources of Perfective Maintenance Requests

Requests often arise from end-users, business analysts, or management teams who identify areas for enhancement. In county government offices, citizen feedback on e-services platforms can prompt perfective updates to streamline service delivery.

Activities Involved in Perfective Maintenance

Activities include gathering and analyzing user requirements, designing enhancements, coding, testing new features, and training users on improvements. This process ensures that software evolves in line with organizational goals and user expectations.

Benefits of Perfective Maintenance

Benefits include increased user satisfaction, improved productivity, and extended software lifespan. For instance, a cooperative society’s accounting software that receives perfective maintenance to automate reporting reduces manual errors and saves staff time.

4.1.4 Preventive Maintenance

Preventive maintenance aims at identifying and mitigating potential problems before they cause failures. This proactive approach enhances software reliability and reduces long-term maintenance costs. It is essential in mission-critical applications such as tax management systems at KRA, where downtime can have significant economic impacts.

Significance of Preventive Maintenance

Preventive maintenance reduces the risk of unexpected failures by addressing weaknesses in the software architecture or codebase. This foresight helps avoid costly emergency fixes and service interruptions.

Techniques Used in Preventive Maintenance

Techniques include code refactoring, performance tuning, updating documentation, and conducting regular audits and testing. For example, a retail business’s inventory management system might undergo code optimization to improve response times and prevent bottlenecks.

Scheduling Preventive Activities

Scheduling involves periodic reviews and maintenance windows planned according to software usage patterns and organizational priorities. A county hospital’s patient registration system might be scheduled for preventive maintenance during low-activity hours to minimize disruption.

Challenges in Implementing Preventive Maintenance

Challenges include justifying resource allocation for non-urgent tasks and predicting potential failure points accurately. In the education sector, preventive maintenance of examination systems requires balancing academic calendars with software update schedules to avoid exam disruptions.

Practice Questions

  1. Explain how corrective maintenance differs from adaptive maintenance in software applications. (6 marks)
  2. Identify and describe four types of environmental changes that necessitate adaptive maintenance. (8 marks)
  3. Discuss five benefits of perfective maintenance for software used in the banking sector. (10 marks)
  4. Outline six techniques employed in preventive maintenance and explain their importance. (12 marks)
The rest of this chapter
🔒

Create a free account to open more of this chapter.

Free: practical guides, quick cards, workplace scenarios and more.

Create a free account
🔒4.2 Application maintenance schedule preparation

Application maintenance schedule preparation is a critical activity in software development, particularly in Kenya where organizations rely heavily on stable and up-to-date software systems for service delivery. A well-structured maintenance schedule enables s…

🔒4.3 Performing application maintenance

Performing application maintenance is a continuous process that ensures software applications remain functional, secure, and efficient throughout their lifecycle. In Kenya's software development sector, this involves a range of activities from correcting defec…

🔒4.4 Application maintenance report

In software development, an application maintenance report is a vital document that records all activities, findings, and actions taken during the maintenance phase of an application. In Kenya's dynamic IT environment, where businesses and public institutions…

Chapter Summary

This chapter explored the various types of application maintenance, including corrective, adaptive, perfective, and preventive maintenance, each addressing different needs for keeping software functional and relevant. It emphasized the importance of preparing a maintenance schedule, detailing its key components to ensure timely and organized upkeep. The process of performing application maintenance was examined through activities such as bug fixing, applying software updates and patches, and optimizing performance to enhance user experience. Additionally, the chapter highlighted the significance of maintenance reports in documenting the work done and supporting decision-making. It described the essential elements of a maintenance report and provided guidance on how to prepare it effectively. Overall, the chapter provided a comprehensive understanding of how to maintain applications efficiently to support end-users and sustain system reliability.

Self-Assessment

🔒 PDFDownload this self-assessment, with answers

A. Written Assessment

  1. Define corrective maintenance and explain its importance in software development. (3 marks)
  2. Which type of maintenance involves modifying an application to work with new operating systems or hardware?
    a) Corrective
    b) Adaptive
    c) Perfective
    d) Preventive (2 marks)
🔒20 more in this section.

Chapter Examination Questions

🔒 PDFDownload these examination questions, with model answers

SECTION A (40 Marks) - Answer ALL Questions

  1. Explain the difference between corrective maintenance and adaptive maintenance in software applications, illustrating your answer with an example from a Kenyan banking software system. (4 marks)
  2. Describe four components that must be included in an application maintenance schedule for a hospital management system. (4 marks)
🔒18 more in this section.
Flashcards 20 cards Study deck ▾
Question
1

↻ Tap card to reveal answer
🔒

18 more in this section.

Create a free account
Test Yourself 19 questions Start quiz ▾
0%
0 / 2
🔒

17 more in this section.

Create a free account
Am I competent?

At the start of this chapter we promised you would be able to:

  • Provide technical assistance that meets the specific needs of users.
  • Monitor application performance to ensure it matches user requirements.
  • Optimize applications effectively based on what users need.
  • Carry out security updates correctly to keep applications safe.
  • Perform routine maintenance following workplace procedures accurately.
  • Execute system updates precisely according to user requirements.

Tick each one you can genuinely do.

Prove it — in the simulator

Sample simulation — try how the simulator works. A version built for this chapter's practical is coming.

Prepare Kenyan PilauLocked ▸

Free: practical guides, quick cards, workplace scenarios and more.

Now — are you there yet?

You're competent when you can confidently do 50% or more of what this chapter promised.

Sign in to record how you're doing.