1/7
Looks like no tags are added yet.
Name  | Mastery  | Learn  | Test  | Matching  | Spaced  | 
|---|
No study sessions yet.
program evolution dynamics
useful systems keep changing, and complexity grows unless teams refactor and re-architect deliberately
software maintainance
delivers corrective, adaptive, perfective and preventive changes.
dominates lifecycle costs
complexity and process
track complexity and process metrics, like change frequency lead time and defects to forecast risk, target refactoring and keep evolution predictable
evolution processes
effevtive evo process triages requests, perfoms impact analysis implements changes, runs runs regression tests etc.
software change
inevitable
new requirements emerge, business environment changes, errors need repair, new equipment
key problem for orgs: implementing and managing chage to existing software systems.
importance of evolution
software are investments, need to maintain value by changing and updating when needed. consumes the most of the budget
lehman’s laws
continuing change: real world programs must change or they will become obselete.
increasing complexity: as programs evolve, structure becomes more complex. more resources needed to preserve and simplify it.
large program evolution: self-regulating. system attributes like size, time btween releases, and number of errors is constant for each system release.
organizational stability: rate of development is constant and independent of resources devoted to development
conservation of familiarity: incremental change in each release should be constant. no big changes to the system in one release.
continuing growth: increasing functionality offered each release for user satisfaction.
these laws are generally applicable to large tailored systems.
software maitainance