Software Maintenance Flashcards
Why is software Change inevitable
New requirements emerge
Errors must be fixed
New computers and equipment are added
performance or reliability of software may need improvement
What is software evolution
Software is still in operational use and evolves as new requirements are added
What is software servicing
Software is in use but only changes are made to keep it operational, eg fixing bugs
no new functionality is added
What is software phase out
Software is no longer changed
What does software evolution depend on
Type of software
Development process used
Skills and experience of people involved
What are the 4 steps in the change identification and evolution process
Change identification process
Change proposals
Software evolution process
New system
What are the steps to change implementation in software maintenance
Processed changes
Requirement analysis
requirement updating
Software development
When can handover problems arise
When a software development team uses an agile approach and the evaluation team is not familiar with this
What are legacy systems
They rely on older languages and technology
What are some components of a legacy system
Hardware, Support software, Application Software, Application Data, Business processes, Business policies and rules
Why is legacy system replacement risky
Lack of complete system specification
Tight integration of system and business processes
Undocumented business rules embedded
New software may be late or over budget
Why are legacy systems expensive to change
No consistent programming style Obsolete languages which very few people can read Lack of documentation Poor structure Data errors
What are methods of managing legacy systems
Scrap the system and modify process so it is not required
Continue maintaining system
Transform the system by re-arranging
Replace with a new system
Define system Maintenance
Modifying a program after it has been put into use
How is the software code usually modified
By modifying existing components and adding new components without majorly changing the software architecture