PATRONES DE DISEÑO FRAMEWORKS

Documentos relacionados
Diseño arquitectónico 1ª edición (2002)

1. Asignar Responsabilidades a componentes de software es la habilidad más importante del AOO. Porque:

Grado en que el producto software satisface las necesidades expresadas o implícitas, cuando se usa bajo condiciones determinadas. ISO

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET

Programa de actualización profesional ACTI.NET Desarrollo de aplicaciones locales y web con tecnología VB.NET 2010

Fundamentos de Ingeniería de Software [Etapas II]

Carrera: Ingeniería en Tecnologías de la Información y Comunicaciones

Capítulo 16. Diagrama de Clases UML

Clase 2: Arquitectura de Software

Investigación de Mercados. Sesión 1: El proceso de toma de decisiones en la investigación de mercados

TÉCNICO SUPERIOR UNIVERSITARIO EN TECNOLOGÍAS DE LA INFORMACIÓN Y COMUNICACIÓN ÁREA SISTEMAS INFORMÁTICOS.

Desarrollador de Aplicaciones Web con Java

INGENIERÍA DEL SOFTWARE

UML (Lenguaje de Modelado Unificado) y Diagramas de Casos de Uso

CAPITULO 1 INTRODUCCION AL PROYECTO

IFCD0210 Desarrollo de Aplicaciones con Tecnologías Web

Lenguajes de marcado para presentación de Páginas web.

Tema II:Evaluación de los entornos virtuales CÓMO EVALUAR EL E-LEARNING?

El Proceso. Capítulo 2 Roger Pressman, 5 a Edición. El Proceso de Desarrollo de Software

UNIDAD 1: CONCEPTOS BA SICOS DE BASE DE DATOS

TEMA 7: INGENIERIA DEL SOFTWARE.

LICENCIADO EN SISTEMAS COMPUTACIONALES. Este programa educativo se ofrece en las siguientes sedes académicas de la UABC:

DIAGRAMAS UML ANDRÉS ESTEBAN MARTÍNEZ HUTA CICLO DE VIDA DEL SOFTWARE GLORIA CECILIA RÍOS MUÑOZ

Requerimientos de Software

DESCRIPCIÓN ESPECÍFICA NÚCLEO: COMERCIO Y SERVICIOS SUBSECTOR: INFORMÁTICA

Descripción del Curso

ESTÁNDAR DE COMPETENCIA. Mantenimiento a equipo de cómputo y software

INTRODUCCIÓN AL PARADIGMA DE LA PROGRAMACIÓN ORIENTADA A OBJETOS CON JAVA

Representantes de la academia de sistemas y computación de los Institutos Tecnológicos. Academia de sistemas y computación.

20483 Programación en C#

1. Datos Generales de la asignatura. Control de procesos. Nombre de la asignatura: APD Clave de la asignatura: Créditos (Ht Hp_ créditos): 2 3 5

Tema 1: Patrones Arquitectónicos

Ingeniería de Requerimientos. requiere de un Sistema de Software.

ADMINISTRACIÓN DE SERVIDORES BAJO WINDOWS 2012 MS20410: Instalando y Configurando Windows Server 2012

Los diagramas de clases y de objetos sirven para modelar diversos aspectos estructurales o estáticos de un sistema: Modelado - Vocabulario del Sistema

PROCEDIMIENTO DE EVALUACIÓN Y ACREDITACIÓN DE LAS COMPETENCIAS PROFESIONALES CUESTIONARIO DE AUTOEVALUACIÓN PARA LAS TRABAJADORAS Y TRABAJADORES

De Desempeño De Conocimiento SABERES ESENCIALES CONTENIDOS RUTA FORMATIVA Saber Conocer Nociones, Proposiciones, Conceptos Categorías

Inteligencia en Redes de Comunicaciones - 08 Agentes

Calidad y Reutilización de Software. Dr. Cuauhtémoc Lemus Olalde. Centro de Investigación en Matemáticas (CIMAT) Febrero, 2003

UIT-T I.230 SECTOR DE NORMALIZACIÓN DE LAS TELECOMUNICACIONES DE LA UIT

Diseño y Desarrollo Web. Espinola Raul 2008 basado en una Presentación de G. Gaona.

Proceso Unificado (Iterativo e incremental)

FICHA PÚBLICA DEL PROYECTO

INTERFACES INTELIGENTES. ING. MA. MARGARITA LABASTIDA ROLDÁN E mail:

CAPÍTULO 2: DISEÑO GLOBAL DEL PROYECTO

INFORMÁTICA Y COMUNICACIONES

Consultor - Ingeniero de construcción para la rehabilitación de la Oficina Nacional de UNICEF México

Instituto Schneider Electric de Formación

Liderando Proyectos de software para dispositivos de Apple. Creatividapps

ISO 9004:2009: Gestión del éxito sostenido de una organización. Un enfoque de gestión de la calidad

Nombre de la asignatura: Simulación. Créditos: Aportación al perfil

TEMA 4. PROCESO UNIFICADO

Implementación de Centros de Computo y Redes de Computadoras

Developing ASP.NET MVC 4 Web Applications

Secretaría General ELEMENTOS Y CARACTERÍSTICAS DEL PROGRAMA DE ESTUDIOS

Secretaría General ELEMENTOS Y CARACTERÍSTICAS DEL PROGRAMA DE ESTUDIOS

Modelo de los reactores de la tecnología HDHPLUS como componentes de simulación interoperables

DIRECCIÓN DE PROFESIONALIZACIÓN Y CAPACITACIÓN DEL SERVIDOR PÚBLICO LOCAL

UNIVERSIDAD DISTRITAL FRANCISCO JOSÉ DE CALDAS FACULTAD DE INGENIERÍA PROYECTO CURRICULAR DE INGENIERÍA INDUSTRIAL

INGENIERA DE PATENTES PROPIEDAD INTELECTUAL COLOMBIA

Administración de Recursos Informáticos Unidad II: Unidad de Tecnologías de Información y Comunicaciones La Generación de Proyectos

Empleo. CURSO FORMATIVO Desarrollo de portales WEB en Liferay. Coordinador Académico Antonio José Martín Sierra

Programación Orientada a Objetos (POO)

Patrones. Patrones GRASP GRASP GRASP. Curso de Arquitecturas de Software. Programación Orientada a Objetos Patrones GRASP

COMPONENTES Y CONTENEDORES. Ingeniería de Software II

Sistemas Operativos. Introducción. Tema 6

ARQUITECTURAS PARA PROCESAMIENTO PARALELO

GeneXus: Filosofía. Preparado por Breogán Gonda y Nicolás Jodal

Nombre de la asignatura: Investigación de Operaciones II. Créditos: Aportación al perfil

Evaluación Diagnóstico puesta en común. Escuela Técnica ORT - TIC

Contenido. 1. El proceso 2. Los modelos 3. Los diagramas 4. Ejemplo

Ingeniería del Software Ingeniería del Software de Gestión. Tema 3 Metodologías de Desarrollo de Software

SILABO DE LA ASIGNATURA INGENIERIA DEL SOFTWARE

Oferta tecnológica: Sistema de control que permite el vuelo autónomo de drones

UNIVERSIDAD AUTÓNOMA DE CHIAPAS LICENCIATURA EN SISTEMAS COMPUTACIONALES

RESUMEN DE LAS DIAPOSITIVAS DE BASE DE DATOS 1

ORGANIZACIÓN, IMPLEMENTACIÓN Y CONTROL DE MARKETING. Omar Maguiña Rivero

DESCRIPCIÓN DE ELECTIVOS

EL MÓDULO DE RELACIONES EN EL EQUIPO DE TRABAJO EN LA FORMACIÓN PROFESIONAL

JAVA 7 Los fundamentos del lenguaje Java

CIDE, SA. RIF: J NIT: MODELO FUNCIONAL

Metodología Dharma de Dirección de Proyectos (MDDP) sobre MS Project. I. Introducción

Contenido. Curso de Técnicas avanzadas de diseño web (online)

GOBIERNO ELECTRÓNICO

Servicio suplementario presentación de identidad de línea conectada.

3. DOCUMENTACIÓN 3.1. DOCUMENTACIÓN DE APLICACIONES. OBJETIVOS PARA MODIFICAR HACE FALTA COMPRENDER/ESTUDIAR:

ESCUELA DE INFORMÁTICA

INGENIERIA CIVIL. Tercera Reunión General del Proyecto Tuning América Latina: innovación educativa y social Santiago de Chile del 2 al 4 de mayo 2012

INGENIERÍA DEL SOFTWARE I Práctica 5 Modelado de Diseño

Control Interno basado en COSO en las Entidades Municipales

Proyecto Multimedia. Elio Sancristóbal Ruiz

Transcripción:

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.