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

Agenda

 Software Maintenance vs. Development

 IEEE/EIA 1219 Maintenance Process

 Software Maintenance Models

➢ Reuse Oriented Models

➢ Change Mini-Cycle Model

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.

Traditional SDLC model


3
Maintenance vs. Development
Software maintenance has unique characteristics:
 Constraints of an existing system: Maintenance is performed on an
operational system. Therefore, all modifications must be compatible
with the constraints of the existing architecture, design, and code.
 Shorter time frame: A maintenance activity may span from a few hours
to a few months, whereas software development may span one or more
years.
 Available test data: In software development, test cases are designed
from scratch, whereas software maintenance can select a subset of
these test cases and execute them as regression tests.

Software maintenance should have its own Software Maintenance Life


Cycle (SMLC) model as it involves many unique activities.
4
IEEE/EIA 1219 Maintenance Process
 The maintenance process model described in IEEE 1219 starts the
software maintenance effort during the post-delivery stage.
 The standard focuses on seven-phases
 Each phase is described by four attributes:
➢ Input
➢ Process
➢ Control
(verification of completion, storing data, preparing report, etc.)

➢ 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

Input Process Output


• Modification • Assign identification • Validated
request (MR) number modification request
• Classify MR into • Validated
appropriate category determinations that
• Accept or reject are stored in the
change repository
• Assign a priority

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

Input Process Output


• Project document • Feasibility study • Feasibility report
• Repository information • Detailed analysis • Updated
• Validated modification requirements.
request • Test strategy.
• Detailed analysis
report.
• Preliminary
modification list.

9
IEEE/EIA 1219 Maintenance Process
Phase 3: Design

Input Process Output


• Project • Identify the affected software • Refined modification
document modules list
• Source code • Modify software module • Refined detailed
• Databases documentation. analysis
• Output of • Developing test cases for the • Modified test plans
analysis phase new design
• Creating regression tests
• Documenting the updated
requirements

10
IEEE/EIA 1219 Maintenance Process
Phase 4: Implementation

Input Process Output


• Source code • Coding and unit • Updated software
• Project testing • Updated documents
documentation • Integration with the (design, test, user)
• Output of design existing system
phase • Risk analysis

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.

Input Process Output


• Updated software Testing Types: • Tested Integrated
documentation • Functionality System
• Updated System • Robustness • Test Report
• Stability
• Performance
• Security
• Regression 12
IEEE/EIA 1219 Maintenance Process
Phase 6: Acceptance Test
• It is performed on a completely integrated system, and it involves
customers, users, or their representatives.
• The main objective of acceptance testing is to assess the overall quality
of the system (customer’s expectation from the system), rather than
actively identify defects.
Input Process Output
• Fully integrated system • Perform acceptance • New system
• Acceptance test plans tests baseline
and cases • Acceptance test
report
13
IEEE/EIA 1219 Maintenance Process
Phase 7: Delivery

Input Process Output


• Tested and • Notify the user • Version description
accepted system community, document
• Perform installation
and training,
• develop an archival
version of the system
for backup

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

➢ Change Mini-Cycle Model

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

 It is an ad hoc (unplanned) approach used for maintaining the software


system.
 The main objective of this model is to identify the problem and then fix it
as soon as possible.
 Source code is modified to fix the problem, then necessary changes are
made to the relevant documents.

19
1. Reuse Oriented maintenance models
A. Quick Fix Model
Advantage

 Suitable for software to be maintained with certain deadlines and


limited resources (quick and low cost)

Disadvantage

 Source code is modified without consideration of its impact on the


overall structure of the software system.
➢ As a result of this model, the structure of the software degrade rapidly

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

 Reuse process is explicit and includes the following activities:


➢ identify the components of the old system that are candidates for
reuse;
➢ understand the identified system components;
➢ modify the old system components to support the new requirements;
➢ integrate the modified components to form the newly developed
system.

26
2. Change mini-Cycle Maintenance Model

▪ Software change is a process


that may introduce new
requirements to the existing
system or may need to alter
the software system if
requirements are not correctly
implemented.
▪ In order to capture this, an
evolutionary model known as
change mini-cycle was
proposed.
27
Exercises
1. Replace each statement with the key term:
➢ It refers to the development that is based on scheduling strategies in which parts of the
system are progressively refined based on customer feedback.
➢ It refers to a maintenance model in which the source code is changed with no prior
investigation to its impact on the overall structure.
➢ It refers to a maintenance model that begins with analyzing the existing system’s artifacts,
namely, requirements, design, code, test, and analysis documents.
➢ It refers to a maintenance model that starts with the requirements for the new system,
reusing as much of the old system as feasible.
➢ It refers to a 3-stages maintenance model that analyzes an existing system, characterizes a
requested modification, then redesign and implement it.
2. (T/F) Reuse from old system may be carried out at any phase (i.e., the requirements, the
design, the code or the test data) in the iterative enhancement model.
3. (T/F) In the full reuse model, all old components are directly modified and integrated into the
new system.
2. Mention (in points) the main phases of the change mini cycle model.
30

You might also like