WS 5. Software Engineering Design Patterns

0.0(0)
Studied by 0 people
call kaiCall Kai
learnLearn
examPractice Test
spaced repetitionSpaced Repetition
heart puzzleMatch
flashcardsFlashcards
GameKnowt Play
Card Sorting

1/23

flashcard set

Earn XP

Description and Tags

Comprehensive vocabulary flashcards covering the fundamentals of software design patterns, pattern languages, forces, generative AI design judgment, the Strategy pattern, and the Observer pattern.

24 Terms

1
New cards

Pattern (Software Engineering)

Reusable design expertise that codifies time-proven solutions to commonly occurring software problems arising within particular contexts and domains.

2
New cards

Design Vocabulary

A shared terminology established by patterns that enables developers, designers, and architects to name, document, and communicate recurring architectural structures effectively.

3
New cards

Known Uses (Rule of Three)

The requirement that a pattern must be verified to exist in at least three real, existing systems to confirm it is a time-proven solution rather than an unverified idea.

4
New cards

Forces

A system of conflicting constraints, non-functional requirements (NFRs), or quality attributes—such as memory, performance, costs, maintainability, simplicity, time-to-market, and reuse—that a pattern resolves to create a balanced solution.

<p>A system of conflicting constraints, non-functional requirements (NFRs), or quality attributes—such as memory, performance, costs, maintainability, simplicity, time-to-market, and reuse—that a pattern resolves to create a balanced solution.</p>
5
New cards

Consequences (Pattern Component)

The documented positive impacts, negative side effects, and trade-offs that result from applying a pattern, enabling architects to evaluate whether a solution is suitable for a specific design problem.

6
New cards

Pattern Language

A collection of interrelated patterns that systematically guides the step-by-step application of multiple patterns in combination through an incremental refinement process driven by forces.

7
New cards

Human Design Judgement

The evaluation and reasoning applied by developers to analyze forces, consequences, and alternative approaches when reviewing, selecting, and adapting AI-generated pattern implementations.

<p>The evaluation and reasoning applied by developers to analyze forces, consequences, and alternative approaches when reviewing, selecting, and adapting AI-generated pattern implementations.</p>
8
New cards

Strategy Pattern

A behavioral design pattern that defines a family of algorithms, encapsulates each one, and makes them interchangeable, allowing the algorithm to vary independently from clients that use it.

9
New cards

Compositor

An interface in the line-breaking motivation for the Strategy pattern that declares a compose() operation, encapsulated across concrete algorithms such as SimpleCompositor, TeXCompositor, and ArrayCompositor.

<p>An interface in the line-breaking motivation for the Strategy pattern that declares a compose() operation, encapsulated across concrete algorithms such as SimpleCompositor, TeXCompositor, and ArrayCompositor.</p>
10
New cards

Context (Strategy Pattern)

The class configured with a ConcreteStrategy instance that maintains a reference to a Strategy interface and delegates algorithmic execution to it rather than implementing the algorithm directly.

11
New cards

ConcreteStrategy

A class that implements a specific algorithmic variant or behavior declared by the Strategy interface (e.g., CreditCardPayment or PayPalPayment).

12
New cards

Dynamic Behavior (Strategy Benefit)

A benefit of the Strategy pattern that permits algorithms to be switched or substituted dynamically at runtime by providing a different concrete strategy to the context.

13
New cards

Eliminates Conditionals (Strategy Benefit)

A benefit of the Strategy pattern that reduces complex conditional statements (such as nested if-else or switch statements) in client code by isolating algorithmic variants into separate classes.

14
New cards

Client Awareness (Strategy Drawback)

A drawback of the Strategy pattern that requires clients to understand the operational differences among distinct strategies in order to instantiate and assign the correct one.

15
New cards

Stateless Strategy

A strategy implementation that stores no client-specific state, allowing instances to be shared across contexts to mitigate the object overhead drawback of the pattern.

16
New cards

Observer Pattern

A behavioral design pattern that defines a one-to-many dependency between objects so that when one object changes state, all its dependents are notified and updated automatically.

17
New cards

Subject (Observer Pattern)

The core entity that tracks an arbitrary number of observing dependents and provides an interface to attach, detach, and notify observers when a state transition occurs.

18
New cards

Observer (Participant)

The interface or abstract class defining an updating protocol (typically update()) used by subjects to notify dependent objects of changes.

19
New cards

ConcreteSubject

A class that stores state of interest to ConcreteObservers and sends change notifications to its registered observers whenever its state is updated.

20
New cards

ConcreteObserver

A class that maintains a reference to a ConcreteSubject, stores synchronized state, and implements the update() method to query or reconcile with the subject's new state.

21
New cards

Abstract Coupling (Observer Benefit)

A benefit of the Observer pattern wherein a subject only knows its observers through an abstract interface, minimizing dependencies and permitting them to operate across distinct architectural layers.

22
New cards

Broadcast Communication (Observer Benefit)

A capability of the Observer pattern in which notifications are dispatched automatically to all subscribed observers without the subject requiring knowledge of specific receivers.

23
New cards

Unexpected Updates (Observer Drawback)

A drawback of the Observer pattern where observers are blind to the existence of one another, potentially causing costly, unexpected cascading state updates across the system.

24
New cards

Lack of Context (Observer Drawback)

A drawback of the Observer pattern wherein standard update notifications inform observers that a change has occurred but fail to supply granular details explaining what specifically changed.