Software Reuse and Maintenance # MCQs Practice set

Q.1 What does software reuse primarily aim to achieve?

Increased cost
Reduced development time
Increased complexity
Higher maintenance cost
Explanation - Software reuse reduces development time by reusing existing components instead of building from scratch.
Correct answer is: Reduced development time

Q.2 Which of the following is an example of software reuse?

Rewriting all modules
Using a pre-built library
Developing a new algorithm from scratch
Discarding old code
Explanation - Using pre-built libraries is a direct example of software reuse.
Correct answer is: Using a pre-built library

Q.3 What is the main benefit of software maintenance?

Shorter design phase
Ensuring long-term usability
Avoiding documentation
Skipping testing
Explanation - Software maintenance ensures software continues to function and adapt to new requirements.
Correct answer is: Ensuring long-term usability

Q.4 Which maintenance activity involves correcting defects?

Perfective maintenance
Corrective maintenance
Adaptive maintenance
Preventive maintenance
Explanation - Corrective maintenance refers to fixing errors and bugs in the software.
Correct answer is: Corrective maintenance

Q.5 What is adaptive maintenance?

Improving system performance
Fixing software bugs
Modifying software to run in new environments
Preventing potential issues
Explanation - Adaptive maintenance ensures the software works correctly in changing environments like OS upgrades.
Correct answer is: Modifying software to run in new environments

Q.6 Which type of maintenance focuses on future issues prevention?

Corrective
Adaptive
Perfective
Preventive
Explanation - Preventive maintenance makes changes to prevent potential problems before they occur.
Correct answer is: Preventive

Q.7 Which process involves enhancing existing features of software?

Corrective maintenance
Adaptive maintenance
Perfective maintenance
Preventive maintenance
Explanation - Perfective maintenance improves or enhances the functionality of the system.
Correct answer is: Perfective maintenance

Q.8 What is the primary advantage of software reuse in engineering?

Increased redundancy
Decreased software quality
Reduced cost
More testing time
Explanation - Software reuse reduces costs by minimizing development effort.
Correct answer is: Reduced cost

Q.9 Which of these is NOT a benefit of software reuse?

Improved productivity
Reduced time to market
Reduced cost
Increased errors
Explanation - Software reuse typically reduces errors rather than increasing them.
Correct answer is: Increased errors

Q.10 Reusable software components must be:

Specific to one project
Well-documented and generic
Hard-coded for one environment
Complex and untested
Explanation - For effective reuse, software should be general-purpose and documented.
Correct answer is: Well-documented and generic

Q.11 Which maintenance type consumes the most cost on average?

Corrective
Adaptive
Perfective
Preventive
Explanation - Corrective maintenance is often the most costly as it involves bug fixing and testing.
Correct answer is: Corrective

Q.12 What is meant by 'component-based software engineering'?

Developing only from scratch
Focusing on hardware
Building systems using reusable components
Avoiding modularity
Explanation - Component-based software engineering emphasizes reuse of pre-built components.
Correct answer is: Building systems using reusable components

Q.13 Which of the following is a major challenge in software reuse?

Reduced efficiency
Licensing issues
Lower reliability
No documentation required
Explanation - Licensing constraints often restrict software reuse, especially with third-party libraries.
Correct answer is: Licensing issues

Q.14 What is the main purpose of software maintenance?

To reduce documentation
To extend software life cycle
To increase redundancy
To avoid testing
Explanation - Maintenance ensures software remains useful throughout its lifecycle.
Correct answer is: To extend software life cycle

Q.15 Which type of reuse involves using entire systems?

Component reuse
System reuse
Object reuse
Module reuse
Explanation - System reuse involves reusing complete application systems.
Correct answer is: System reuse

Q.16 Which is a disadvantage of software reuse?

Reduced cost
Increased productivity
Integration issues
Improved reliability
Explanation - Sometimes reused components are hard to integrate with new systems.
Correct answer is: Integration issues

Q.17 What does 'code refactoring' mainly support?

Software maintenance
Software deletion
Avoiding testing
Increasing redundancy
Explanation - Refactoring improves internal code structure, making maintenance easier.
Correct answer is: Software maintenance

Q.18 Which of these increases chances of software reuse?

Poor documentation
High cohesion and low coupling
Hard-coded logic
Project-specific design
Explanation - High cohesion and low coupling make components easier to reuse in other projects.
Correct answer is: High cohesion and low coupling

Q.19 What is 'legacy software'?

Software with no users
Outdated but still in use software
Recently developed software
Software with no maintenance
Explanation - Legacy software refers to old systems that are still operational and maintained.
Correct answer is: Outdated but still in use software

Q.20 Which factor increases maintenance cost?

Well-structured design
High coupling
Good documentation
Modular architecture
Explanation - High coupling makes changes harder, thus increasing maintenance cost.
Correct answer is: High coupling

Q.21 Which of the following is NOT a type of software maintenance?

Corrective
Perfective
Adaptive
Constructive
Explanation - Constructive maintenance is not a recognized category; the main types are corrective, adaptive, perfective, and preventive.
Correct answer is: Constructive

Q.22 What is software evolution?

Abrupt change in software
Process of software growth and adaptation
Software deletion
Hardware upgrade
Explanation - Software evolution refers to the continuous adaptation and development of software after delivery.
Correct answer is: Process of software growth and adaptation

Q.23 Which technique supports maximum reusability?

Monolithic design
Object-oriented design
Hard-coded design
Tightly coupled design
Explanation - Object-oriented design promotes reusability through encapsulation and inheritance.
Correct answer is: Object-oriented design

Q.24 What is 'preventive maintenance' mainly concerned with?

Bug fixing
Performance tuning
Future risk reduction
Environment adaptation
Explanation - Preventive maintenance aims at avoiding potential future problems.
Correct answer is: Future risk reduction

Q.25 Which of these tools can assist in software reuse?

Version control systems
Game engines
Network routers
Text editors
Explanation - Version control systems store reusable components and manage changes for reuse.
Correct answer is: Version control systems