patrones de diseño -...

26
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

Upload: trinhkhuong

Post on 29-Sep-2018

225 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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

Page 2: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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”

Page 3: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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.

Page 4: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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

Page 5: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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

Page 6: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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)

Page 7: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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.

Page 8: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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

Page 9: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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

Page 10: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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.

Page 11: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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

Page 12: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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.

Page 13: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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.

Page 14: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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

Page 15: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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.

Page 16: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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.

Page 17: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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.

Page 18: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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.

Page 19: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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

Page 20: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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

Page 21: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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.

Page 22: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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.

Page 23: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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

Page 24: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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

Page 25: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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

Page 26: Patrones de Diseño - s4f4a6e0c58d15cfc.jimcontent.coms4f4a6e0c58d15cfc.jimcontent.com/download/version... · VENTAJAS DEL USO DE FRAMEWORKS Permite mejor modularización de componentes

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.