Articulo de referencia

Antipatrón

Un antipatrón es cualquier solución común pero contraproducente para alguna clase de problema. [ 1 ] [ 2 ] El término, acuñado en 1995 por Andrew Koenig , se inspiró en el libro...

Un antipatrón es cualquier solución común pero contraproducente para alguna clase de problema. [ 1 ] [ 2 ] El término, acuñado en 1995 por Andrew Koenig , se inspiró en el libro Design Patterns , que destaca patrones de diseño de desarrollo de software fiables y eficaces . [ 3 ] Michael Ackroyd describió los antipatrones en un artículo presentado en la Conferencia Object World West de 1996. [ 3 ] El libro AntiPatterns de 1998 popularizó la idea y extendió su alcance más allá del diseño de software para incluir la arquitectura de software y la gestión de proyectos. [ 3 ] Otros autores lo han extendido aún más para abarcar antipatrones ambientales, organizacionales y culturales. [ 4 ]

Un antipatrón se distingue de un mal hábito, una mala práctica o una mala idea por dos características. Primero, los antipatrones son procesos, estructuras o patrones de acción de uso común que inicialmente parecen apropiados y efectivos, pero que tienen más inconvenientes que beneficios. [ 5 ] Segundo, existe otra forma de resolver el problema que está documentada, es repetible y efectiva, a diferencia del antipatrón.

De forma similar a los patrones, se aplica una "regla de tres": para ser un antipatrón, debe haber ocurrido al menos tres veces. [ 6 ]

Documentar los antipatrones puede ayudar a analizar un espacio de problemas y a capturar el conocimiento de los expertos. [ 7 ] Si bien algunas descripciones de antipatrones simplemente documentan las consecuencias del patrón, una buena documentación de antipatrones también proporciona formas alternativas de minimizar el daño. [ 8 ]

Ejemplos

En ingeniería de software

En ingeniería de software, los antipatrones incluyen: [ 8 ]

Objeto de Dios
En un programa , una sola clase se encarga de todo el control , en lugar de que este se distribuya entre varias clases.
Número mágico
Un valor literal con un significado importante pero aún sin explicación, que podría reemplazarse por una constante con nombre.
Duende
Clases de controlador efímeras que solo existen para invocar otros métodos en otras clases.
Gran bola de barro
Un sistema de software que carece de una arquitectura perceptible. Si bien no es deseable desde el punto de vista de la ingeniería de software, este tipo de sistemas son comunes en la práctica debido a las presiones comerciales, la rotación de desarrolladores y la entropía del software .

En la gestión de proyectos

Los antipatrones de gestión de proyectos incluidos en el libro Antipatrones incluyen: [ 4 ]

Jamboree de fanfarrones
Un exceso de expertos de la industria
parálisis por análisis
Ingeniería Viewgraph
Se dedica demasiado tiempo a hacer presentaciones y no el suficiente al software en sí.
Muerte por planificación
Dedicar demasiado esfuerzo a la planificación.
Miedo al éxito
Temores irracionales cerca de la finalización del proyecto.
La mazorca de maíz
Dificultades con la gente.
Violencia intelectual
Intimidación mediante el uso de jerga o tecnología arcana.
Gestión irracional
Malos hábitos de gestión.
Humo y espejos
Uso excesivo de demostraciones y prototipos por parte de los vendedores.
Tíralo por encima del muro
Imponer prácticas de ingeniería de software de moda a los desarrolladores sin su consentimiento.
Simulacro de incendio
Largos periodos de monotonía interrumpidos por breves crisis.
La disputa
Conflictos entre gerentes.
El correo electrónico es peligroso
Situaciones derivadas de mensajes de correo electrónico imprudentes.

Véase también

Referencias

¿Qué apoya qué?

  1. Budgen 2003 , pág. 225.
  2. Ambler 1998 , pág. 4.
  3. ^ Neill , Laplante y DeFranco 2011 , pág . 4. 
  4. ^ Neill , Laplante y DeFranco 2011 , pág. 5.
  5. Moha, Naouel; Gueheneuc, Yann-Gael; Duchien, Laurence; Le Meur, Anne-Francoise (2010). "DECOR: Un método para la especificación y detección de olores de código y diseño" . IEEE Transactions on Software Engineering . doi : 10.1109/TSE.2009.50 .
  6. ^ Neill, Laplante y DeFranco 2011 , pág. 6.
  7. Jiménez 2006 .
  8. 1 2 Demeyer 2008 , pág. 102.

Fuentes

  • Neill, Colin J.; Laplante, Philip A.; DeFranco, Joanna F. (2011). Antipatrones: Gestión de organizaciones y personas en el sector del software . Serie de ingeniería de software aplicada (segunda  edición). CRC Press. ISBN 9781439862162.
  • Budgen, D. (2003). Diseño de software . Harlow, Inglaterra: Addison-Wesley. pág.  225. ISBN 0-201-72219-4Como se describe en Long (2001) , los antipatrones de diseño son "soluciones obvias, pero erróneas, a problemas recurrentes".
  • Ambler, Scott W. (1998). Patrones de proceso: construcción de sistemas a gran escala mediante tecnología de objetos . Cambridge, Reino Unido: Cambridge University Press. pág.  4. ISBN 0-521-64568-9... enfoques comunes para resolver problemas recurrentes que resultan ineficaces. Estos enfoques se denominan antipatrones.
  • Jiménez, Edward (24 de abril de 2006). "AntiPatrones" . AntiPatrones . Recuperado el 24 de abril de 2006 .
  • Demeyer, Serge (2008). "Reingeniería Orientada a Objetos". En Hombres, Tom; Demeyer, Serge (eds.). Evolución del software . Springer Science + Business Media. ISBN 9783540764403.

Lecturas adicionales

  • Koenig, Andrew (marzo-abril de 1995). "Patrones y antipatrones". Journal of Object-Oriented Programming . 8 (1): 46– 48.
    • Reimpreso posteriormente en: Rising, Linda (1998). The patterns handbook: techniques, strategies, and applications . Cambridge, Reino Unido: Cambridge University Press. pág. 387. ISBN  0-521-64818-1Un antipatrón es igual que un patrón, excepto que en lugar de una solución , proporciona algo que superficialmente parece una solución, pero que no lo es.
  • Laplante, Phillip A.; Neill, Colin J. (2005). Antipatrones: Identificación, refactorización y gestión . Auerbach Publications. ISBN 0-8493-2994-9.
  • Brown, William J.; Malveau, Raphael C.; McCormick, Hays W.; Thomas, Scott W. (2000). Hudson, Theresa Hudson (ed.). Antipatrones en la gestión de proyectos . John Wiley & Sons . ISBN 0-471-36366-9.
  • Stamelos, Ioannis (enero de 2010). "Antipatrones de gestión de proyectos de software". Journal of Systems and Software . 83 (1): 52– 59. doi : 10.1016/j.jss.2009.09.016 .

Logotipo de Wikimedia CommonsContenido multimedia relacionado con los antipatrones en Wikimedia Commons