Ch. 9: SW Evolution, Reengineering and Refactoring Flashcards
What is the majority of the software budget in large companies devoted to ___ rather than developing new software?
Changing/evolving existing software
What kind of testing is valuable when changes are made to a system?
Automated regression testing
Changes may be expressed as additional ___
user stories
Agile methods are based on __ development
incremental
What are legacy systems?
Older systems that rely on languages and technology that are no longer used for new systems development
Legacy software may be dependent on __
older hardware
Legacy systems are not just software systems but are __
broader socio-technical systems
What are the reasons why system replacement is risky?
- Lack of complete system specification
- Tight integration of system and business processes
- Undocumented business rules embedded in the legacy system
- New software development may be late and/or over budget
What are the legacy system layers?
- Business processes
- Application software
- Platform and infrastructure software
- Hardware
What is software maintenace?
Modifying a program after it has been put to use
What are the types of maintence?
- Fault repairs
- Environmental adaption
- Functionality addition and modification
What are fault repairs?
Changing a system to fix bugs/vulnerabilities and correct deficiencies in the way meets its requirements
What is environmental adaption?
Maintenance to adapt software to a different operating environment
What is functionality addition and modification?
Modifying the system to satisfy new requirements
What is software reengineering?
Restructuring or rewriting part or all of a legacy system without changing its functionality