Software Evolution Flashcards
What is implementation in terms of evolution?
Moving from an old system, to a new system.
Stop using the old system and working in the old way.
Migrate data to the new system.
Start using the new system and work in the new way.
Describe some changeover methods
Direct cutover: Old system switches to the new system. Both systems are not running at the same time.
Parallel running: Both systems run for a time, until old system is stopped.
Phased: New system is broken into smaller modules which are introduced gradually and runs in parallel to the old system until all modules are added.
Pilot: New system is rolled out in specific areas/regions until all regions have the new system. Usually implemented in large systems that span many departments/locations/countries.
List benefits of buying application software
Ease of use Compatibility Data conversion Product support Support Cost Reputation
What are legacy systems?
Older systems that rely on languages and technology that are no longer used for new systems development. May be dependent on older hardware, such as mainframe computers and may have associate legacy processes and procedures.
List some types of maintenance
Fault repairs: Fix bugs and correct deficiencies in the way the system meets its requirements.
Environmental adaptation: Adapting software to run in a different operating environment.
New/changed functionality: Modifying a system to satisfy new requirements.
What is refactoring?
The process of making improvements to a program to slow down degradation through change. Preventative maintenance that reduces the problems of future change.
Could involve changing a program’s structure to reduce complexity or make it easier to understand.
When refactoring you should not add functionality.
List some risks when replacing a system
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 or over budget.
Why might system replacement be costly?
If there is no consistent programming style.
If there is use of obsolete programming languages.
If there is inadequate system documentation.
When there is system structure degradation.
When the code is hard to understand.
Where there are data errors, duplication, and inconsistency.