15 de enero de 2014

     Todas las disciplinas tienen buenos y malos usos, en este caso “Patrones” y “Antipatrones”. Si un patrón es una buena práctica, entonces, un antipatrón es una mala práctica.

Existen dos tipos de antipatrones:
  1. Aquellos que describen una mala solución a un problema y que da como resultado una mala situación.
  2. Aquellos que describen como salir de una mala situación y convertirla en una buena solución.

     Los antipatrones son considerados una parte importante del conocimiento, en otras palabras, es muy importante conocer y entender las buenas soluciones y las malas soluciones.
            Los diseñadores intentan evitar los antipatrones siempre que sea posible, pero para esto se debe poder reconocerlos e identificarlos lo antes posible. Los antipatrones más útiles son aquellos que no permiten rehacer un buen diseño a partir de uno malo.
            El concepto de antipatrón puede encontrarse en muchas disciplinas. Pero es ampliamente utilizado en la ingeniería en general.
Se puede definir entonces a un antipatrón de la siguiente forma:

“Forma literaria que describe una solución comúnmente dada a un problema que genera consecuencias negativas decididamente”.


Para la ingeniería del software se pueden clasificar los siguientes tipos de antipatrones

Antipatrones de desarrollo de software:
  1. The Blob (“Clases gigantes”).
  2. Lava Flow (“Código muerto”).
  3. Funcional Fecomposition (“Diseño no orientado a objetos”).
  4. Poltergeists (“No se sabe bien lo que hacen algunas clases”).
  5. Golden hammer (“Para un martillo todo son clavos”).
  6. Spaghetti code (“Muchos if o switch”).
  7. Cut-and-paste programming (“Cortar y pegar código")

Antipatrones de arquitectura de software:
  1. Stovepipe enterprise ("isolation in the company").
  2. Stovepipe system ("isolation between systems").
  3. Vendor Lock-In ("dependent product architecture").
  4. Architecture by implication.
  5. Design by committee ("Swiss army knife").
  6. Reinvent the Wheel ("reinventing the wheel").

Antipatrones de gestión de proyectos de software:
  1. Analysis paralysis.
  2. Death by planning.
  3. Corncob ("troublemakers").
  4. Irrational management.
  5. Project mismanegement.

Subscribe to RSS Feed Follow me on Twitter!