WorksheetsSoftware Reuse Quiz
Total questions: 20
Worksheet time: 10mins
Which of the following are key goals of systematic software reuse?
Eliminate all development costs
Reduce time-to-market
Minimize risks through proven components
Ensure 100% code originality
Which statements about software reuse benefits are accurate?
Guarantees zero maintenance effort
Improves system reliability through pre-validated components
Requires no adaptation of reused assets
Lowers overall project costs
Which reuse levels allow integration without code modification?
Application reuse
Component reuse
Object reuse
Function reuse
Select valid business factors for evaluating reuse adoption:
ROI analysis
Developer preference for new tools
Long-term maintenance costs
Availability of reusable assets
Which architectural patterns directly support component reuse?
Monolithic architecture
Layered architecture
Microservices architecture
Event-driven architecture
Component interfaces in reuse architecture must:
Expose internal implementation details
Provide clear abstraction boundaries
Be tightly coupled to specific platforms
Support version compatibility
Which challenges arise when separating components?
Defining cohesive responsibilities
Ensuring backward compatibility
Maximizing code duplication
Managing cross-component dependencies
Component-based development requires:
Centralized version control
Standardized communication protocols
Proprietary programming languages
Documentation of reuse guidelines
Which are critical organizational capabilities for reuse adoption?
Mandatory overnight legacy system replacement
Reuse-focused training programs
Component certification processes
Incentive structures for contributors
Domain analysis for reuse involves:
Copying competitors' code
Identifying common system requirements
Creating domain-specific taxonomies
Ignoring legacy system constraints
Effective reuse repositories must include:
Searchable metadata
Version history tracking
Unrestricted public access
Quality assurance reports
Which practices hinder reuse adoption?
Assigning component ownership
Allowing ad-hoc reuse without governance
Prioritizing short-term deadlines over reuse
Encouraging cross-team collaboration
Which OOP principles promote reusable component design?
Tight coupling between classes
Encapsulation of implementation details
Overuse of global variables
Polymorphic interfaces
Composition over inheritance is preferred when:
Subclasses need to inherit multiple behaviors
Runtime flexibility is required
Code duplication must increase
Implementation details should remain hidden
Which class relationships align with reuse best practices?
"IS-A" (inheritance)
"HAS-A" (composition)
Circular dependencies
Interface implementation
Reusable OOP components should:
Rely on concrete implementations
Document preconditions/postconditions
Minimize external dependencies
Use hard-coded configuration values
Creational patterns include:
Singleton
Observer
Factory Method
Strategy
The Strategy pattern is applicable when:
Algorithms need runtime interchangeability
Object creation logic must be centralized
Tight coupling between behaviors is acceptable
Multiple notification systems are required
Which patterns decouple objects effectively?
Mediator
Facade
Prototype
Adapter
The Observer pattern is used for:
One-to-many dependency management
Encapsulating object creation
Enabling event-driven communication
Restricting class instantiation
