You have now explored five patterns in depth and looked at capsule summaries of quite a few more.
This module discusses some general issues that arise in using patterns to develop software.
In this module, you will learn:
How to choose the right pattern for the job
How to modify documented patterns to fit your problem
How to combine design patterns
The pitfalls and limitations of patterns
Software design is the process by which an agent creates a specification of a software artifact, intended to accomplish goals,
using a set of primitive components and subject to constraints.
Software design may refer to either
- "all the activities involved in conceptualizing, framing, implementing, commissioning, and ultimately modifying complex systems" or
- "the activity following requirements specification and before programming, as in the style of a software engineering process."
Software design usually involves problem solving and planning a software solution.
This includes both low-level component and algorithm design as well as high-level, architecture design.