Software Evaluation Maintenance 5
Software Evaluation Maintenance 5
and Maintenance
Lecture 3
Evolution and Maintenance Models
1
Subject Code: SWE3053
Bachelor of Software Engineering (Hons)
Lecturer: Dr. Muhammed Basheer Jasser
Outline of the Lecture
2
3.1 General Idea
3.2 Reuse Oriented Model
3.3 The Staged Model for CSS
3.4 The Staged Model for FLOSS
3.5 Change Mini-Cycle Model
3.6 IEEE/EIA 1219 Maintenance Process
3.7 ISO/IEC 14764 Maintenance Process
3.8 Change Request Workflow
3.1 General Idea
3 One traditional software development life cycle (SDLC) is shown in
Figure, which comprises two discrete phases, namely:
development and
maintenance
Maintenance approaching two-thirds of the product life-span.
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.
Therefore, Software maintenance should have its own Software Maintenance Life
Cycle (SMLC) model as it involves many unique activities.
3.2 Reuse Oriented Models
5
One obtains a new version of an old system by modifying one or several components of
the old system and possibly adding new components.
As a consequence, the new system is likely to reuse many components of the old system
Based on this concept, three process models for maintenance have been proposed by
Basili:
Iteration implies that a process is basically cyclic, thereby meaning that the
activities of the process are repeatedly executed in a structured manner.
It has been shown that maintainability of systems degrade faster with the quick fix
model.
In addition, the iterative enhancement model requires more efforts from organizations
to perform maintenance modifications compared to the quick fix model.
3.2 Reuse Oriented Models (Full Reuse Model)
10 The main assumption in this model is the availability of a repository of artifacts describing
the earlier versions of the systems.
In the full reuse model, reuse is explicit and the following activities are performed:
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.
Their model divides the lifespan of a typical system into five stages:
Initial development –
The first delivered version is produced.
Knowledge about the system is fresh and constantly changing.
In fact, change is the rule rather than the exception. Eventually, an architecture
emerge and stabilizes.
Evolution –
Changes are performed to: add functionalities to meet user expectations, adapt to
new environment, etc..
Simple changes are easily performed and more major changes are possible too,
although the cost and risk are now greater than in the previous stage.
Knowledge about the system is still good, although many of the original developers
will have moved on.
For many systems, most of its lifespan is spent in this phase.
3.3 The Staged Model for CSS
Their model divides the lifespan of a typical system into five stages:
12
Servicing –
The system is no longer a key asset for the developers, who concentrate mainly
on maintenance tasks rather than architectural or functional change.
Knowledge about the system has lessened
The effects of change have become harder to predict. The costs and risks of
change have increased significantly.
Phase out –
It has been decided to replace or eliminate the system entirely, either because
the costs of maintaining the old system have become prohibitive or because
there is a newer solution waiting in the pipeline.
An exit strategy is devised and implemented, often involving techniques such as
wrapping and data migration. Ultimately, the system is shut down.
Closedown.
The software is withdrawn from the market, and customers are directed to
migrate to a replacement.
3.3 The Staged Model for CSS
13
Figure 3.5 The simple staged model for the CSS life cycle ©IEEE, 2000
3.3 The Versioned Staged Model for CSS
It has essentially the same stages as found in Simple Staged Model, but separate
14
evolution tracks from the initial development are found in the Versioned Staged Model.
The evolution process is the backbone of the model. Each evolution track includes
servicing, phaseout, and closedown
At certain time frames, a version of the software is completed and released to the
customers.
The evolution of the software does not stop at that point; rather, it continues and
eventually produces the next version.
Figure 3.6 The versioned staged model for the CSS life cycle ©IEEE, 2000
3.4 The Staged Model for FLOSS (Free Libre Open Source Software)
Three major differences are identified between CSS systems and FLOSS systems.
16
First Difference: The availability of releases
(CSS systems are available to the customers in a running condition after
having been tested enough)
On the other hand, a FLOSS system is posted on the versioning system
repositories much before the official release.
In Figure 3.7, the rectangle with the label “Initial development” has been
visually highlighted because it can be the only initial development stage in
the evolution of FLOSS systems. In other words, it does not have any
evolution track for FLOSS system.
Second Difference: the transition from the evolution to the servicing stage. Figure 3.7 The staged model for
FLOSS system ©ACM, 2007
Based on empirical studies with some systems that were analyzed, after a
transition from Evolution to Servicing, a new period of evolution was
observed. This possibility is depicted in Figure as a broken arc from the
Servicing stage to the Evolution stage.
Third Difference: a possibility of a transition from phaseout stage to evolution
stage for FLOSS systems
In general, the active developers of FLOSS systems get frequently
replaced by new developers.
Therefore, the dashed line in Figure exhibits this possibility of a transition
from Phaseout stage to Evolution stage.
3.5 Change Mini-Cycle Model
• Software
17 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.