Maintenance and Evolution Flashcards
Describe how Canning’s iceberg diagram represents the cost of software engineering
The tip of the iceberg represents the acquisition cost - research, design, testing, etc. Below the surface lies many other costs that may not be accounted for:
- operation cost
- product distribution cost
- maintenance cost
- training cost
- retirement and disposal cost
and others
Why is change in software inevitable?
Software doesn’t wear out like physical objects but it still needs to be
- fixed (corrective maintenance)
- adapted to changing need (adaptive maintenance)
- improved in performance (perfective maintenance)
- improved by fixing bugs (preventative maintenance)
List the 3 R’s of SW evolution (3 R’s)
- Reverse engineering - analyze an existing system
- Refactoring - cleaning up code w/o modifying functionality
- Reengineering - creating a maintainable system out of an unmaintainable one (at a larger scale than refactoring)
List the 3 laws of science that the 3 R’s of SW evolution are based off of
- Reductionism
- Repeatability
- Refutation
Explain what a “legacy system” is
A system that is hard to evolve, for any reason
Define “software evolution”
Software evolution refers to the process of developing software initially, then repeatedly updating it for various reasons.
Discuss the impact of Moore’s law on software
Software tends to follow the exponential expansion of hardware, but developer’s capabilities do not. Creating new software paradigms yields discontinuous jumps in productivity, but at the expense of existing code bases.
Describe what an S type program is
S (specified) type program - all requirements that are important to stakeholders are formally and completely defined. Correctness of the program w.r.t its specification are the only criterion of the acceptability of the program.
Example - calculation of the LCM of two integers
Describe what a P type program is
P (Problem) type program - based on a practical abstraction of the problem instead of relying on completely defined specification
Example - a program that plays chess
Describe what an E type program is
E (Evolving) type program - one that is embedded in the real world and changes as the world does. These programs mechanize a human activity and make simplifying assumptions. The acceptance of an E type program depends on the stakeholders’ opinion and judgment of the solution.
What is meant by Lehman’s first law - continuing change
An E type program must continually be adapted, or else it becomes progressively less satisfactory.
What is meant by Lehman’s second law - Increasing complexity
As an E type program evolves, its complexity increases unless work is done to maintain or reduce it.
What is meant by Lehman’s third law - Self Regulation
The evolution process of an E type program is self regulating.
What is meant by Lehman’s fourth law - organizational stability
The average effective global activity rate in an evolving E program is invariant over the program’s lifetime
What is meant by Lehman’s 5th law - Conservation of familiarity
The average content of successive releases is constant during the life cycle of an E type program