Podcast
Questions and Answers
What is the primary purpose of software evolution?
What is the primary purpose of software evolution?
Software maintenance only focuses on adding new features to the system.
Software maintenance only focuses on adding new features to the system.
False
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 ______.
Signup and view all the answers
Which phase of the software maintenance process occurs last?
Which phase of the software maintenance process occurs last?
Signup and view all the answers
Match the types of maintenance with their descriptions:
Match the types of maintenance with their descriptions:
Signup and view all the answers
What is one of the fundamental activities in the software evolution process?
What is one of the fundamental activities in the software evolution process?
Signup and view all the answers
Maintenance costs are a negligible aspect of software maintenance.
Maintenance costs are a negligible aspect of software maintenance.
Signup and view all the answers
How much can maintenance costs exceed development costs?
How much can maintenance costs exceed development costs?
Signup and view all the answers
Maintenance costs increase when software is maintained.
Maintenance costs increase when software is maintained.
Signup and view all the answers
What is the main concern of maintenance prediction?
What is the main concern of maintenance prediction?
Signup and view all the answers
Software _________ is concerned with re-implementing legacy systems to improve maintainability.
Software _________ is concerned with re-implementing legacy systems to improve maintainability.
Signup and view all the answers
Which factor does NOT influence maintenance costs?
Which factor does NOT influence maintenance costs?
Signup and view all the answers
Experienced maintenance staff can reduce overall maintenance costs.
Experienced maintenance staff can reduce overall maintenance costs.
Signup and view all the answers
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 ________.
Signup and view all the answers
Match the following factors with their effects on maintenance costs:
Match the following factors with their effects on maintenance costs:
Signup and view all the answers
What is one advantage of software re-engineering?
What is one advantage of software re-engineering?
Signup and view all the answers
Software maintenance includes only fixing bugs.
Software maintenance includes only fixing bugs.
Signup and view all the answers
What are the three types of software maintenance?
What are the three types of software maintenance?
Signup and view all the answers
Software __________ is concerned with re-structuring and re-documenting software.
Software __________ is concerned with re-structuring and re-documenting software.
Signup and view all the answers
Match the following cost factors to their descriptions:
Match the following cost factors to their descriptions:
Signup and view all the answers
Which of the following is NOT a problem encountered during software maintenance?
Which of the following is NOT a problem encountered during software maintenance?
Signup and view all the answers
Re-engineering can help in migrating existing software to a new platform.
Re-engineering can help in migrating existing software to a new platform.
Signup and view all the answers
What can greatly influence the cost of re-engineering a software system?
What can greatly influence the cost of re-engineering a software system?
Signup and view all the answers
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.
Related Documents
Description
Test your knowledge on software evolution and maintenance. This quiz covers various aspects of maintaining software systems, including types of maintenance and associated costs. Understand the critical phases and activities involved in the software maintenance process.