Professional Documents
Culture Documents
SE351-Software Construction and Development: Semester 5
SE351-Software Construction and Development: Semester 5
Semester 5
2
Outline
Software Evolution
Background
Lehman’s Laws of Software Evolution
Why does Lehman call them “Laws”?
FEAST – A feedback system for software evolution
3
What is Software evolution?
Is largely based on the concept of the existence of positive and negative feedback systems
existing in the software environment
Examples of feedback systems:
Users
Management
Developers
Government
6
Definitions
P-type software
Definition: P-type systems might actually have a specification in terms of what
a 100% correct solution would be. There might even be a way of theoretically
reaching that perfect solution, but in practice it would be utterly infeasible to
actually implement that solution.
So a good example of such a system would for example be chess if you want to
develop an algorithm that plays chess perfectly. It is theoretically possible to
construct the perfect solution, but in practice if you would run that solution the
combinatorial complexity is way too high. So it is intractable.
6
Definitions
This law exists because as the E-type software is adapted to the changing operational
environment, there is not only an increasing number of interactions, but an increasing number of
interactions that were adds-on to the original design of the system. If effort is expended to
combat this (through re-engineering and other techniques) this means less effort for new
functionality.
9
The Lehman’s Laws of Software Evolution
Self Regulation: The program evolution process is self regulating with close to normal
distribution of measures of product and process attributes.
From Lehman’s paper: “Checks and balances will have been established by…management to
ensure that operational rules are followed and organizational goals…are met…[This is] one
example of feedback driven growth and stabilization mechanisms…[They] establish a
disciplined dynamics whose parameters are, in least in part normally distributed.”
11
The Lehman’s Laws of Software Evolution
Conservation of Familiarity: During the active life of an evolving program, the content of
successive releases is statistically invariant.
From Lehman’s paper: “One of the factors that determines the progress of a software
development is the familiarity of all involved with its goals. The more changes & additions [in
a] particular release, the more difficult is for all concerned to be aware, to understand and to
appreciate what is required of them…The larger the work package the more challenging mastery
of the matter to be acquired.”
13
The Lehman’s Laws of Software Evolution
Hypothesis As complex feedback systems E-type software processes evolve strong system
dynamics and the global stability tendency of other feedback systems
Supporting observation
Processes adopted, applied and improved in industry, will naturally evolve positive feedback to
drive organizational growth and negative feedback controls - checks and balances.
20
FEAST –
A feedback system for software evolution 3/3
Preliminary Results
Were for one particular system
Suggest that the system dynamics is so strong that its parameters are fixed quite early in the life
cycle of the evolving system
Reference