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.