PATRONES DE 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 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 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 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 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 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 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 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 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.
Características de un Patrón de Diseño 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.
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 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 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 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 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 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 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 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 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 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 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 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.