Podcast
Questions and Answers
What is the primary purpose of software evolution?
What is the primary purpose of software evolution?
- To prevent any changes to the software
- To limit software to a single environment
- To update software for new functionalities (correct)
- To delete all existing features
Software maintenance only focuses on adding new features to the system.
Software maintenance only focuses on adding new features to the system.
False (B)
Name one type of maintenance that involves correcting deficiencies in software.
Name one type of maintenance that involves correcting deficiencies in software.
Maintenance to repair software faults
Software maintenance includes changing a system to operate in a different ______.
Software maintenance includes changing a system to operate in a different ______.
Which phase of the software maintenance process occurs last?
Which phase of the software maintenance process occurs last?
Match the types of maintenance with their descriptions:
Match the types of maintenance with their descriptions:
What is one of the fundamental activities in the software evolution process?
What is one of the fundamental activities in the software evolution process?
Maintenance costs are a negligible aspect of software maintenance.
Maintenance costs are a negligible aspect of software maintenance.
How much can maintenance costs exceed development costs?
How much can maintenance costs exceed development costs?
Maintenance costs increase when software is maintained.
Maintenance costs increase when software is maintained.
What is the main concern of maintenance prediction?
What is the main concern of maintenance prediction?
Software _________ is concerned with re-implementing legacy systems to improve maintainability.
Software _________ is concerned with re-implementing legacy systems to improve maintainability.
Which factor does NOT influence maintenance costs?
Which factor does NOT influence maintenance costs?
Experienced maintenance staff can reduce overall maintenance costs.
Experienced maintenance staff can reduce overall maintenance costs.
A primary issue with maintaining ageing software is high support costs associated with ________ and ________.
A primary issue with maintaining ageing software is high support costs associated with ________ and ________.
Match the following factors with their effects on maintenance costs:
Match the following factors with their effects on maintenance costs:
What is one advantage of software re-engineering?
What is one advantage of software re-engineering?
Software maintenance includes only fixing bugs.
Software maintenance includes only fixing bugs.
What are the three types of software maintenance?
What are the three types of software maintenance?
Software __________ is concerned with re-structuring and re-documenting software.
Software __________ is concerned with re-structuring and re-documenting software.
Match the following cost factors to their descriptions:
Match the following cost factors to their descriptions:
Which of the following is NOT a problem encountered during software maintenance?
Which of the following is NOT a problem encountered during software maintenance?
Re-engineering can help in migrating existing software to a new platform.
Re-engineering can help in migrating existing software to a new platform.
What can greatly influence the cost of re-engineering a software system?
What can greatly influence the cost of re-engineering a software system?
Flashcards
Software Evolution
Software Evolution
The process of developing software and then periodically updating it to add new features, remove obsolete functionalities, or fix issues.
Software Maintenance
Software Maintenance
The process of modifying existing software after it has been delivered to the customer.
Corrective Maintenance
Corrective Maintenance
Corrective maintenance aims to fix defects or bugs in the software that were not identified during the initial development phase.
Adaptive Maintenance
Adaptive Maintenance
Signup and view all the flashcards
Perfective Maintenance
Perfective Maintenance
Signup and view all the flashcards
Preventive Maintenance
Preventive Maintenance
Signup and view all the flashcards
Enhancement Maintenance
Enhancement Maintenance
Signup and view all the flashcards
Software Re-engineering
Software Re-engineering
Signup and view all the flashcards
Maintenance Costs
Maintenance Costs
Signup and view all the flashcards
Maintenance cost compared to Development cost
Maintenance cost compared to Development cost
Signup and view all the flashcards
Maintenance Cost Factors
Maintenance Cost Factors
Signup and view all the flashcards
Maintenance Prediction
Maintenance Prediction
Signup and view all the flashcards
What is Re-engineering?
What is Re-engineering?
Signup and view all the flashcards
Difference Between Re-engineering and New Software Development
Difference Between Re-engineering and New Software Development
Signup and view all the flashcards
Risk in New Software Development
Risk in New Software Development
Signup and view all the flashcards
Study Notes
Software Evolution
- Software evolution is the process of developing software initially, then updating it over time for various reasons.
- It involves adding new features, removing outdated functionalities, or adapting to changing circumstances.
- Key activities include change identification, proposal, analyzing changes, release planning, implementing the change, and releasing the updated system.
Software Maintenance
- Software maintenance is the general process of changing a system after it's delivered.
- This includes correcting errors, adapting it for new environments, upgrading functionality, and other tasks.
- There are three main types: corrective, adaptive, perfective, and preventive maintenance.
Problems During Maintenance
- Maintenance problems are significant factors
- Increasing maintenance costs as software continues to be modified
- Errors in the original software architecture
- Degraded software structures
- Lack of clear documentation
Types of Maintenance
- Corrective maintenance: Fixing bugs or errors in the software.
- Adaptive maintenance: Adapting the software to a changed environment (e.g., new hardware, operating system).
- Perfective maintenance: Enhancing the software's functionality or performance.
- Preventive maintenance: Improving the software's future maintainability (e.g., improving code structure, adding documentation).
Software Maintenance Process
- Phase 1: Determine the objective: Determining exactly what needs to be changed.
- Phase 2: Program understanding: Understanding the existing code and its relationship with other parts of the system.
- Phase 3: Proposal: Preparing a detailed plan for the change.
- Phase 4: Account for ripple effect: Consider potential unintended consequences the change might have for other elements.
- Phase 5: Testing: Thoroughly testing the changes to ensure no new issues were introduced.
- This iterative process seeks to effectively address the issue without degrading the operational capabilities of the existing system.
Maintenance Costs
- Maintenance costs often exceed development costs significantly, sometimes by a factor of 2 to 100 depending on the complexity of the application.
- Factors include technical issues, non-technical factors (lack of documentation, staff skills), age of software, and its structure.
Maintenance Prediction
- Maintenance prediction aims to identify parts of a system likely to cause issues.
- Techniques predict parts of the system that are most prone to errors.
- This helps prioritize maintenance efforts, focusing resources on potentially critical elements.
Software Re-Engineering
- Software re-engineering is concerned with improving existing software (legacy systems) by re-implementing to enhance maintainability without changing its functionality.
- It involves activities like re-documentation, restructuring, translation, migrating to a new platform, and graphically displaying design information and re-documenting the system.
Re-engineering Process Activities
- A well-defined re-engineering process outlines a series of tasks to be performed when working with legacy systems.
Advantages of Re-Engineering
- Reduced risk of problems compared to building a new system.
- Lower initial investment, often significantly less expensive than developing a brand-new software.
Re-engineering Cost Factors
- The quality of the existing software.
- The tools available for re-engineering.
- The extent of any data conversion needed.
- Availability of qualified staff with suitable expertise.
Studying That Suits You
Use AI to generate personalized quizzes and flashcards to suit your learning preferences.