Free Practice Quiz Question List

6 Software Design Principles Online Quiz Questions

Use this free practice quiz with 20 questions to review 6 Software Design Principles, test your knowledge, and prepare for your next test or exam.

20 questions
01
True or false
1 point

A team should apply design principles as practical guides and weigh them against the system’s goals and constraints, rather than treating them as absolute rules.

  1. A

    True

  2. B

    False

02
True or false
1 point

A well-designed system should eliminate all communication and dependencies between its modules.

  1. A

    True

  2. B

    False

03
Choose one
1 point

A checkout component needs to charge customers, and the team wants to be able to replace its payment provider without rewriting checkout logic. Which design best supports that goal?

  1. A

    Checkout directly imports and calls the current provider’s internal implementation.

  2. B

    Checkout depends on a payment interface that different providers can implement.

  3. C

    Checkout duplicates each provider’s charging logic in its own methods.

  4. D

    Checkout stores provider-specific behavior in unrelated user-interface code.

04
Written response
1 point

A module has one clear purpose, and its responsibilities closely relate to one another. What design quality does this describe?

05
Fill in the blank
1 point

A component is described in terms of what it offers, while details that its users do not need are left out. This is .

06
Choose one
1 point

A system’s interface code, business rules, and data-storage logic are tangled together. Which redesign most directly applies separation of concerns?

  1. A

    Separate user interaction, business rules, and data storage into distinct places.

  2. B

    Put user interaction, business rules, and data storage into one module so they are easy to find.

  3. C

    Copy business rules into each module that needs them.

  4. D

    Expose each module’s internal decisions so other modules can use them.

07
Choose all
1 point

A team wants developers to understand module boundaries and make changes with fewer unintended effects. Select all practices that support this goal.

  1. A

    Keep interfaces focused on the behavior callers need.

  2. B

    Expose all internal state so callers can adapt to implementation changes.

  3. C

    Make dependencies explicit instead of relying on hidden shared state.

  4. D

    Combine unrelated responsibilities into a single module to reduce the number of modules.

08
Written response
1 point

A module keeps its internal decisions private and exposes only what other modules need. What design principle is being applied?

09
Fill in the blank
1 point

A useful general design aim is within modules and between them.

10
Choose one
1 point

A team is considering several layers of flexibility for a feature with no current requirement for them. Which choice best applies the principle of keeping a design as simple as the problem allows?

  1. A

    Add several abstraction layers now so that any imaginable future feature can be supported.

  2. B

    Combine similar-looking code even when it serves unrelated purposes.

  3. C

    Choose the clearest design that meets current needs, adding flexibility when a real requirement calls for it.

  4. D

    Expose implementation details so future changes can be made from any module.

11
Choose all
1 point

A change to one module repeatedly forces unrelated modules to change. Select all design choices that can help reduce unnecessary coupling.

  1. A

    Have higher-level rules rely on stable contracts rather than specific implementation details.

  2. B

    Keep internal decisions private and expose only what other modules need.

  3. C

    Increase the number of modules, regardless of whether their boundaries help.

  4. D

    Make connections between modules intentional and manageable.

12
Open ended
1 point

An order-processing module validates orders, sends marketing emails, and formats reports. A change to report formatting has repeatedly caused problems in order validation. Propose a redesign and explain how it would improve maintainability without assuming that all dependencies can be eliminated.

13
Choose one
1 point

A change to one behavior in a module often requires edits to several unrelated behaviors in that same module. Which design principle most directly addresses this problem?

  1. A

    Keep every behavior in one module so the system has fewer boundaries.

  2. B

    Give each module one coherent purpose, so a change does not require editing unrelated behaviors.

  3. C

    Duplicate the same rule in each module that needs it.

  4. D

    Make every module depend directly on the internal details of every other module.

14
Choose one
1 point

A checkout component needs to charge a customer. Which design concept lets it rely on a payment capability without knowing how a particular provider implements it?

  1. A

    Information hiding

  2. B

    Abstraction

  3. C

    Cohesion

  4. D

    Separation of concerns

15
Choose one
1 point

Which module has the clearest single purpose and the most closely related responsibilities?

  1. A

    A module that validates orders, sends marketing emails, and formats reports

  2. B

    A module that handles user sign-in and generates unrelated sales reports

  3. C

    A module that validates order contents

  4. D

    A module that stores application data and also decides promotional campaigns

16
True or false
1 point

True or false: A design is always better when it has more modules and abstraction layers, even if those additions provide no clear benefit.

  1. A

    True

  2. B

    False

17
Written response
1 point

What design principle calls for placing user interaction, business rules, and data storage in distinct parts of a system?

18
Choose one
1 point

A team wants to change how data is stored without forcing unrelated callers to change. Which design choice best supports that goal?

  1. A

    Keep storage details private behind an interface that exposes only the operations callers need

  2. B

    Require every caller to know the database schema and construct storage queries directly

  3. C

    Expose all internal data structures so callers can modify them freely

  4. D

    Copy storage logic into each component that needs to save data

19
Written response
1 point

What software quality describes code that developers can understand and change without excessive effort or unintended effects?

20
Choose one
1 point

A team wants a change to one module to be less likely to force unrelated changes elsewhere. Which design choice most directly supports that goal?

  1. A

    Have each module read and modify another module’s internal state

  2. B

    Make several modules depend directly on one concrete implementation

  3. C

    Let unrelated modules share hidden global state

  4. D

    Define a clear interface so one module can change internally without requiring unrelated modules to change