4_5850411649529285041

You might also like

Download as pdf or txt
Download as pdf or txt
You are on page 1of 20

Software Maintenance

Fundamental Concepts
Almahdi Ibrahim
Software life cycle includes
• Requirements,
• Design,
• Construction,
• Testing, and
• Maintenance.
Important of Software maintenance
Software maintenance is an integral part of a
software life cycle. However, it has not
historically received the same degree of
attention as the other phases. Historically,
development has much higher profile than
maintenance in most organizations. This is
now changing as organizations strive to obtain
the most out of their development investment
by keeping software operating as long as
possible.
Enhance productivity of maintenance
activities
• Concerns about the Year 2000 rollover did bring
significant attention to this important phase.
• Open Source paradigm has brought attention to
the issue of maintaining code developed by
others.
• Maintenance is also expensive.
• For these reasons, there is an opportunity to
pursue further research to enhance productivity
of maintenance activities.
Software maintenance
• Software development efforts result in
delivery of a software product that satisfies
user requirements.
• Accordingly, the software product must
change or evolve.
Software maintenance
• Software maintenance sustains the software
product throughout its life cycle.
• Modification requests are logged and tracked,
the impact of proposed changes is
determined,
• code is modified, testing is conducted, and a
new version of the software product is
released.
• Training is provided to users.
Software maintenance definitions
Software maintenance is defined in the IEEE
Standard for Software Maintenance, as the
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.
Cont…
• Maintenance is the process of a software
product undergoing modification to code and
associated documentation due to a problem
or the need for improvement.

• A maintainer is defined by ISO/IEC 12207 as


an organization that performs maintenance
activities
Software process
• Software evolves over its life cycle, as
evidenced by the fact that over 80% of the
effort after initial delivery goes to implement
noncorrective actions.
• Thus, maintenance is similar to software
development, although some unique
processes are employed.
Software maintenance cost
• Studies have shown that more than 50% of all
programming activity on a software system is
done after the implementation.

• software maintenance costs is somewhere


between 40-80% of total software life-cycle
costs according to studies conducted by
(Alkhatib (1992), Kemerer (1995), Schrank et al. (1995).
Documentation and Procedures
• It is important to stress that software is not
just the set of programs but also the
documentation and the procedures.

• to maintain not only the program code but


also to maintain the documentation and
procedures.
The term maintenance can be
• “The act of keeping an entity in an existing
state of repair, efficiency, or validity; to
preserve from failure or decline. “
Software maintenance setting

1- maintenance during the development phase.

2- maintenance after the software is


implemented.
Software Process
• A software process is a set of activities that
leads to the production of a software product.
• These activities may involve the development
of software from scratch in a standard
programming language like Java.
• new software is developed by extending and
modifying existing systems and by configuring
and integrating system components.
Systems development processes
The tasks undertaken to construct a …system,
and the management of this effort, by a group
of stakeholders with agendas, who engage in
transactions over time within an institutional
context by applying structure to their work
with a set of tools and methodologies, and
who judge outcomes of their efforts and act
accordingly.
Software maintenance process
• Software maintenance is defined in the IEEE
Standard for Software Maintenance, as the
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.

• Software maintenance process is the series of


actions taken to effect change during software
maintenance.
Categories of software maintenance
• Corrective: Maintenance to repair software
faults.
• Adaptive: Maintenance to adapt the software
to a different operating environment.
• Perfective: Maintenance to add or to modify
the system’s functionality.
• Preventive: Preventive maintenance improves
future maintenance and enhancement and
aims to detect problems before they occur.
different interfaces the maintainers
have to collaborate with
• Customers and users of software maintenance
• Helpdesk
• Computer operations department
• Developers
• Suppliers
Maintenance processes classes
• Primary processes (software maintenance
operational processes).

• Support processes (supporting the primary


processes)

• Organizational processes (offered by other


parts of the organization e.g. training, finance,
human resources, purchasing etc.)

You might also like