0% found this document useful (0 votes)
27 views7 pages

Softw Main Reverse

Software maintenance is the process of updating software after launch to address issues, improve performance, and add new features. It involves four types: corrective maintenance fixes bugs; preventative maintenance addresses future issues; perfective maintenance adds new features; and adaptive maintenance ensures compatibility with changes to technology.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
27 views7 pages

Softw Main Reverse

Software maintenance is the process of updating software after launch to address issues, improve performance, and add new features. It involves four types: corrective maintenance fixes bugs; preventative maintenance addresses future issues; perfective maintenance adds new features; and adaptive maintenance ensures compatibility with changes to technology.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 7

What is Software Maintenance?

Software maintenance is the process of changing, modifying, and updating


software to keep up with customer needs. Software maintenance is done after
the product has launched for several reasons including improving the
software overall, correcting issues or bugs, to boost performance, and more.
Software maintenance is a natural part of SDLC (software development life
cycle). Software developers don’t have the luxury of launching a product and
letting it run, they constantly need to be on the lookout to both correct and
improve their software to remain competitive and relevant.

Using the right software maintenance techniques and strategies is a critical


part of keeping any software running for a long period of time and keeping
customers and users happy.

Why is software maintenance important?

Creating a new piece of software and launching it into the world is an


exciting step for any company. A lot goes into creating your software and its
launch including the actual building and coding, licensing models, marketing,
and more. However, any great piece of software must be able to adapt to the
times.

This means monitoring and maintaining properly. As technology is changing


at the speed of light, software must keep up with the market changes and
demands.

What are the 4 types of software maintenance?

The four different types of software maintenance are each performed for
different reasons and purposes. A given piece of software may have to
undergo one, two, or all types of maintenance throughout its lifespan.
The four types are:
Corrective Software Maintenance
Preventative Software Maintenance
Perfective Software Maintenance
Adaptive Software Maintenance

1. Corrective Software Maintenance

Corrective software maintenance is the typical, classic form of maintenance


(for software and anything else for that matter). Corrective software
maintenance is necessary when something goes wrong in a piece of software
including faults and errors. These can have a widespread impact on the
functionality of the software in general and therefore must be addressed as
quickly as possible.

Many times, software vendors can address issues that require corrective
maintenance due to bug reports that users send in. If a company can
recognize and take care of faults before users discover them, this is an added
advantage that will make your company seem more reputable and reliable (no
one likes an error message after all).

2. Preventative Software Maintenance

Preventative software maintenance is looking into the future so that your


software can keep working as desired for as long as possible.

This includes making necessary changes, upgrades, adaptations and more.


Preventative software maintenance may address small issues which at the
given time may lack significance but may turn into larger problems in the
future. These are called latent faults which need to be detected and corrected
to make sure that they won’t turn into effective faults.
3. Perfective Software Maintenance

As with any product on the market, once the software is released to the
public, new issues and ideas come to the surface. Users may see the need for
new features or requirements that they would like to see in the software to
make it the best tool available for their needs. This is when perfective
software maintenance comes into play.

Perfective software maintenance aims to adjust software by adding new


features as necessary and removing features that are irrelevant or not
effective in the given software. This process keeps software relevant as the
market, and user needs, change.

4. Adaptive Software Maintenance

Adaptive software maintenance has to do with the changing technologies as


well as policies and rules regarding your software. These include operating
system changes, cloud storage, hardware, etc. When these changes are
performed, your software must adapt in order to properly meet new
requirements and continue to run well.
W hat is Softw are R eengin eering

What do you know about software reengineering? Even if you developed the
best software of the era, you can still reengineer this to be something much
better. Learn what reengineering is, why your software needs it, and how it is
done.

So what would you do if you created something and you think that it is in its
most perfect form? Should you just stop there? Should you improve it
anyway? You may prefer to say ‘Yes’ which is not bad at all. However, in the
technological world, it is not easy to just stop.

In a fast and constantly changing industry, your business needs to keep up,
accelerate even. As far as satisfaction goes, it would be a waste to stop your
pursuit to be better. So when you feel like you’ve already engineered a good
software, platform, or business, what should you do next? Simple:
REENGINEER!

Re — Engineering

1. It is a process to re design a product or a particular component

2. It is also called as software refactoring

3. It is like a modification of the existing product to improve its


performance, maintainability and adaptability

4. It is a cost effective method as a part of the software is altered instead of


the entire product
5. Less coding knowledge is required for re-engineering

6. This practice is generally followed for safety issues or to update a new


feature into the product’s existing functionality

7. Re-engineering takes less time in comparison to Reverse Engineering

Why is Re-Engineering required

1. To adapt to changing business needs: As business requirements


changes, it is important to re-structure the software to support new
technology

2. To improve quality of software: Re engineering can help identify and


rectify errors and defects, thus making the software robust and reliable

3. To modernize the software: As technology is dynamic and is constantly


changing, it is important to keep the software updated which can be
achieved via the process of re-engineering
Reverse Engineering
Software Reverse Engineering is a process of recovering the design,
requirement specifications, and functions of a product from an analysis of
its code. It builds a program database and generates information from this.
The purpose of reverse engineering is to facilitate the maintenance work by
improving the understandability of a system and producing the necessary
documents for a legacy system.
Reverse Engineering Goals:

 Cope with Complexity.


 Recover lost information.
 Detect side effects.
 Facilitate Reuse.

Steps of Software Reverse Engineering:

1. Collection Information:
This step focuses on collecting all possible information (i.e., source
design documents, etc.) about the software.

2. Examining the information:


The information collected in step-1 is studied so as to get familiar with
the system.

3. Extracting the structure:


This step concerns identifying program structure in the form of a
structure chart where each node corresponds to some routine.

4. Recording the functionality:


During this step processing details of each module of the structure, charts
are recorded using structured language like decision table, etc.
5. Recording data flow:
From the information extracted in step-3 and step-4, a set of data flow
diagrams is derived to show the flow of data among the processes.

6. Recording control flow:


The high-level control structure of the software is recorded.

7. Review extracted design:


The design document extracted is reviewed several times to ensure
consistency and correctness. It also ensures that the design represents the
program.

8. Generate documentation:
Finally, in this step, the complete documentation including SRS, design
document, history, overview, etc. is recorded for future use.

Why is Reverse Engineering required

1. To find how a system works: Reverse engineering helps in an in-depth


analysis of the entire product and can be used to learn how things work

2. As a learning tool: It is a way to make new and compatible products that


might be cheaper than what’s currently in the market

3. To uncover features: Reverse engineering helps to unveil some


undocumented features of commercial products that might be incorporated
while building the entire product from start

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy