Upload
trinhkhuong
View
222
Download
0
Embed Size (px)
Citation preview
PATRONES DE DISEÑO
FRAMEWORKS
Definiciones
Finalidades
Características
Diseño de software basado en patrones
Descripción
Utilización de los patrones en el diseño
Clasificación
FRAMEWORKS
Basado en la reutilización del diseño detallado y el código
“conjunto integrado de componentes que colaboran dentro de una arquitectura reutilizable en una familia de aplicaciones”
“desde la óptica de la programación es un conjunto de funciones o código genérico que realiza tareas comunes y frecuentes en todo tipo de aplicaciones, como la creación de objetos, conexión con base de datos, entre otros”
VENTAJAS DEL USO DE
FRAMEWORKS
Permite mejor modularización de componentes
Reutilización óptima de los códigos
Implementa uno o más patrones de diseño de
software que aseguran la escalabilidad del
producto
En las tecnologías de aplicaciones web, los
patrones de diseños más usados son los que se
centran en separar la presentación (página
html, css) de la lógica o backend.
VENTAJAS DEL USO DE
FRAMEWORKS
El patrón más popular es el MVC, este separa
las capas de modelo:
Objetos que interactúan con BD y efectúan procesos
pesados o lógica de negocio
Vista, la presentación final de los datos procesados al
cliente
Controlador, capa que se encarga de recibir la entrada
del usuario, delegando el trabajo a los modelos
respectivos e invocar la vista correcta
REQUERIMIENTOS NO FUNCIONALES-
FRAMEWORKS
Construir sistemas distribuidos
Permitir el reuso de la interfaz de usuario:
separar el comportamiento de las interfaces
Reducir el número de solicitudes al backend,
manejando la información del lado del cliente
Centralizar el acceso a los objetos del dominio
para ofrecer su información
Obtener una arquitectura flexible, manejo
estándar de interfaces
PATRÓN DE DISEÑO
“Es una semilla de conocimiento, la cual tiene
un nombre y transporta la esencia de una
solución probada a un problema concurrente
dentro de cierto contexto en medio de intereses
en competencia”
Brad Appleton (1998)
PATRÓN DE DISEÑO
Se puede decir que el patrón de diseño
describe una estructura de diseño
particular dentro de un contexto específico
y en medio de fuerzas que pueden tener
un impacto en la manera en que se aplica
y utiliza el patrón.
PATRÓN DE DISEÑO
“Cada patrón describe un problema que
ocurre una y otra vez en nuestro entorno,
y después describe la esencia de la
solución a dicho problema, de tal forma
que pueda usar esta solución un millón de
veces más, sin nunca hacerlo dos veces de
la misma forma.”
Christopher Alexander
OTRAS DEFINICIONES DE PATRONES DE
DISEÑO
Herramientas que proveen facilidades para hacer software reutilizable y de buena calidad.
Describe un problema que ocurre repetidamente en nuestro entorno, y describe el núcleo de la solución a ese problema, de tal forma que ésta pueda ser usada un millón de veces, sin hacer el mismo trabajo dos veces
OTRAS DEFINICIONES DE PATRONES DE
DISEÑO
Se reconoce como patrón si se codifican en un formato estructurado que describe el problema y su solución, y si se les asigna un nombre.
Es una pareja de problema / solución con un nombre y que es aplicable a otros contextos, con una sugerencia sobre la manera de usarlo en situaciones nuevas.
FINALIDADES DEL PATRÓN DE DISEÑO
Proporcionar una descripción que le permita al
diseñador:
Si el patrón es aplicable al trabajo que se
pretende realizar
Si el patrón puede ser reutilizado, a fin de
ahorrar tiempo en el diseño
Si el patrón puede servir de guía para el
desarrollo de un patrón similar, pero distinto
de manera funcional o estructural
CARACTERÍSTICAS DE UN PATRÓN DE
DISEÑO
Son soluciones concretas. Proponen soluciones a problemas concretos, no son teorías genéricas.
Son soluciones técnicas. Indican resoluciones técnicas basadas en Programación Orientada a Objetos (POO). En ocasiones tienen más utilidad con algunos lenguajes de programación y en otras son aplicables a cualquier lenguaje.
Se utilizan en situaciones frecuentes. Ya que se basan en la experiencia acumulada para resolver problemas reiterativos.
CARACTERÍSTICAS DE UN PATRÓN DE
DISEÑO
Favorecen la reutilización de código. Ayudan a construir software basado en la reutilización, a construir clases reutilizables. Los propios patrones se reutilizan cada vez que se vuelven a aplicar.
El uso de un patrón no se refleja en el código. Al aplicar un patrón, el código resultante no tiene por que delatar el patrón o patrones que lo inspiró, aun cuando la tendencia en la actualidad es incluir en los nombres de las clases el nombre del patrón en que se basa, a fin de facilitar la comunicación entre desarrolladores.
Es difícil reutilizar la implementación de
un patrón. Al aplicar un patrón aparecen clases
concretas que solucionan un problema concreto y
que no será aplicable a otros problemas que
requieran el mismo patrón.
Características de un Patrón de Diseño
DISEÑO DE SOFTWARE BASADO EN
PATRONES
Los ingenieros de software tienen la responsabilidad de definir patrones característicos de un problema y que puedan combinarse entre sí para crear una solución.
Este debe en la medida posible evaluar la reutilización de patrones de diseño existentes y probados, en lugar de dedicar tiempo en crear nuevos patrones.
DESCRIPCIÓN DE UN PATRÓN DE
DISEÑO
De acuerdo a lo expuesto por Pressman (2006)
Nombre del Patrón: Describe la esencia de un
patrón en un nombre corto, pero expresivo
que permita su ubicación durante la
búsqueda del patrón correcto.
Intención: Describe el patrón y lo que este
realiza.
Motivación: Proporciona un ejemplo del
problema.
Aplicabilidad: Situaciones específicas de
diseño en las cuales es aplicable el patrón.
DESCRIPCIÓN DE UN PATRÓN DE
DISEÑO
Estructura: Describe las clases que se requieren para implementar el patrón.
Participantes: Define las responsabilidades de las clases que se requieren para implementar el patrón.
Colaboraciones: Cómo colaboran los participantes para llevar a cabo sus responsabilidades.
DESCRIPCIÓN DE UN PATRÓN DE
DISEÑO
Consecuencias: Describe las fuerzas del
diseño que afectan al patrón y los
intercambios que se deben considerar la
implementación del patrón.
Patrones Relacionados: Patrones de diseño
relacionados mediante referencias cruzadas.
Fuerzas de diseño: describe requisitos no
funcionales (mantenibilidad, portabilidad)
asociados con el software en el que se
aplicará el patrón. Además de las
limitaciones que restringen la
implementación del patrón.
UTILIZACIÓN DE PATRONES EN EL
DISEÑO
Después del análisis, el diseñador puede
representar de forma detallada el problema y
sus restricciones.
Patrones Arquitectónicos: Definen
Estructura general
Relaciones entre los subsistemas
Componentes del Software
Reglas de definición de las relaciones entre elementos
UTILIZACIÓN DE PATRONES EN EL
DISEÑO
Patrones de Diseño: Se aplican a elementos
específicos del diseño:
Relación entre los componentes
Mecanismos de comunicación entre componentes
Idiomas: Conocidos como patrones de códigos
específicos del lenguaje:
Elemento algorítmico
Protocolo de interfaz específico
CLASIFICACIÓN DE LOS PATRONES DE
DISEÑO
Según los planteamientos realizados por Gof se
tienen las siguientes categorías:
Patrones de Creación: maneja patrones que manejan las
guías en la construcción de objetos, implicando la toma de
una decisión sobre la clase responsable de su creación.
Singleton: Se usa cuando se desea garantizar que de una
clase solo existe una instancia, ejemplo la conexión con la
base de datos en la que se debe gestionar un recurso externo
Patrones Estructurales: Describen mecanismos
genéricos para organizar diferentes clases de objetos entre
sí.
Patrones de Comportamiento: se emplean para
organizar, gestionar y combinar el comportamiento de
diferentes objetos.
CLASIFICACIÓN DE LOS PATRONES DE
DISEÑO
Según Mark Grand (Patterns in Java) se
debe considerar en las categorías anteriores
mencionadas por Gof, los Patrones
Fundamentales; que a su vez manejan el
patrón interfaz y patrón delegación.
CLASIFICACIÓN DE LOS PATRONES DE
DISEÑO
Patrón Interfaz: En este patrón se debe considerar el dar respuesta a aspectos como: Tiempo de respuesta del sistema, se mide desde el
instante en que el usuario hace una acción de control hasta que obtiene respuesta del sistema
Funciones de ayuda para el usuario, casi todos los software deben tener ayuda en línea que le indique al usuario tener respuesta a sus preguntas
Manejo de información de errores, los errores deben ser expresados en un lenguaje comprensible al usuario que le permita emprender una acción que resuelva la situación
Rotulado de Comandos , en la actualidad esto ha sido desplazado por las GUI de ventanas
CLASIFICACIÓN DE LOS PATRONES DE
DISEÑO
Patrón Delegación: Consiste en un medio de
extender y reutilizar la funcionalidad de una
clase mediante la creación de otra clase que
se le proporcione. Los lenguajes orientados
objetos proporcionan mecanismos para
implementarlo
CLASIFICACIÓN DE LOS PATRONES DE
DISEÑO
Patrón Delegación: Consiste en un medio de
extender y reutilizar la funcionalidad de una
clase mediante la creación de otra clase que
se le proporcione. Los lenguajes orientados
objetos proporcionan mecanismos para
implementarlo
CLASIFICACIÓN DE LOS PATRONES DE
DISEÑO
Patrón Mediador: Consiste en el manejo de
las interfaces del usuario
Coordina cambios en los estados de otros objetos
Coloca en un objeto lógica para administrar los
cambios de estado en otros objetos
Patrón de Transferencia de Datos de Objetos:
En interfaces remotas se requiere reducir el
número de llamadas y transferir mayor
cantidad de datos.