AntiPatterns - PowerPoint PPT Presentation

1 / 11
About This Presentation
Title:

AntiPatterns

Description:

Common software anti patterns. Template for an anti pattern ... occurring solution to a problem that generates decidedly negative consequences. ... – PowerPoint PPT presentation

Number of Views:470
Avg rating:3.0/5.0
Slides: 12
Provided by: Nag80
Category:

less

Transcript and Presenter's Notes

Title: AntiPatterns


1
AntiPatterns
  • Nagesh Arkalgud
  • CSCI 577B Spring 2006

2
Presentation Outline
  • What are Anti-patterns?
  • Why study anti patterns?
  • Differences between design patterns and anti
    patterns
  • Common software anti patterns
  • Template for an anti pattern
  • Applying anti patterns to a real problem
  • Applying anti pattern solution to the 577b
    project
  • Conclusion

3
References
  • Web References
  • http//www.csc.uvic.ca/hausi/480/lectures/antipat
    terns.pdf
  • http//www.serve.com/hibc/
  • http//en.wikipedia.org/wiki/Antipattern
  • Text References
  • Brown, Malveau, McCormick III, Mowbray
    AntiPatterns Refactoring Software,
    Architectures, and Projects in Crisis John Wiley
    Sons, 1998

4
The Need For Anti Patterns?
  • The majority of published works in software
    sciences have focused on positive and
    constructive solutions
  • AntiPatterns are derived by looking at the
    negative solutions
  • Def. An AntiPattern describes a commonly
    occurring solution to a problem that generates
    decidedly negative consequences.
  • The purpose of cataloguing antiPatterns is so
    they can be recognized and remedied
    (refactored).

5
Why Study AntiPatterns?
  • Provide a method of efficiently mapping a general
    situation to a specific class of solutions.
  • Provide real world experience in recognizing
    recurring problems in the software industry
  • Provide a common vocabulary for identifying
    problems and discussing solutions.
  • Support the holistic resolution of conflicts

6
Differences between Design Patterns and
AntiPatterns
  • Design patterns often evolve into an
    AntiPattern
  • Design pattern becomes an antipattern when it
    causes more problems than it solves
  • Procedural programming was a great design
    pattern in the 60s and 70s
  • Today it is an AntiPattern
  • Object-oriented programming is today a
    practiced pattern ...

7
AntiPattern Structure
  • Description of the general form
  • Symptoms on how to recognize the general form
  • Causes that led to the general form
  • Consequences of the general form
  • Refactored solution on how to change the
    AntiPattern into a healthier situation

8
Software AntiPatterns
  • Spaghetti Code
  • Stovepipe System
  • Analysis Paralysis
  • Design By Committee
  • God Class
  • Mythical Man Month
  • Death March Project

9
AntiPattern The Blob (aka The God Class)
  • Scale Application
  • Symptoms
  • One big class, hundreds of unrelated methods
  • Many methods with no arguments
  • Cause lack of design experience
  • Refactored Solution Split into smaller classes,
    identify or categorize attributes and operations

10
Conclusion
  • Awareness of AntiPatterns is critical for
    reengineering projects
  • Always consider a range of solutions before
    narrowing down to a particular style of
    implementation
  • Dont use antipatterns to exacerbate negativity
  • Avoid the use of the Golden Hammer excessive use
    of one pattern. There are at least 192 software
    patterns 23 Gamma patterns, 17 Buschmann
    patterns, 72 analysis patterns, 38 CORBA
    patterns, 42 antipatterns
  • Consider AntiPatterns next time you sign on to a
    new project

11
Final Questions?
Write a Comment
User Comments (0)
About PowerShow.com