You are on page 1of 17

BS (Software Engineering) 7th Semester

Subject: Software Re-Engineering


Lecture #2

By
Zubair Ahmed
Email: zubairzbr222@gmail.com
Course Whatsapp group: BS(SE 7th ) Software Re-Engineering

Contact via Whatsapp, Email

Balochistan University of Engineering and Technology Khuzdar


Reflection
 An overview of Software Re-Engineering
 Need for Software Re-Engineering
 How is Software Re-Engineering Done?
 Key Aspects of Software Re-Engineering
Outline
 Software Evolution
 Necessity of Software Evolution
 Laws used for Software Evolution
 Processes of Software Evolution
Software Evolution
The process of software evolution involves analyzing changes, planning releases,
implementing systems, and delivering them to customers.

 The cost and impact of these changes are accessed to see how much the system is
affected by the change and how much it might cost to implement the change.

 If the proposed changes are accepted, a new release of the software system is
planned.

 During release planning, all the proposed changes (fault repair, adaptation, and new
functionality) are considered.

 A design is then made on which changes to implement in the next version of the
system.

 The process of change implementation is an iteration of the development process


where the revisions to the system are designed, implemented, and tested.
Necessity of Software Evolution
Software evaluation is necessary just because of the following reasons:

Change in requirement with time:


With time, the organization’s needs and modus Operandi of working could
substantially be changed so in this frequently changing time the
tools(software) that they are using need to change to maximize the
performance.
Necessity of Software Evolution

Environment change:
As the working environment changes the things (tools) that enable us to
work in that environment also changes proportionally same happens in
the software world as the working environment changes then, the
organizations require reintroduction of old software with updated features
and functionality to adapt the new environment.
Necessity of Software Evolution
Errors and bugs: As the age of the deployed software within an
organization increases their preciseness or impeccability decrease and the
efficiency to bear the increasing complexity workload also continually
degrades.

So, in that case, it becomes necessary to avoid use of obsolete and aged
software.

All such obsolete Pieces of software need to undergo the evolution


process in order to become robust as per the workload complexity of the
current environment.
Necessity of Software Evolution

Security risks: Using outdated software within an organization may lead


you to at the verge of various software-based cyber attacks and could
expose your confidential data illegally associated with the software that is
in use.

So, it becomes necessary to avoid such security breaches through regular


assessment of the security patches/modules are used within the software.

If the software isn’t robust enough to bear the current occurring Cyber
attacks so it must be changed (updated).
Necessity of Software Evolution
For having new functionality and features:
In order to increase the performance and fast data processing and other
functionalities, an organization need to continuously evolute the software
throughout its life cycle so that stakeholders & clients of the product could
work efficiently.
Lehman’s Laws used for Software
Evolution
Lehman and his collaborators formulated some observations and
they introduced them as laws of evolution.
Laws used for Software Evolution
Law Description
Continuing change Unless a system is continually modified to satisfy emerging needs of
users, the system becomes increasingly more useful.

Increasing Unless additional work is done to explicitly reduce the complexity of a


complexity system, the system will become increasingly more complex due to
maintenance-related changes.

Self-regulation The evolution process is self-regulating in the sense that the measures of
products and processes, that are produced during the evolution, follow
close to normal distributions.

Conservation of The average effective global activity rate on an evolving system is almost
organizational constant throughout the lifetime of the system. In other words, the
stability. average amount of additional effort needed to produce a new release is
almost the same.
Law Description
Conservation of As a system evolves all kinds of personnel, namely, developers and users,
familiarity for example, must gain a desired level of understanding of the system’s
content and behavior to realize satisfactory evolution. A large incremental
growth in a release reduces that understanding. Therefore, the average
incremental growth in an evolving system remains almost the same.

Continuing growth As time passes, the functional content of a system is continually increased
to satisfy user needs.

Declining quality Unless the design of a system is diligently fine-tuned and adapted to new
operational environments, the system’s qualities will be perceived as
declining over the lifetime of the system.

Feedback System The system’s evolution process involves multi-loop, multi agent, multi-
level feedback among different kinds of activities. Developers must
recognize those complex interactions in order to continually evolve an
existing system to deliver more functionalities and higher levels of
qualities.
Processes of Software Evolution
The process of developing a software product using software
engineering principles and methods is referred to as software
evolution.

This includes the initial development of software and its maintenance


and updates, till desired software product is developed, which satisfies
the expected requirements.
Processes of Software Evolution
 Evolution starts from the requirement gathering process.

 After which developers create a prototype of the intended software


and show it to the users to get their feedback at the early stage of
software product development.

 The users suggest changes, on which several consecutive updates


and maintenance keep on changing too.

 This process changes to the original software, till the desired


software is accomplished.
Processes of Software Evolution
 Even after the user has desired software in hand, the advancing
technology and the changing requirements force the software
product to change accordingly.

 Re-creating software from scratch and to go one-on-one with


requirement is not feasible.

 The only feasible and economical solution is to update the existing


software so that it matches the latest requirements.
Processes of Software Evolution

Software Evolution
End of Lecture

You might also like