Professional Documents
Culture Documents
Lec 2 - SW Maintenance Process & Models
Lec 2 - SW Maintenance Process & Models
2
Maintenance phase in the product life-span
One traditional software development life cycle (SDLC) is shown in this
Figure, which comprises two discrete phases, namely:
development and
maintenance
Maintenance approaching two-thirds of the product life-span.
➢ Output
5
IEEE/EIA 1219 Maintenance Process
Phase 1: Problem identification
A request for change to the software is normally made by the users of
the software system or the customers, and it starts the maintenance
process.
The change request(CR) [also called modification request (MR)] is
submitted for a correction or for an enhancement.
In this phase, the requests for modifications in the software are
identified, classified, and (if accepted) stored in a repository.
Repository is a place of storage and consists of components such as
statement of problem or modification request, requirement evaluation,
type of software maintenance, initial priority, and an estimate of resources
required in software maintenance.
6
IEEE/EIA 1219 Maintenance Process
Phase 1: Problem identification
7
IEEE/EIA 1219 Maintenance Process
Phase 2: Problem Analysis
In this phase, the feasibility and scope of each validated modification request are
determined, and a plan is prepared to incorporate the changes in the software.
The process includes two major components:
I. Feasibility analysis is performed to:
➢ determine the impact of the change;
➢ investigate other possible solutions including prototyping;
➢ assess both short-term and long-term costs;
➢ determine the benefits of making the change.
II. Detailed Analysis identifies:
➢ firm modification requirements;
➢ the software components involved;
➢ an overall test strategy;
➢ an implementation plan. 8
IEEE/EIA 1219 Maintenance Process
Phase 2: Problem Analysis
9
IEEE/EIA 1219 Maintenance Process
Phase 3: Design
10
IEEE/EIA 1219 Maintenance Process
Phase 4: Implementation
11
IEEE/EIA 1219 Maintenance Process
Phase 5: System Test
In this phase, tests are performed on the full system to ensure that the
modified system complies with the original requirements as well as the
new modifications.
Regression testing validates that the modified code does not introduce
faults that did not exist prior to the maintenance activity.
14
Exercises
1. What are the main characteristics that distinguishes the maintenance process from
the development process?
2. Replace each statement with the key term related to SMLC:
➢ Its main objective is to assess the overall quality of the system, rather than
actively identify defects.
➢ It refers to the activity that assesses both short-term and long-term costs of the
submitted MR.
➢ It refers to the activity that classifies the submitted MR into appropriate type
of maintenance activity.
➢ It validates that the modified code does not introduce faults that did not exist
prior to the maintenance activity.
3. Give examples of activities included in the system testing phase.
4. Mention at least three items identified by the detailed analysis activity.
5. List the input, process and output items for the following SMLC phases:
➢ Problem Identification
➢ Design 15
Software Maintenance Models
Software maintenance models use different approaches and techniques
to simplify the process of maintenance as well as to make is cost
effective.
Common software maintenance models include:
➢ Reuse Oriented Models
17
1. Reuse Oriented maintenance models
One obtains a new version of an old system by modifying one or
several components of the old system and possibly adding new
components.
Based on this concept, three process models for maintenance have been
proposed:
➢ Quick Fix Model
➢ Iterative Enhancement Model
➢ Full Reuse Model
18
1. Reuse Oriented maintenance models
A. Quick Fix Model
19
1. Reuse Oriented maintenance models
A. Quick Fix Model
Advantage
Disadvantage
20
1. Reuse Oriented maintenance models
B. Iterative Enhancement
Iterative Vs. Incremental
They are not synonyms in the field of software engineering.
Iteration implies that a process is basically cyclic, thereby meaning that
the activities of the process are repeatedly executed in a structured
manner.
Iterative means that parts of the system progressively refined based on
customer feedback and other factors to optimize the value of the solution
to the customer.
Incremental development means that the system is broken up into
chunks of functionality and each chunk is developed incrementally
21
1. Reuse Oriented maintenance models
B. Iterative Enhancement
Although iterative-enhancement was proposed as a development model,
it is well suited to maintenance.
It considers that the changes made to the software system are iterative in
nature.
It assumes complete documentation of the software is available in the
beginning, as it relies on modification of this as the starting point for
each iteration.
22
1. Reuse Oriented maintenance models
B. Iterative Enhancement
Iterative Enhancement Model is divided into
three stages:
1. Analysis of existing software system.
It begins with analysis of the existing system’s artifacts, Old system New system
namely, requirements, design, code, test, and analysis
documents
2. Characterization of requested modifications.
the requested modifications are classified according
to the complexity, technical issues, and identification
of modules that will be affected
3. Redesign & Implementation of requested
modifications.
It modifies the highest-level documents affected by
the changes and propagates the changes down
through the lower-level documents (code level).
23
1. Reuse Oriented maintenance models
B. Iterative Enhancement
For example, A modification request is to add the Monalisa portrait at
the home page of a web site.
The requested modification is applied iteratively through creating a
rough product piece in one iteration, then review it and improve it in
next iteration and so on until it’s finished.
As shown in this example, in the first iteration the whole painting is
sketched roughly, then in the second iteration colors are filled and in
the third iteration finishing is done. Hence, in iterative model the
whole product is maintained step by step.
Reference. What is Iterative model- advantages, disadvantages and when to use it? (tryqa.com) 24
1. Reuse Oriented maintenance models
C. Full reuse
The main assumption in this model is the availability of a repository of
artifacts describing the earlier versions of the systems.
Maintenance starts with the requirements specification for the new system,
then reusing as much of the old system components as feasible.
➢ The starting point of reuse from old system may be at any phase (i.e., the
requirements, the design, the code or the test data).
➢ Unlike other models, for example, in the quick-fix model, the starting point
is always the code.
➢ Full reuse model would have a
similar structure to that of the
iterative model, once
requirements for reuse are met.
25
1. Reuse Oriented maintenance models
C. Full reuse
26
2. Change mini-Cycle Maintenance Model