You are on page 1of 4

7 de Diciembre 2012 Artculo de Investigacin

ANTIPATRONES DE DISEO DE SOFTWARE


Software design antipattern Bayron Alberto Buenhombre Fernndez 20081025008
Universidad Distrital Francisco Jos de Caldas. darkbayron2007@hotmail.com

RESUMEN El ser humano ha tratado de resolver los problemas cotidianos de una manera ms ptima, teniendo en cuenta costos en tiempo, dinero, mano de obra, etc., de ah se adopto la idea de estudiar los algoritmos que son procesos secuenciales en la solucin de un problema concreto, y teniendo en cuenta que esta clase de soluciones han tenido un desarrollo bastante importante en la historia de la humanidad, tales estudios han llegado al punto de fundamentarse en cierta clase de patrones y antipatrones para el desarrollo de software que facilitan el anlisis. En 1979 el arquitecto Christopher Alexander implemento patrones en el mundo del diseo de construccin de edificios y se implemento y a medida del tiempo se fue implementando la idea generando una idea en el diseo de software y para 1990 nace Desing Patterns de Gang of four donde se recopilan 23 patrones de diseo comunes y de una manera contraria nace el libro Anti-patterns que recopila la contrapartida en cuanto a los patrones de diseo, mostrando as las pautas que no se deben seguir en el desarrollo y diseo de software. Palabras clave: Costos, patrones, anti-patrones, programacin, diseo de software.

ABSTRACT Humans have tried to solve everyday problems in a more optimal, considering costs in time, money, labor, etc., Hence the idea was adopted to study the algorithms are sequential processes in solving a particular problem, and given that this kind of solutions have played a very important development in the history of mankind, such studies have reached the point of being based on some sort of patterns and anti-patterns for the development of software to facilitate analysis . In 1979 the architect Christopher Alexander attachment patterns in the world of design and building construction was implemented and as time went by implementing the idea generating an idea in software design and for 1990 born Desing Patterns of Gang of Four where they are collected 23 common design patterns and in a manner contrary born Anti-patterns book that collects the counterpart in terms of design patterns, showing that guidelines should be followed in the development and design of software.

Keywords: Costs, patterns, anti-patterns, programming, software design.

7 de Diciembre 2012

INTRODUCCION A medida del transcurso del tiempo, el desarrollo de software ha venido a ocupar de manera importante, gran parte en la vida del ser humano, pues los problemas de la cotidianidad han tendido a ser resueltos a travs de esta metodologa, llegando hasta el punto en que la programacin se ha convertido en un factor importante para el desarrollo de problemas. Este desarrollo tecnolgico ha facilitado en la vida humana problemas que antes tendan a ser largos en su proceso de desarrollo y a medida del tiempo, el desarrollo y diseo de esta ha facilitado la solucin del problema de una manera ms puntual, reduciendo costos en tiempo y dinero bastante trascendentales. El desarrollo de software y la tecnologa ha sido implacable en comparacin de la solucin de tareas mecnicas, esto es un hecho generador de la evolucin de estos mecanismos de simplificacin de la realidad y el posterior anlisis para partir desde el punto que la programacin es un seguimiento de patrones que me determinan el buen desarrollo del ejercicio. Los patrones de diseo son la base para el desarrollo de software que ha medida del tiempo se han ido puliendo y que nos disminuye drsticamente la probabilidad de a fallar en el cdigo. Y como contra partida, tenemos los antipatrones de diseo que son parte importante en cuanto al desarrollo de la programacin pues me dicen explcitamente que es lo que no debo hacer cuando trabajo en este campo. METODOLOGIA Teniendo en cuenta que el desarrollo en la programacin es una tarea bastante compleja porque aparte de que existen ciertas pautas tcnicas como el reconocimiento de comandos y operaciones, hay una parte lgica

actuando constantemente en la ejecucin de un cdigo en particular, esto genera cierto nivel de complejidad al momento de realizar la actividad. Hablando de anti-patrones, es preciso determinar que un anti-patrn de diseo es un patrn de diseo que invariablemente conduce a una mala solucin para un problema. Hablando de un poco de historia, el trmino se origina inspirado en el libro Design Patterns, escrito por un grupo de autores conocido como Gang of Four, y que aglutina un conjunto de buenas soluciones de programacin. Los autores bautizaron dichas soluciones con el nombre de "patrones de diseo" por analoga con el mismo trmino, usado en arquitectura. El libro AntiPatterns (de William Brown, Raphael Malveau, Skip McCormick y Tom Mowbray, junto con la ms reciente incorporacin de Scott Thomas) describe los anti-patrones como la contrapartida natural al estudio de los patrones de diseo. El estudio formal de errores que se repiten permite reconocer y reconducir los elementos involucrados hacia una mejor solucin. Los anti-patrones no se mencionan en el libro original de Design Patterns, puesto que ste es anterior. El concepto de anti-patrn se puede aplicar a la ingeniera en general, e incluso a cualquier tarea realizada por el hombre.

2 Artculo de Investigacin

Anti-patrones de diseo

Los anti-patrones pueden dividirse en 3 grandes categoras: Desarrollo de Software: Se centran en problemas asociados al desarrollo de software a nivel de aplicacin. Arquitectura de Software: Se centran en la estructura de las aplicaciones y componentes a nivel de sistema y empresa. Gestin de Proyectos de Software: En la ingeniera del software, ms de la mitad del trabajo consiste en comunicacin entre personas y resolver problemas relacionados con stas. Los anti-patrones de gestin de proyectos de software identifican algunos de los escenarios clave donde estos temas son destructivos para el proceso de software.

Teniendo en cuenta lo anterior, hay claros ejemplos de anti-patrones de diseo, en donde se reflejan los errores comunes en los cuales se incurren al momento de programar: PATRONES GENERALES DE DISEO DE SOFTWARE Base de datos como comunicador de procesos (database as an IPC): Usar una base de datos para comunicar procesos en uno o varios ordenadores, cuando la comunicacin entre procesos directa es ms adecuada. Blob: Vase Objeto todopoderoso. BOMQ (Batch Over MQ): Abuso en el empleo de integracin basada en mensajes en tiempo real para transferencias espordicas de gran tamao en segundo plano. Clase Gorda: Dotar a una clase con demasiados atributos y/o mtodos,

hacindola responsable de la mayora de la lgica de negocio. Botn mgico (magic pushbutton): Tender, desarrollando interfaces, a programar la lgica de negocio en los mtodos de interaccin, implementando los resultados de las acciones del usuario en trminos no suficientemente abstractos. Carrera de obstculos (race hazard): Incapacidad de prever las consecuencias de diferentes sucesiones de eventos. Entrada chapuza (input kludge): No especificar e implementar el manejo de entradas invlidas. Fbrica de combustible (gas factory): Disear de manera innecesariamente compleja. Gran bola de lodo (big ball of mud): Construir un sistema sin estructura definida. Interfaz inflada (interface bloat): Pretender que una interfaz sea tan potente que resulta extremadamente difcil de implementar. Inversin de abstraccin (abstraction inversion): No exponer las funcionalidades implementadas que los usuarios necesitan, forzando a que se re implementen a ms alto nivel. Punto de vista ambiguo (ambiguous viewpoint): Presentar un modelo sin concretar ciertos aspectos, postergando as decisiones conflictivas. Re-dependencia (re-coupling): Introducir dependencias innecesarias entre objetos. Sistema de caeras de calefaccin (stovepipe system): Construir un sistema difcilmente mantenible, ensamblando componentes poco relacionados.

7 de Diciembre 2012

Teniendo en cuenta lo anterior, podemos entender que los anti-patrones de diseo son condiciones bsicas de anlisis de un cdigo en particular para percibir errores y depurarlos de manera eficaz. CONCLUSIONES El desarrollo en el mbito de la programacin es una tarea con un nivel de complejidad bastante alto que tiende a generar complicaciones al momento de implementar un cdigo, estas complicaciones son bastante difciles de observar, pues lneas y lneas de cdigo para revisar se convierte en una tarea tediosa, y que teniendo ciertas pautas, las soluciones a esos problemas se pueden corregir de una manera eficaz observando patrones y anti-patrones en el diseo de software. Adems de lo anterior, los anti-patrones se pueden clasificar segn el nivel de desarrollo de software, y que dependiendo de la manera como se desarrolle la actividad (Sea programacin secuencial, estructurada, orientada a objetos, etc.) as mismo los antipatrones se comportan de una manera mucho ms especifica resolviendo problemas con cierta particularidad. Los patrones o anti-patrones no solo se implementan en un cdigo, sino que adems, las actividades de ingeniera se ven directamente afectadas bajo estos criterios, que precisamente me ayudan a reducir temas de costos en tiempo y dinero. REFERENCIAS BIBLIOGRAFICAS http://unpocodejava.wordpress.com/2012/02/ 29/antipatrones-iii-antipatrones-generales-dediseno-de-software/ http://es.wikipedia.org/wiki/Antipatr %C3%B3n_de_dise%C3%B1o http://es.wikipedia.org/wiki/Patr %C3%B3n_de_dise%C3%B1o

4 Artculo de Investigacin

You might also like