Title: CMPT 370: Information Systems Design
1CMPT 370 Information Systems Design
Lecture Topic Anti Patterns
- Instructor Curtis Cartmill, Simon Fraser
University Summer 2003
2Objectives
- So far we have focused on proper design tools and
techniques in information system design - We can also learn from solutions that we have
encountered in the past - The anti pattern is a recognition of an incorrect
solution within a context and presents a common
solution that refactors the system to maximize
benefits and minimize consequences - Anti patterns have their genesis in a book
entitled Anti Patterns Refactoring Software,
architectures and Projects in Crisis
3What is an Anti Pattern
- Anti Patterns are negative solutions that present
more problems than they address - Represents the difficulty in translating business
concepts into software solutions - Anti Patterns are a natural extension to design
patterns - focused on the wide and ever-growing selection of
repeated software failures in an attempt to
understand, prevent, and recover from them. - Anti Patterns bridge the gap between
architectural concepts and real world
implementations - Understanding anti patterns provides the
knowledge to prevent or recover from them - Anti Patterns represent the latest concept in a
series of revolutionary changes in computer
science and software engineering thinking.
4Why are Anti Patterns so persuasive
5Why study Anti Patterns
6Anti Patterns differ from simple patterns
- AntiPatterns begin with a compelling, problematic
solution. - From this solution, a discussion of the root
causes records how the problematic solution is
the result of incorrectly resolving the forces
for a specific underlying set of problems within
its context. - This convergence from a concrete situation to the
more abstract underlying forces is a key
component in communicating an understanding of
how and why the problem exists. - This abstraction is composed of symptoms and as
consequences, similar to the context and forces
of a design pattern, but which clearly documents
the implications of the problematic solution.
7Anti Patterns differ from simple patterns
- The documented symptoms can then be critical cues
used in the diagnosis and recognition of a
specific problematic solution, or, Anti Pattern. - Finally, once an Anti Pattern has been correctly
identified, its refactored solution can be used
to obtain a better convergence of the underlying
forces to lead you to a better understanding of
the problem and an effective method of resolving
the problematic solution
8Anti Patterns contrast to Design Patterns
9Anti Pattern template
10Anti Patterns are abstractions of experience
11Applications of Patterns
12Yesterdays solution lead to tomorrows Anti
Pattern
13Development Anti Patterns
14Architecture Anti Patterns
15Management Anti Patterns
16Development Anti Pattern Spaghetti Code
17Development Anti Pattern Spaghetti Code
18Development Anti Pattern Spaghetti Code
19Development Anti Pattern Spaghetti Code
20Development Anti Pattern Spaghetti Code
21Development Anti Pattern The Blob
22Development Anti Pattern The Blob
23Development Anti Pattern The Blob
24Development Anti Pattern The Blob
25Development Anti Pattern The Blob
26Development Anti Pattern The Blob
27Development Anti Pattern - Poltergeist
28Development Anti Pattern - Poltergeist
29Development Anti Pattern - Poltergeist
30Architecture Anti Pattern - Stovepipe
31Architecture Anti Pattern - Stovepipe
32Anti Patterns Ground Rules