2
Programación Orientada a Objetos
Facultad de Informática
Juan Pavón Mestras
Dep. Ingeniería del Software e Inteligencia Artificial
Universidad Complutense Madrid
Hacer software no es fácil
Diseñar software orientado a objetos es difícil, y diseñar
software orientado a objetos reutilizable es todavía más
difícil
Chapter 1: Introduction. Design Patterns,The Gang of Four
...y un software capaz de evolucionar tiene que
ser reutilizable (al menos para las versiones
futuras)
Juan Pavón Mestras
Facultad de Informática UCM, 2004
Patrones de creación
2
Diseñar para el cambio
El software cambia
Para anticiparse a los cambios en los requisitos hay que
diseñar pensando en qué aspectos pueden cambiar
Los patrones de diseño están orientados alcambio
Juan Pavón Mestras
Facultad de Informática UCM, 2004
Patrones de creación
3
Patrones
Cómo llegar a ser un maestro de ajedrez
Primero aprender las reglas del juego
A continuación aprender los principios
relativo valor de las piezas, valor estratégico de las casillas
centrales, jaque cruzado, etc.
Sin embargo, para llegar a ser un maestro, hay que estudiar las
partidas deotros maestros
nombres de las piezas, movimientos legales, geometría y orientación
del tablero, etc.
Estas partidas contienen patrones que deben ser entendidos,
memorizados y aplicados repetidamente
Hay cientos de estos patrones
Juan Pavón Mestras
Facultad de Informática UCM, 2004
Patrones de creación
4
Patrones
Cómo llegar a ser un maestro del software
Primero aprender las reglas
A continuación aprender los principios
programación estructurada, programación modular, programación
OO, programación genérica, etc.
Sin embargo, para llegar a ser un maestro, hay que estudiar los
diseños de otros maestros
algoritmos, estructuras de datos, lenguajes de programación, etc.
Estos diseños contienen patrones que deben ser entendidos,
memorizados y aplicadosrepetidamente
Hay cientos de estos patrones
Juan Pavón Mestras
Facultad de Informática UCM, 2004
Patrones de creación
5
Patrones
Christopher Alexander (1977):
Cada patrón describe un problema que ocurre una y otra vez en nuestro
entorno, y describe la esencia de la solución a ese problema, de tal modo que
pueda utilizarse esta solución un millón de veces más, sin siquiera hacerlo de
la misma manerados veces
Un patrón es:
una solución a un problema en un contexto particular
recurrente (lo que hace la solución relevante a otras situaciones)
enseña (permite entender cómo adaptarlo a la variante particular del
problema donde se quiere aplicar)
tiene un nombre para referirse al patrón
Los patrones facilitan la reutilización de diseños y arquitecturas
software que han tenido éxitoJuan Pavón Mestras
Facultad de Informática UCM, 2004
Patrones de creación
6
Motivación de los Patrones
Capturan la experiencia y la hacen accesible a los no
expertos
El conjunto de sus nombres forma un vocabulario que
ayuda a que los desarrolladores se comuniquen mejor
Lenguajes de patrones
Ayudan a la gente a comprender un sistema más
rápidamente cuando está documentado conlos patrones
que usa
Los patrones pueden ser la base de un manual de
ingeniería de software
Si el software se convierte en una ingeniería, las prácticas
exitosas deben ser documentadas sistemáticamente y
ampliamente difundidas
Juan Pavón Mestras
Facultad de Informática UCM, 2004
Patrones de creación
7
Motivación de los Patrones
Facilitan la reestructuración de un sistema tanto si fue o
noconcebido con patrones en mente
Reutilización:
Los patrones de diseño soportan la reutilización de
arquitecturas software
Los armazones soportan la reutilización del diseño y del
código
El software cambia
Para anticiparse a los cambios en los requisitos hay que
diseñar pensando en qué aspectos pueden cambiar
Los patrones de diseño están orientados al cambio
Juan Pavón Mestras...
Regístrate para leer el documento completo.