Software engineeringLesson 1 of 1 in the course Design patterns

Software Design Patterns: Documentation, Categories, and Trade-offs

5 flashcards · 5 quiz questions · 5 match pairs · 5 fill-in sentences · English

Lesson progress
0 / 5

Your progress is kept in this browser only.Sign up to save it

Summary

Software design patterns offer reusable ways to address recurring problems in software design. This lesson explains what a pattern is, how patterns developed, and how developers adapt them to their own projects.

A software design pattern describes a reusable solution to a commonly encountered software design problem. It is a template or description, not a rigid block of source code that can simply be pasted into every application. Developers adapt the pattern to the specific classes, objects, language, and platform of their project.

All flashcards

What is a software design pattern?
A reusable description or template for solving a recurring software design problem. Developers adapt it to their context rather than copying it as fixed code.
Who are the Gang of Four?
Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides, authors of the influential 1994 book *Design Patterns: Elements of Reusable Object-Oriented Software*.
What does a design motif contain?
A prototypical arrangement of program elements, such as classes and methods, together with their relationships.
What is a domain-specific pattern?
A reusable solution to a recurring design concern in a specialized field, such as secure design or user interface design.
How does an architecture style differ from an implementation pattern?
An architecture style describes high-level system organization and interaction constraints; an implementation pattern is a lower-level, often language-specific idiom.

Quiz questions

  1. Which section of a pattern description records the results and trade-offs of applying it?Answer: Consequences.
  2. What distinguishes a domain-specific pattern from a general software design pattern?Answer: It addresses recurring concerns within a specialized field.
  3. What does a software architecture style describe?Answer: High-level system organization, including component and connector types and interaction constraints.
  4. What did Peter Norvig observe about some Gang of Four patterns in languages such as Lisp or Dylan?Answer: Direct language support can simplify or eliminate some of them.
  5. Which description best fits an implementation pattern?Answer: A language-specific idiom at the level of implementation details, often limited to one class.

Based on the Wikipedia article Software design pattern, licensed CC BY-SA 4.0. Adapted into a summary, flashcards and quizzes.

All Software engineering lessons