0% found this document useful (0 votes)
3 views

Software Evolution

The document discusses software evolution, highlighting key concepts, laws of evolution proposed by Lehman, and the importance of managing software change. It emphasizes that software must continuously adapt to meet new requirements and maintain quality, with a significant portion of IT budgets dedicated to evolution costs. Additionally, it explores the evolution processes, including the distinction between evolution and servicing, and provides case studies on open-source software evolution.

Uploaded by

hghauri30
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
3 views

Software Evolution

The document discusses software evolution, highlighting key concepts, laws of evolution proposed by Lehman, and the importance of managing software change. It emphasizes that software must continuously adapt to meet new requirements and maintain quality, with a significant portion of IT budgets dedicated to evolution costs. Additionally, it explores the evolution processes, including the distinction between evolution and servicing, and provides case studies on open-source software evolution.

Uploaded by

hghauri30
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 31

Software Reengineering

By

Dr. Junaid Akram


Assistant Professor, Department of Computer Science COMSATS (Lahore)

1
Software Evolution
Concepts and Preliminaries

2
J.A COMSATS Uni
Software Evolution
• In 1965, Mark Halpern used the term evolution to define the dynamic growth of software.
• The term evolution in relation to application systems took gradually in the 1970s.
• Lehman and his collaborators from IBM are generally credited with pioneering the research field
of software evolution.
• Lehman formulated a set of observations that he called laws of evolution.
• These laws are the results of studies of the evolution of large-scale proprietary or closed source
system (CSS).
• The laws concern what Lehman called E-type systems:
• “Monolithic systems produced by a team within an organization that solve a real-world
problem and have human users.”

3
Software Evolution: Laws of Lehman
Continuing change (1st) – A system will become progressively less satisfying to its user
over time, unless it is continually adapted to meet new needs.

Increasing complexity (2nd) – A system will become progressively more complex,


unless work is done to explicitly reduce the complexity.

Self-regulation (3rd) – The process of software evolution is self regulating with respect
to the distributions of the products and process artifacts that are produced.

Conservation of organizational stability (4th) – The average effective global activity rate
on an evolving system does not change over time, that is the average amount of work
that goes into each release is about the same.
4
Software Evolution: Laws of Lehman
Conservation of familiarity (5th) – The amount of new content in each successive release
of a system tends to stay constant or decrease over time.

Continuing growth (6th) – The amount of functionality in a system will increase over time,
in order to please its users.

Declining quality (7th) – A system will be perceived as losing quality over time, unless its
design is carefully maintained and adapted to new operational constraints.

Feedback system (8th) – Successfully evolving a software system requires recognition


that the development process is a multi-loop, multi-agent, multi-level feedback system.

5
J.A COMSATS Uni
Software Change

• Software change is inevitable:


• New requirements emerge when the software is used
• The business environment changes
• Errors must be repaired
• New computers and equipment are added to the system
• The performance or reliability of the system may have to be improved

• A key problem for all organizations is implementing and managing


change to their existing software systems

6
Software Change
• Software development does not stop when a system is delivered but
continues throughout the lifetime of the system.
• After a system has been deployed, it inevitably has to change if it is to
remain useful.
• Business changes and changes to user expectations generate new
requirements for the existing software.
• Parts of the software may have to be modified to correct errors that are
found in operation,
• to adapt it for changes to its hardware and software platform,
• to improve its performance or other non-functional characteristics.

7
Change identification and Evolution Processes

8
J.A COMSATS Uni
Importance of Evolution
• Software evolution is important because organizations have invested large
amounts of money in their software and are now completely dependent on these
systems.
• Their systems are critical business assets and they have to invest in system change
to maintain the value of these assets.
• Consequently, most large companies spend more on maintaining existing systems
than on new systems development.
• Therefore, new releases of the systems, incorporating changes, and updates, are
usually created at regular intervals.

9
Importance of Evolution

• Based on an informal industry poll, Erlikh (2000) suggests that 85–90% of


organizational software costs are evolution costs.
• Other surveys suggest that about two-thirds of software costs are
evolution costs.
• For sure, the costs of software change are a large part of the IT budget for
all companies.
• Software cost a lot of money so a company has to use a software system
for many years to get a return on its investment.

10
Spiral Model of
Development
and Evolution

J.A COMSATS Uni 11


Spiral Model of Development and Evolution

• This model of software evolution implies that a single organization is


responsible for both the initial software development and the evolution of
the software.
• Most packaged software products are developed using this approach.
• For custom software, a different approach is commonly used.
• A software company develops software for a customer and the customer’s
take over the system. They are responsible for software evolution.

12
Spiral Model of Development and Evolution

• Alternatively, the software customer might issue a separate contract to a


different company for system support and evolution.
• In this case, there are likely to be discontinuities in the spiral process.
• Requirements and design documents may not be passed from one company
to another.
• Companies may merge or reorganize and inherit software from other
companies, and then find that this has to be changed.
• Maintenance involves extra process activities, such as program
understanding, in addition to the normal activities of software development.

13
Alternative View
• Rajlich and Bennett (2000) proposed an alternative view of the software
evolution life cycle.

• In this model, they distinguish between Evolution and Servicing.


• Evolution is the phase in which significant changes to the software architecture and
functionality may be made.

• During servicing, the only changes that are made are relatively small, essential changes.

14
J.A COMSATS Uni
Evolution and Servicing

• 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
15
Evolution Processes

• Software evolution processes depend on


ØThe type of software being maintained
ØThe development processes used
ØThe skills and experience of the people involved

• Proposals for change are the driver for system evolution


ØShould be linked with components that are affected by the change, thus allowing the
cost and impact of the change to be estimated

• Change identification and evolution continues throughout the system lifetime

16
Software Evolution Process Model

17
J.A COMSATS Uni
Evolution Process Activities… Cont..

• The cost and impact of these changes are assessed to see how much of the
system is affected by the change and how much it cost to implement the change.
• If the proposed changes are accepted, a new release of the system is planned.
• During release planning, all proposed changes (fault repair, adaptation, and new
functionality) are considered.
• A decision is then made on which changes to implement in the next version of the
system.
• The changes are implemented and validated, and a new version of the system is
released.
• The process then iterates with a new set of changes proposed for the next release.
18
J.A COMSATS Uni
Architectural Evolution

19
Evolution Change implementation

• Iteration of the development process where the revisions to the system are
designed, implemented and tested

• 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

• System components are redesigned and implemented and the system is retested. If
appropriate, prototyping of the proposed changes may be carried out as part of the
change analysis process.

20
Software Configuration Management (Evolution)
implementation

21
J.A COMSATS Uni
Case Study
Evolution in
Opensource Software
22
Free and Open Source Software (FOSS)!

• Over the past 2–3 decades, there has been a massive shift in the way software is
being reengineered and maintained
• The major players responsible for this paradigm shift is open source.
• Generally, open source refers to a computer program in which the source code is
available to the general public for use or modification from its original design.
• Open-source code is meant to be a collaborative effort where programmers
improve upon the source code and share the changes within the community.
• This paradigm shift has led to an increase in technological advancement
• Linux, LibreOffice, MySQL, Firefox, GIMP, and Blender are some examples of free
and open-source software.

23
Linux Kernel Evolution: Case study 1

Source: https://ics.uci.edu/~wscacchi/Papers/New/Understanding-OSS-Evolution.pdf
24
J.A COMSATS Uni
Patterns of Software System Evolution

Patterns of software system


evolution forking and joining
across releases (nodes in each
graph) for 3 different F/OSS
systems [Source: Nakakoji,
Yamamoto, et al., 2002]

Source: https://ics.uci.edu/~wscacchi/Papers/New/Understanding-OSS-Evolution.pdf 25
Social Network of FOSS developers

A social network of
F/OSS developers that
interlinks five different
projects through two
linchpin developers,
dev[46] and dev[58]
[Source: Madey, Freeh,
and Tynan 2002].

26
Source: https://ics.uci.edu/~wscacchi/Papers/New/Understanding-OSS-Evolution.pdf
A case study of medical image software evolution:
Case study 2 :3D Slicer
• 3D Slicer was born as a master’s thesis project between the Surgical
Planning Laboratory at and the Massachusetts Institute of Technology (MIT)
Artificial Intelligence Laboratory, US, in 1998.
• 3D Slicer source code is released under the “3D Slicer Software License”, a
open-source license
ØSlicer1 and Slicer2 source codes were located in a Concurrent Versions System (CVS)
repository.
ØSlicer3 source codes were located in a Subversion (SVN) repository1.
ØSlicer4 source codes are located in a web2, while the developing version can be found
in its official GitHub repository3.

27
J.A COMSATS Uni
For this study, the report
examined the 21 major and
minor stable releases s

https://www.sciencedirect.com/science/article/pii/S2405844024024393 28
SPM (Statistical Parametric Mapping software)

• The (SPM) was born at the MRC Cyclotron


Unit, at the Hammersmith Hospital, London

• SPM is available for download for free for


macOS, Windows, and Linux operating
systems

• 18 major and minor stable releases from


2000 to 2020

https://www.sciencedirect.com/science/article/pii/S2405844024024393 29
Source Code Evolution

https://www.sciencedirect.com/science/article/pii/S2405844024024393 30
Thanks for your attention!

Any Question?

Email me on : [email protected] 31

You might also like