Arquitectura De Software Patrones
Semana # - Sesión #
Temario
• ¿Qué es un patrón?
• Patrones de arquitectura
• Patrones de diseño
¿Cuál es la constante en el desarrollo del software?
• No importa donde se trabaje
• No importa qué se esté construyendo
• No importa la experiencia en el uso de un lenguaje
de programación o ambiente de desarrollo
• La única constante es el CAMBIO
1
¿Qué esun patrón?
¿Qué es un patrón?
• De acuerdo a Martin Fowler…
– Un "patrón" se define como “una idea que ha sido útil
en un contexto particular y que probablemente sea útil
en otros”
– Un patrón se encuentra “estrictamente descrito y
comúnmente disponible”.
¿Qué es un patrón de arquitectura?
• Representan el más alto nivel de patrones.
– Explican la estructura fundamental del sistema.
• Lospatrones de arquitectura ofrecen soluciones bien
establecidas a problemas de arquitectura.
– Provee descripciones de elementos y los tipos de
relaciones entre ellos en conjunto con las restricciones de
cómo pueden usarse.
– Expresa un esquema estructural que consiste de
subsistemas, sus responsabilidades e interrelaciones.
– Los patrones de arquitectura son de una escala mayor a los
de diseño.¿Qué es un patrón de diseño?
• Es una solución general reusable para un problema
frecuente en el diseño de software.
– Es una descripción o plantilla de como resolver un
problema, que puede ser usada en diferentes situaciones.
– No es un diseño final que pueda ser transformado en
código, más si un diseño general que puede ser adaptado a
una realidad concreta.
– Patrones de diseño OO típicamentemuestran relaciones e
interacciones entre clases u objetos.
Documentación de un patrón
• Usualmente los patrones se encuentran descritos con
la siguiente documentación:
Nombre
• Tiene que ser significativo y fácil de memorizar.
• Típicamente consta de una sola palabra o de una frase corta.
Problema
• Es una descripción del problema, indicando la intención de
aplicar el patrón y los objetivos aalcanzar en relación al
contexto.
• Normalmente se enuncia como una pregunta.
Contexto
• Son las pre-condiciones sobre las que el patrón es aplicable.
• Consta de una descripción de las principales influencias y
restricciones y como ellas interactúan o causan conflicto.
Influencias
• Debe explicar también la clase de concesiones que deben
considerarse.
Documentación de un patrón
Solución
• Unadescripción usando un texto y/o gráficos de como
alcanzar los objetivos. Debe identificar tanto la estructura
estática como la dinámica.
• Una solución completa incluye guías de como implementar
la solución.
Contexto
resultante
• Son las post-condiciones después que el patrón ha sido
aplicado.
• Describe que influencias y restricciones han sido resueltas y
cuáles no.
Patrones
relacionados
•Muestra la relación entre el patrón descrito y otros
patrones.
• Los otros patrones pueden ser predecesores, sucesores, codependientes o alternativos.
Usos conocidos
• Aplicaciones conocidas del patrón en sistemas existentes.
Patrones vs. Framework
• Un framework es una colección organizada de
clases que constituyen un diseño reutilizable para
un tipo específico de software.
– Proporciona laarquitectura completa sobe la cual se
construye la aplicación.
– Ejemplos de frameworks
• .Net
• Spring, Apache Struts, GlassFish en Java
• Diferencias con patrones:
– Los patrones son más abstractos que los frameworks.
– Los patrones son menos especializados.
– La definición de un patrón no está sujeta a un lenguaje
en particular.
¿Por qué usar patrones?
• Los diseñadores expertos manejanpatrones
recurrentes de clases y colaboraciones útiles ante
determinados problemas.
• Los patrones resuelven problemas concretos y crean
diseños más elegantes, flexibles y reutilizables.
• Constituyen un conjunto de prácticas que pueden dar
solución a grandes problemas en un contexto
determinado.
Lo importante en el diseño es la
“reutilización de la experiencia”
¿Por qué usar patrones?
• Para...
Regístrate para leer el documento completo.