Which of the maintenance is used to tackle the changes in the hardware and software environment?



Question:Explain the term, software maintenance.

Answer: - Maintenance of a software system may be define which is used to concerned about the alteration or changes which are done in software system after the release. Maintenance of software is the part of software Engineering. Maintenance of software has a great value in the development of a system. Needs of Maintenance is required after

  • When the user get the product at his own place.

  • Installation

  • When software is in operational stage.

When any alteration or modification is done in software during the operation time then it is called maintenance. Maintenance of software have a large area which has correcting coding, and design faults, documentation and updating of user support. IEEE gives the definition of maintenance as

Software maintenance is modification of a software product after delivery to correct faults to improve performance or other attribute or to adapt the product to a modified environment.

According to Stephan - Software maintenances is a detailed activity that include

  • Error detections and corrections

  • Enhancement of capabilities

  • deletion of obsolete capabilities

  • Optimization

Reason of Maintenance of software

In the life of a software maintenance activity have a great value. In the comparison of development cost, the maintenance cost is higher. Normally Maintenance of a software take 40 to 70 % cost of total costing of software life cycle. Cost and difficulty are the two drawbacks in maintenance of software. We have some reasons which increases the need of software maintenance.

  • Where user needs change time to time.

  • When technology of hardware change.

  • When the environment of a system changed.

  • To increase the ability or capacity of system.

  • To keep the same quality of the product.

  • To resolve the Errors.

  • For getting the best output with the help of existing software.

  • To reject the unusual effects.

  • For making the software more compatible in the favor of user.

Types of software Maintenance

  1. Corrective Maintenance - Corrective maintenance may be define with those alteration which is done for the solving those errors which was available in the software. With the help of corrective maintenance method software can change by removing all the faults. Thus the goal of this method is to correct the software from every type of errors. A software have many kind of faults just like specification errors, logical errors, coding error etc. . and corrective maintenance solve all those types of faults. For the recovery of a system many types of actions performed in corrective Maintenance.

    According to K. Bennett,

    Maintenance personal sometimes resolve to emergency fixes known as patching to reduce the pressure from the management.

    20 % of total maintenance cost is the part of corrective method.

  2. Adaptive Maintenance - Adaptive maintenance may be defined by that alteration in software system to survive in that area where this system operates. Environment refers those situations which affects the software from outside. According to R. Books,

    A change to the whole or part of this environment will require a corresponding alteration of the software.

    20 % of the total maintenance cost is the part of adaptive maintenance.

  3. Perfective maintenance - To increase the efficiency, performance, maintainability, effectiveness of software that is called perfective maintenance. Most of the times enhancement also includes perfective maintenance as one of its part. After changes user operate this software for the purpose which it was developed by developer. For example: if GUI not attract the customer then some change are made for improving the looks and design of the software. Just to get the perfection the changes are made otherwise it is not necessary in normal cases. The demand of the perfective maintenance could be completed by software Engineering. All changes which improve the quality are including in perfective maintenance. The reason of alteration in a system could be a cause in improve the efficiency and functions and easy to understand. 50% of the total maintenance cost is the part of perfective maintenance.

As long as your software product is in use, it’s never truly finished. In an ever-changing tech landscape, your software requires constant maintenance to keep up. It needs to be able to grow and evolve alongside trends, new technologies, your user base and your business goals.

Far more than bug-fixing, there are several distinct categories of software maintenance. Some software maintenance changes happen behind the curtain, others are on stage and in the spotlight. As such, each category has a varying effect on your users.

Here, we explore the different types of software maintenance and their user impact.


Software maintenance

Software maintenance is the act of fine-tuning a software product. It’s about repair, upkeep and ongoing optimisation.

Whenever you make a change to your existing software product (one currently in use by customers), you are performing software maintenance. Some of these changes are inconspicuous – if not invisible – to your users. Others can be disruptive if handled incorrectly.

You can group software maintenance into four overarching categories:

  1. Preventive maintenance
  2. Corrective maintenance
  3. Adaptive maintenance
  4. Perfective maintenance

Between them, these categories cover the full scope of changes you might make to a software product over its lifetime. But what do they actually mean?


Preventive software maintenance

Preventive maintenance refers to software changes carried out to futureproof your product. So, software maintenance changes are preventive when they prepare for any potential changes ahead.

This includes making your code easier to scale or maintain and managing your legacy content. It also covers finding and fixing latent faults in your product, before they evolve into operational faults.

Preventive software maintenance, then, tends to be behind the scenes. Think tidying and preparation, rather than headline changes.

Your users are unlikely to notice preventive software changes – but they still have a positive effect later. This is because preventive maintenance can mean the smoother implementation of bigger changes later down the line. (As well as ongoing stability day to day.)


Corrective software maintenance

Corrective changes in software maintenance are those that fix bugs, flaws and defects in the software. It often comes in the form of quick, small updates on a semi-regular basis.

For users, corrective software maintenance is unlikely to cause negative sentiment. Who, after all, is unhappy about annoying bugs, glitches or issues getting fixed? This category of change helps make the user experience instantly and obviously smoother, as well as more reliable.

However, on the odd occasion, a corrective change may cause some disruption to users. This might happen when a bug or flaw in the software is long-standing – and the user has grown accustomed to it.

In such a case, a user may have adapted their behaviour around a flaw in your software. When it’s fixed, they must change their behaviour again, which can cause a negative response. Another time that a corrective change might upset a user is if they struggle with a certain bug or issue, but it isn’t fixed when other issues (that don’t affect them) are fixed.

So, with corrective software maintenance, it’s important to act quickly and often. That helps you offset any potential user problems, and keep your product in shipshape.


Adaptive software maintenance

The tech environment is constantly changing. New knowledge, hardware, and cybersecurity threats mean that software quickly becomes outdated. Adaptive software maintenance addresses this issue.

Adaptive changes focus on the infrastructure of the software. They’re made in response to new operating systems, new hardware, and new platforms, to keep the program compatible.

Adaptive software changes tend to be low impact for users as they deal with the internal workings of the software. (Making sure it can integrate with new tech.) Users may notice a small improvement in speed or scalability but are otherwise unaffected.

In fact, users are more likely to notice when adaptive maintenance isn’t completed. For example, it would mean their software stops working on their up-to-date devices.


Perfective software maintenance

The last software maintenance category is the biggest. Perfective software maintenance addresses the functionality and usability of the software. Perfective maintenance involves changing existing product functionality by refining, deleting, or adding new features.

As well as changing the way a product works, perfective changes might also change the way it looks. Any user interface tweaks, redesigns, or in-app user journey changes fall under the perfective maintenance category, too.

This scope and palpability make perfective maintenance the most likely to elicit change aversion in users. After all, perfective changes are highly noticeable. Users won’t notice a bit of refactored back-end code, but they’ll notice any chops and changes visible up-front.

So, managing perfective changes means communicating with your users to mitigate any potential negative sentiment. Try using product feedback, dogfooding, and offering accessible support. Change is necessary: but make sure you manage it effectively.


Manage your maintenance

Software maintenance is integral to keeping software running smoothly. But it’s not enough to merely make your changes and deploy them unannounced. When performing software maintenance, it’s important to consider what effect the changes you make could have on your users.

If your software maintenance could cause confusion, you need to make sure you’re effectively communicating with – and supporting – your users. That way, you avoid the potential disruption of change and ensure that maintenance stays your product’s mainstay.


Useful links

  • Feature flags: what are they good for?
  • Legacy code dangers: code is inventory
  • Why your users hate your flashy new design (and what to do about it)
  • What’s the difference between a software upgrade and a software update?
  • Are you eating your own dog food?
  • The security risks of outdated software

What is hardware and software maintenance?

(1) Hardware maintenance is the testing and cleaning of equipment. (2) Software maintenance is the updating of operating systems and application programs in order to add new functions and change data formats. It also includes fixing bugs and adapting the software to new hardware devices.

Which type of maintenance ensure the system to run on changing environment and also a new environment?

Adaptive maintenance is concerned with the changes made to the software in order to make it adaptable to new environments, such as running it on a new operating system. The term "perfective maintenance" refers to the changes in the software that occur as a result of adding new features.

What are the 4 types of software maintenance?

What are the 4 types of software maintenance?.
Corrective Software Maintenance. Corrective software maintenance is the typical, classic form of maintenance (for software and anything else for that matter). ... .
Preventative Software Maintenance. ... .
Perfective Software Maintenance. ... .
Adaptive Software Maintenance..

What are the maintenance activities during software development?

Software Maintenance must be performed in order to: Correct faults. Improve the design. Implement enhancements..
Corrective maintenance: ... .
Adaptive maintenance: ... .
Perfective maintenance: ... .
Preventive maintenance:.