Difficulty: Easy
Correct Answer: Both A and B.
Explanation:
Introduction:
Software reuse—via libraries, frameworks, and shared components—promises faster delivery and higher quality. This question asks which benefits are genuinely attributable to reusability in practice.
Given Data / Assumptions:
Concept / Approach:
Reusing proven components reduces duplicated code and the surface area for new defects. Consequently, teams spend less time writing and testing custom implementations. Maintenance costs drop because common functionality lives in a central, versioned artifact rather than scattered bespoke code. Compilation time, however, depends on toolchains and project layout; reuse does not inherently reduce compilation time and may even increase it for template-heavy libraries.
Step-by-Step Solution:
1) Testing effort declines because reused modules arrive pre-validated; only integration and boundary tests are needed.2) Maintenance cost falls as bug fixes and updates occur once in the shared module and propagate to dependents.3) Build times vary; reuse does not guarantee faster compilation.4) Therefore, benefits A and B are the reliable outcomes of reuse.
Verification / Alternative check:
Empirical project metrics often show defect density decreases when switching from homegrown utilities to vetted libraries; maintenance tickets for duplicated logic also drop.
Why Other Options Are Wrong:
Compilation time: not a direct or consistent effect of reuse.A or B alone: each is true, but the best answer captures both.
Common Pitfalls:
Overgeneralizing reuse to inappropriate domains (premature abstraction). Also, neglecting versioning and dependency management can negate the benefits.
Final Answer:
Both A and B.
Discussion & Comments