Open In App

Techniques for reducing need of Software Maintenance

Software Maintenance is modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment. Following are the three techniques the need of software maintenance as depicted in the following figure :
There are several techniques that can be used to reduce the need for software maintenance, including:

Adopting a proactive maintenance strategy: This includes regular testing, monitoring, and updating of the system to prevent problems from occurring.



Using modern development methodologies: Agile, DevOps, and Continuous Integration and Continuous Deployment (CI/CD) can help to improve the efficiency of maintenance tasks and reduce the need for maintenance.

It’s important to note that software maintenance is an ongoing process, and it is important to have a plan in place to manage the ongoing maintenance of the system. 



Pattern-based software Reengineering :
Pattern based software reengineering approach is primarily aimed at improving the maintainability of software legacy systems. Most of the systems were developed in imperative languages with traditional design approaches. Imperative programming languages have the following characteristics :

Instead of continually maintaining these systems in their original architecture the idea is to engineer them using good design architecture in order to make them more understandable and easier to reuse and maintain.

One way of redesigning these systems is using design patterns. Design patterns are basically design techniques that combine successful and established design practices and the experience of experts into a set of components that exhibit known behavior with a better structure. Ab=n example is object-oriented technologies which are known to improve the cost saving and quality aspects of software development.

Maintenance oriented approach to software construction :
Here maintenance is performed not only a software product has been delivered to a client but also during the actual building of the product. In fact product requirements frequently change during development, hence calling for reconstruction of the artifacts that have been developed to date.

Consequently by adopting an approach that makes addition, deletion or modification of requirements and artifacts easy at any stage of the product life, cycle, one is actually improving the software maintainability.

Disposable Information System :
This refers to the use of COTS software. COTS describe any software acquired from elsewhere and usually delivered, in executable format, as opposed to source-code format i.e., the firm now buys a right to use the software systems instead of actually building it. There are several advantages of this technique such as :

  1. Productivity Gain – Instant productivity gains, as effort is saved in testing and debugging thousands of lines of code.
  2. Time-to-market – As a result of software being produced faster the firm is in a position to reach the market first and beat the competition.
  3. Cost – Using COTS software as a means of programming is considerably cheaper than coding from scratch.
  4. Philosophy – There is a belief that software systems should be built like hardware systems, i.e., from a set of components that can be selected and acquired from say, catalogers.

A disposable information system is a type of system that is designed to be used for a specific, limited period of time and then discarded or replaced. These systems are typically used for short-term projects or for situations where the requirements are expected to change quickly.

The main advantage of disposable information systems is their flexibility. They can be quickly and easily implemented and modified to meet changing requirements, which allows organizations to respond quickly to new opportunities or changing market conditions. Additionally, they can be less expensive to develop and maintain than traditional systems.

Disposable information systems have several characteristics:

Disadvantages of disposable information systems include:

Article Tags :