Applications of PatternsPatterns have a myriad of uses - many yet to be discovered.
Analysis Patterns
- Create robust analysis models
Design Patterns
- Design and write new software
- Analyze and document software
AntiPatterns
- Refactor designs and software
- Migrate/upgrade systems
- Reengineer systems and organizations
Notes:
The emergence of design patterns has provided the most effective form of software guidance yet available, and the whole patterns movement has gone a long way in codifying a concise terminology for conveying sophisticated computer science thinking. AntiPatterns are a natural extension to design patterns, focussed on the wide and ever-growing selection of repeated software failures in an attempt to understand, prevent and recover from them.
To the developer, AntiPatterns are a new tool that bridge the gap between architectural concepts and real-world implementations. They are used to illustrate the key common, critical problems faced by most software developers and share the wisdom learnable from other developers’ experiences. Only with an understanding of the causes and motivations of an AntiPattern can developers ensure that such negative solutions are not continually repeated within an organization.