0% found this document useful (0 votes)
2 views35 pages

Unit 9 - Software Evolution

The document discusses software evolution, emphasizing the inevitability of software change due to emerging requirements, error repairs, and environmental adaptations. It outlines various stages of software evolution, including operational use, servicing, and phase-out, as well as the importance of maintenance and re-engineering. Additionally, it highlights the role of agile methods in facilitating seamless transitions from development to evolution and presents Lehman's laws that govern program evolution dynamics.

Uploaded by

sunilstha68
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)
2 views35 pages

Unit 9 - Software Evolution

The document discusses software evolution, emphasizing the inevitability of software change due to emerging requirements, error repairs, and environmental adaptations. It outlines various stages of software evolution, including operational use, servicing, and phase-out, as well as the importance of maintenance and re-engineering. Additionally, it highlights the role of agile methods in facilitating seamless transitions from development to evolution and presents Lehman's laws that govern program evolution dynamics.

Uploaded by

sunilstha68
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/ 35

Software Evolution

1
Review {Testing}

 Validation & Verification


 Inspection & Testing
 Stages of Testing
 Development Testing: Unit, Component and System Testing
 Release Testing: Requirements testing, Performance Testing
 User Testing: Alpha, Beta and Acceptance Testing
 Test Driven Development

2
3
Evolution

Windows 3.11 Windows 98 Windows XP

Windows 10 4
Software change

 Software change is inevitable


 New requirements emerge when the software is used;
 Errors must be repaired;
 New computers and equipment is added to the system;
 The performance or reliability of the system may have to be improved.
 Systems are tightly coupled with their environment. When a system is installed
in an environment it changes that environment and therefore changes the
system requirements.
 Systems MUST be changed if they are to remain useful in an environment.
 A key problem for all organizations is implementing and managing change to
their existing software systems.

5
O
r
g Importance of evolution
a
n
i
z
a
t
i
o
n
s

h
a
v
e

h 6
u
A spiral model of development and evolution

7
Stages of Software

8
Stages of Software

 Evolution
 The stage in a software system’s life cycle where it is in operational use and is evolving
as new requirements are proposed and implemented in the system.
 Servicing
 At this stage, the software remains useful but the only changes made are those required
to keep it operational i.e. bug fixes and changes to reflect changes in the software’s
environment. No new functionality is added.
 Phase-out
 The software may still be used but no further changes are made to it.

9
S
o
f Evolution processes
t
w
a
r
e

e
v
o
l
u
t
i
o
n 10
Change identification and evolution processes

11
The software evolution process

12
Change implementation

13
Change implementation

 Iteration of the development process where the revisions to the system are
designed, implemented and tested.
 The first stage of change implementation may involve program
understanding, especially if the original system developers are not
responsible for the change implementation.
 During the program understanding phase, you have to understand how the
program is structured, how it delivers functionality and how the proposed
change might affect the program.

14
U
r
g Urgent change requests
e
n
t

c
h
a
n
g
e
s

m
a
y 15
The emergency repair process

16
Agile methods and evolution

 Agile methods are based on incremental development so the transition from


development to evolution is a seamless one.
 Evolution is simply a continuation of the development process based on frequent system
releases.
 Changes may be expressed as additional user stories.

17
P
r
o Program evolution dynamics
g
r
a
m

e
v
o
l
u
t
i
o
n

d
y 18
n
Lehman’s laws
Law Description

A program that is used in a real-world environment must necessarily


Continuing change change, or else become progressively less useful in that environment.

As an evolving program changes, its structure tends to become more


Increasing complexity complex. Extra resources must be devoted to preserving and simplifying the
structure.

Program evolution is a self-regulating process. System attributes such as


Large program evolution size, time between releases, and the number of reported errors is
approximately invariant for each system release.

Organizational stability Over a program’s lifetime, its rate of development is approximately constant
and independent of the resources devoted to system development.

19
Lehman’s laws
Law Description

Over the lifetime of a system, the incremental change in each


Conservation of familiarity
release is approximately constant.

The functionality offered by systems has to continually increase to


Continuing growth
maintain user satisfaction.

Declining quality The quality of systems will decline unless they are modified to
reflect changes in their operational environment.

Evolution processes incorporate multi-agent, multi-loop feedback


Feedback system systems and you have to treat them as feedback systems to
achieve significant product improvement.

20
M
o
d Software maintenance
i
f
y
i
n
g

p
r
o
g
r
a 21
m
M
a
i Types of maintenance
n
t
e
n
a
n
c
e

t
o

r
e
p 22
a
U
s
u Maintenance costs
a
l
l
y

g
r
e
a
t
e
r

t
h 23
a
Maintenance cost factors

 Team stability
 Maintenance costs are reduced if the same staff are involved with them for some time.
 Contractual responsibility
 The developers of a system may have no contractual responsibility for maintenance so
there is no incentive to design for future change.
 Staff skills
 Maintenance staff are often inexperienced and have limited domain knowledge.
 Program age and structure
 As programs age, their structure is degraded and they become harder to understand and
change.

24
R
e
- System re-engineering
s
t
r
u
c
t
u
r
i
n
g

o
r
25
r
R
e
d Advantages of reengineering
u
c
e
d

r
i
s
k
 T
h
e
r
e

i 26
s
S
o
u Reengineering process activities
r
c
e

c
o
d
e

t
r
a
n
s
l 27
a
T
h
e Reengineering cost factors

q
u
a
l
i
t
y

o
f

t
h
e

s 28
o
Preventative maintenance by refactoring

 Refactoring is the process of making improvements to a program to slow


down degradation through change.
 You can think of refactoring as ‘preventative maintenance’ that reduces the
problems of future change.
 Refactoring involves modifying a program to improve its structure, reduce its
complexity or make it easier to understand.
 When you refactor a program, you should not add functionality but rather
concentrate on program improvement.

29
Refactoring and reengineering

 Re-engineering takes place after a system has been maintained for some
time and maintenance costs are increasing.
 Refactoring is a continuous process of improvement throughout the
development and evolution process. It is intended to avoid the structure and
code degradation that increases the costs and difficulties of maintaining a
system.

30
O
r
g Legacy system management
a
n
i
s
a
t
i
o
n
s

t
h
a
t 31
L
o
w Legacy system categories

q
u
a
l
i
t
y
,

l
o
w

b 32
u
A
s
s Business value assessment
e
s
s
m
e
n
t

s
h
o
u
l
d
33
t
Issues in business value assessment

 The use of the system


 If systems are only used occasionally or by a small number of people, they may have a
low business value.
 The business processes that are supported
 A system may have a low business value if it forces the use of inefficient business
processes.
 System dependability
 If a system is not dependable and the problems directly affect business customers, the
system has a low business value.
 The system outputs
 If the business depends on system outputs, then the system has a high business value.

34
B
u
s System quality assessment
i
n
e
s
s

p
r
o
c
e
s
s

a 35
s

You might also like