Free Online Flashcard Deck

6 Software Design Principles Free Online FlashCards

Study 6 Software Design Principles with 12 free online flashcards. Review key terms, definitions, and concepts with this interactive flashcard deck.

12 cards
01
Front

How should software design principles guide design choices?

Back

Treat design principles as practical guides, not absolute rules; choose designs that fit the system’s goals, constraints, and likely changes.

02
Front

What is modularity?

Back

Modularity divides a system into parts with clear responsibilities and defined ways to interact.

03
Front

How do useful module boundaries support development?

Back

Clear module boundaries let developers work on one part without needing to understand every implementation detail elsewhere.

04
Front

What does abstraction reveal, and what does it hide?

Back

Abstraction describes what a component offers while leaving out implementation details its users do not need.

05
Front

How can an interface express an abstraction?

Back

An interface sets expectations for a component’s behavior without requiring users to know how that behavior is implemented.

06
Front

Why should checkout depend on a payment capability rather than a specific provider?

Back

Checkout can depend on a payment capability rather than a specific provider, allowing the provider to be changed without rewriting checkout logic.

07
Front

What does cohesion measure?

Back

Cohesion describes how closely related the responsibilities within a module are.

08
Front

What does coupling describe?

Back

Coupling describes dependencies between modules and whether a change in one can force changes in others.

09
Front

What is a useful general aim for cohesion and coupling?

Back

Aim for high cohesion within modules and low, deliberate coupling between them.

10
Front

What does separation of concerns mean?

Back

Separation of concerns gives distinct concerns—such as user interaction, business rules, and data storage—distinct places in the design.

11
Front

How does information hiding help limit change propagation?

Back

Information hiding keeps internal decisions private and exposes only what other modules need, limiting how far changes can spread.

12
Front

What does the single responsibility principle encourage?

Back

Single responsibility gives a module one coherent purpose, so changes to that purpose do not require editing unrelated behaviors.