Professional Documents
Culture Documents
By
Zubair Ahmed
Email: zubairzbr222@gmail.com
Course Whatsapp group: BS(SE 7th ) Software Re-Engineering
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.
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.
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.
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.
Software Evolution
End of Lecture