Software Maintenance and Evolution Quiz

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 (B)

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 (A)</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 (B)</p> Signup and view all the answers

How much can maintenance costs exceed development costs?

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

Maintenance costs increase when software is maintained.

<p>True (A)</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 (A)</p> Signup and view all the answers

Experienced maintenance staff can reduce overall maintenance costs.

<p>True (A)</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 (B)</p> Signup and view all the answers

Software maintenance includes only fixing bugs.

<p>False (B)</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 (D)</p> Signup and view all the answers

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

<p>True (A)</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

Flashcards

Software Evolution

The process of developing software and then periodically updating it to add new features, remove obsolete functionalities, or fix issues.

Software Maintenance

The process of modifying existing software after it has been delivered to the customer.

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 involves modifying the software to adapt to a new environment, such as a different operating system or hardware platform.

Signup and view all the flashcards

Perfective Maintenance

Perfective maintenance involves improving the performance, reliability, or maintainability of the software.

Signup and view all the flashcards

Preventive Maintenance

Preventive maintenance aims to prevent potential future issues by identifying and addressing potential problems.

Signup and view all the flashcards

Enhancement Maintenance

The process of modifying the software to incorporate new functionalities or features.

Signup and view all the flashcards

Software Re-engineering

The process of analyzing, understanding, and modifying the software to make it easier to maintain, understand, and evolve.

Signup and view all the flashcards

Maintenance Costs

Costs associated with maintaining software after its initial development.

Signup and view all the flashcards

Maintenance cost compared to Development cost

The costs of maintaining software can be significantly higher than the initial development costs. This difference can range from 2 to 100 times the original development cost, depending on the complexity of the application.

Signup and view all the flashcards

Maintenance Cost Factors

Factors that influence the cost of maintaining software systems. These include team stability, contractual responsibility, staff skills, and program age and structure.

Signup and view all the flashcards

Maintenance Prediction

A technique for predicting which parts of a system are likely to cause problems during maintenance.

Signup and view all the flashcards

What is Re-engineering?

The process of re-engineering involves comprehensively examining and modifying existing software, typically legacy systems, to improve their maintainability and structure. The objective is to make the software easier to understand, modify, and evolve without altering its core functionality.

Signup and view all the flashcards

Difference Between Re-engineering and New Software Development

The primary distinction between re-engineering and new software development lies in the starting point. Re-engineering starts with an existing system and modifies it, while new software development begins from scratch.

Signup and view all the flashcards

Risk in New Software Development

A major risk associated with new software development, which includes potential development, staffing, and specification issues.

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.

Quiz Team

Related Documents

More Like This

Software Evolution
5 questions

Software Evolution

SalutaryStarlitSky avatar
SalutaryStarlitSky
Software Evolution Reasons Quiz
10 questions
Software Evolution and Maintenance
40 questions

Software Evolution and Maintenance

UndisputablePlatypus6708 avatar
UndisputablePlatypus6708
Use Quizgecko on...
Browser
Browser