FIT2024 Lecture Notes - Lecture 9: Legacy System, Programming Style, Regression Testing
![](https://new-preview-html.oneclass.com/eGYVy4kJOE1BNEbxqX7KQ3MD7ngbxPrW/bg1.png)
Week 9 - Software Evolution & Software
Maintenance
Software Evolution
● A continuous change from a lesser, simpler , or worse state to a higher or better state
● The system changes relate to changing business and user needs
● The system evolves throughout its lifetime through a seamless process
● The process is spiral process involving requirements, design, and implementation
throughout the lifetime of the system
Software Maintenance
● Consists of the activities required to keep a software system operational and responsive
after it is accepted and placed into production
● Need to have program understanding
● Legacy software
○ Old software
○ Why does software have to change?
■ To adapt to meet new demands of new computing environments or
technology
■ To be enhance to implement new business requirements
■ To be extended to make it more usable with modern systems or
databases
● Problems
○ Most computer systems are difficult and expensive to maintain
○ Software changes are often poorly designed and implemented
○ Repair and enhancement of software often injects new bugs that must later be
repaired
● Factors affecting maintenance costs
○ Programming style
■ The way in which a program is written
○ Program Validation and Testing
■ The more time and effort spent on design and validation and program
testing, the fewer errors and the less need for corrective maintenance
○ Age of the System
■ The older the system, the more likely that its structure has degraded and
the harder maintenance will be
■ Attract staff who know the old languages/databases/operating system
becomes harder and more expensive
Document Summary
A continuous change from a lesser, simpler , or worse state to a higher or better state. The system changes relate to changing business and user needs. The system evolves throughout its lifetime through a seamless process. The process is spiral process involving requirements, design, and implementation throughout the lifetime of the system. Consists of the activities required to keep a software system operational and responsive after it is accepted and placed into production. To adapt to meet new demands of new computing environments or technology. To be enhance to implement new business requirements. To be extended to make it more usable with modern systems or databases. Most computer systems are difficult and expensive to maintain. Software changes are often poorly designed and implemented. Repair and enhancement of software often injects new bugs that must later be repaired. The way in which a program is written.