Software Maintenance and Evolution Quiz
24 Questions
0 Views

Choose a study mode

Play Quiz
Study Flashcards
Spaced Repetition
Chat to lesson

Podcast

Play an AI-generated podcast conversation about this lesson

Questions and Answers

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.

    False

    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 ______.

    <p>environment</p> Signup and view all the answers

    Which phase of the software maintenance process occurs last?

    <p>Test the program</p> Signup and view all the answers

    Match the types of maintenance with their descriptions:

    <p>Maintenance to repair software faults = Correct deficiencies in requirements Maintenance to adapt software = Operate in a different environment Maintenance to modify functionality = Satisfy new requirements</p> Signup and view all the answers

    What is one of the fundamental activities in the software evolution process?

    <p>Change analysis</p> Signup and view all the answers

    Maintenance costs are a negligible aspect of software maintenance.

    <p>False</p> Signup and view all the answers

    How much can maintenance costs exceed development costs?

    <p>2 to 100 times</p> Signup and view all the answers

    Maintenance costs increase when software is maintained.

    <p>True</p> Signup and view all the answers

    What is the main concern of maintenance prediction?

    <p>Identifying parts of the system that may cause problems</p> Signup and view all the answers

    Software _________ is concerned with re-implementing legacy systems to improve maintainability.

    <p>re-engineering</p> Signup and view all the answers

    Which factor does NOT influence maintenance costs?

    <p>Developer's personal preferences</p> Signup and view all the answers

    Experienced maintenance staff can reduce overall maintenance costs.

    <p>True</p> Signup and view all the answers

    A primary issue with maintaining ageing software is high support costs associated with ________ and ________.

    <p>old languages, compilers</p> Signup and view all the answers

    Match the following factors with their effects on maintenance costs:

    <p>Team stability = Reduces maintenance costs Contractual responsibility = No incentive for future change Staff skills = Inexperienced can increase costs Program age = Degrades structure and increases difficulty</p> Signup and view all the answers

    What is one advantage of software re-engineering?

    <p>Reduced cost</p> Signup and view all the answers

    Software maintenance includes only fixing bugs.

    <p>False</p> Signup and view all the answers

    What are the three types of software maintenance?

    <p>Bug fixing, modifying software to work in a new environment, and implementing new or changed requirements.</p> Signup and view all the answers

    Software __________ is concerned with re-structuring and re-documenting software.

    <p>re-engineering</p> Signup and view all the answers

    Match the following cost factors to their descriptions:

    <p>Quality of the software = Influences the complexity of re-engineering Tool support = Affects the efficiency of the re-engineering process Extent of data conversion = Relates to how much data migration is required Availability of expert staff = Determines the skill level available for re-engineering tasks</p> Signup and view all the answers

    Which of the following is NOT a problem encountered during software maintenance?

    <p>Overly simple software design</p> Signup and view all the answers

    Re-engineering can help in migrating existing software to a new platform.

    <p>True</p> Signup and view all the answers

    What can greatly influence the cost of re-engineering a software system?

    <p>The quality of the software, tool support available, extent of data conversion, and availability of expert staff.</p> 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.

    Quiz Team

    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.

    More Like This

    Software Evolution
    5 questions

    Software Evolution

    SalutaryStarlitSky avatar
    SalutaryStarlitSky
    Software Evolution Reasons Quiz
    10 questions
    Software Evolution and Maintenance
    20 questions
    Software Evolution and Change
    5 questions
    Use Quizgecko on...
    Browser
    Browser