Sunteți pe pagina 1din 4

Patrones y Anti-Patrones

Patrones
Los patrones son una disciplina de resolucin de problemas reciente en la ingeniera del
software que ha emergido en mayor medida de la comunidad de orientacin a objetos,
aunque pueden ser aplicados en cualquier mbito de la informtica y las ciencias en
general.
Como elemento de un lenguaje, un patrn es una instruccin que muestra como puede
ser usada esta configuracin espacial una y otra vez para resolver el sistema de fuerzas,
siempre que el contexto lo haga relevante.
Cada patrn describe un problema que ocurre una y otra vez en nuestro entorno, para
describir despus el ncleo de la solucin a ese problema, de tal manera que esa
solucin pueda ser usada ms de un milln de veces sin hacerlo ni siquiera dos veces de
la misma forma.
Los patrones son un punto de partida, no un destino.
Los modelos no estn bien o mal, sino que son ms o menos tiles.
Los Patrones de software facilitan la reutilizacin del diseo y de la arquitectura,
capturando las estructuras estticas y dinmicas de colaboracin de soluciones exitosas
a problemas que surgen al construir aplicaciones. Cada patrn aborda un problema
especfico y recurrente en el diseo o implementacin de un sistema de software.
Caractersticas de un buen patrn:
Resuelve un problema: Los patrones capturan soluciones, no principios o estrategias
abstractas.
Es un concepto probado: Capturan soluciones, no teoras o especulaciones.
La solucin no es obvia: Muchas tcnicas de resolucin de problemas (como los
paradigmas o mtodos de diseo de software) intentan derivar soluciones desde
principios bsicos. Los mejores patrones generan una solucin a un problema
indirectamente.
Describe una relacin: Los patrones no describen mdulos sino estructuras y
mecanismos.
Tiene un componente humano significante: El software sirve a las personas. Los mejores
patrones aplican a la esttica y a las utilidades.
Niveles de patrones
Los patrones en cada grupo varan respecto a su nivel de detalle y abstraccin:
Patrones de arquitectura: afecta a la estructura global del sistema
Patrones de diseo: definen micro-arquitecturas de componentes
Idiomas: detalle de la estructura y comportamiento de componente
Patrones de Diseo
Un patrn de diseo describe una estructura recurrente de componentes que se
comunican para resolver un problema general de diseo en un contexto particular.
Nomina, abstrae e identifica los aspectos clave de una estructura de diseo comn, lo
que los hace tiles para crear un diseo orientado a objetos reutilizable. Identifica las
clases e instancias participantes, sus roles y colaboraciones y la distribucin de
responsabilidades.
Nombre: Permite describir, en una o dos palabras, un problema de diseo junto con sus
soluciones y consecuencias. Al dar nombres a los patrones estamos incrementando
nuestro vocabulario de diseo, lo cual nos permite disear y comunicarnos con un
mayor nivel de abstraccin (en lugar de hablar de clases individuales nos referimos a
colaboraciones entre clases).
Problema: Describe cundo aplicar el patrn. Explica el problema y su contexto. A veces
incluye condiciones que deben darse para que tenga sentido la aplicacin del patrn.
Solucin: Describe los elementos que constituyen el diseo, sus relaciones,
responsabilidades y colaboraciones. La solucin no describe un diseo o
implementacin en concreto, sino que es ms bien una plantilla que puede aplicarse en
muchas situaciones diferentes.
Consecuencias: son los resultados, as como ventajas e inconvenientes de aplicar el
patrn.
Clasificacin de patrones de diseo
De Creacin: Abstraen el proceso de creacin de instancias de objetos. Ayudan a hacer
a un sistema independiente de cmo se crean, se componen y se representan sus
objetos.
Estructurales: Tratan con la composicin de clases u objetos. Se ocupan de cmo las
clases y objetos son utilizados para componer estructuras de mayor tamao.
De Comportamiento: Caracterizan el modo en que las clases y objetos interactan y se
reparten la responsabilidad. Ataen a los algoritmos y a la asignacin de
responsabilidades entre objetos.


Patrones de arquitectura
Los patrones de arquitectura expresan el esquema fundamental de organizacin para
sistemas de software. Proveen un conjunto de subsistemas predefinidos; especifican sus
responsabilidades e incluyen reglas y guas para organizar las relaciones entre ellos por
ejemplo, el diseo detallado de los subsistemas, la comunicacin y colaboracin entre
diferentes partes del sistema, etc. Cada patrn de arquitectura ayuda a conseguir una
propiedad especfica en el sistema global.
Antipatrones
Los antipatrones son soluciones negativas que presentan ms problemas que los que
solucionan. Son una extensin natural a los patrones de diseo. Comprender los
antipatrones provee el conocimiento para intentar evitarlos o recuperarse de ellos.
Los antipatrones se documentan con cierto cinismo, lo cual los hace bastante graciosos
y fciles de recordar. Los nombres siempre aluden al problema que tratan con humor.
Se documentan mediante una plantilla (como los patrones de diseo) que incluye
secciones para documentar la solucin origen (que es la causa del problema), el
contexto, las fuerzas en conflicto y las soluciones correctas propuestas (para ms
detalles sobre la plantilla.
Por qu estudiar antipatrones
Un antipatrn es una forma literaria que describe una solucin comn a un problema
que genera decididamente consecuencias negativas. Son un mtodo eficiente para
vincular una situacin general a una clase de solucin especfica.
Proveen experiencia del mundo real para reconocer problemas recurrentes en la
industria del software, ofreciendo tambin una solucin para sus implicaciones ms
comunes.
Establecen un vocabulario comn para identificar problemas y discutir soluciones.
Soportan la resolucin holstica de conflictos, utilizando recursos organizacionales a
diferentes niveles.
Son un mtodo eficiente para vincular una situacin general a una clase de solucin
especfica.
Proveen experiencia del mundo real para reconocer problemas recurrentes en la
industria del software, ofreciendo tambin una solucin para sus implicaciones ms
comunes.
Establecen un vocabulario comn para identificar problemas y discutir soluciones.
Soportan la resolucin holstica de conflictos, utilizando recursos organizacionales a
diferentes niveles.

Categoras de antipatrones
Estos se dividen en 3 grandes categoras a las cuales se denominan puntos de vista:
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 antipatrones de gestin de proyectos de software identifican algunos de los
escenarios clave donde estos temas son destructivos para el proceso de software.

S-ar putea să vă placă și