Capítulo 4 Patrones y Patrones de Diseño (ii)



Documentos relacionados
Patrones de diseño en PHP Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP

Patrones de Diseño. Ezequiel Postan. 1 Libro e índice. 2 Introducción

Patrones de diseño en Java Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y Java

Patrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype

PATRONES DE DISEÑO. FAVA - Formación en Ambientes Virtuales de Aprendizaje. SENA - Servicio Nacional de Aprendizaje

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms

CLASE 10: MÁS PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez

ASIGNATURA: Ingeniería de software II DOCENTE: Licda.Carla Milagro López Vásquez RESPONSABLE: Rodolfo Alberto Palma Ramos CARRERA:

Patrones de diseño. Programación III.I.T.I. de Sistemas. Contenidos. Información sobre patrones de diseño. Motivación.

Instructivo para la elaboración de un Manual Técnico

Patrones de Diseño Orientados a Objetos 2 Parte

TIPOS DE PATRONES. PATRONES DE DISEÑO: Las soluciones probadas para el diseño de software. En estas nos vamos a centrar.

2.2.- Paradigmas de la POO

IN77J Orientación al Objeto para el e-business. 6. Diseño

Lógica de Negocios. Esteban Calabria 2007

Nombre del patrón: command orden (también es conocido como Action y Transaction)

Tutorial de UML. Introducción: Objetivos: Audiencia: Contenidos:

Tema: Patrones de Diseño.

Decorador y Prototype

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

ESCUELA POLITÉCNICA NACIONAL

Introducción a la Programación de Videojuegos y Gráficos

Patrones de diseño: Test 1

Unidad Docente de Ingeniería del Software. Facultad de informática - Universidad Politécnica de Madrid

2. Conceptos básicos Abstracción La abstracción como un proceso mental natural La abstracción en el desarrollo de software

PROGRAMACIÓN ORIENTADA A OBJETOS

Patrones de software y refactorización de código

Estilos de Arquitectura y. Patrones de Diseño Arquitectónico. Patrones de Arquitectura

Factory method (Gamma et al.)

DISEÑO DE APLICACIONES ORIENTADAS A OBJETOS

Diseño Basado en Componentes. Curso 2008/09

UML 2 Iniciación, ejemplos y ejercicios corregidos

Validación de Patrones de Diseño de Comportamiento a través de Perfiles UML

Una Arquitectura para una Herramienta de Patrones de Diseño

DIAGRAMA DE CLASES EN UML

TRABAJO DE DIPLOMA CÓDIGO DE MATERIA 29

Planificaciones Técnicas de Diseño. Docente responsable: PANTALEO GUILLERMO GUSTAVO. 1 de 5

Criterios para seleccionar tecnología de Modelos de Toma de Decisiones

Web Frameworks y patrones de diseño

Métricas. Valentin Laime. Calidad de Software

Capitulo III. Diseño del Sistema.

Gestión Documental con Microsoft Office SharePoint Server 2007 (MOSS) Ignacio López - Ingeniero en Informática Software Architect en Alhambra-Eidos

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

BASE DE DATOS RELACIONALES

2011 Universidad de Sevilla Grupo IDINFOR Universidad Carlos III Grupo ENTI

Patrones de diseño orientado a objetos

Técnicas de Desarrollo de Programas Ingeniería Informática Curso 2008 / Ejercicios de Patrones de Diseño:

Introducción a la Programación Orientada a Objetos (POO) Introducción a la Programación Orientada a Objetos (POO)

Patrones de Diseño. Patrón estructural Composite. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Repetir el proceso para cada abstracción identificada hasta que el diseño este expresado en términos sencillos

Funciones del Administrador de Base de Datos. Ing. Anaylen López, MSc Base de Datos II

PROCEDIMIENTO OPERATIVO DESARROLLAR SISTEMAS INFORMÁTICOS PDO-COCTI-DTIN-04

UNIDAD 2: Abstracción del Mundo real Al Paradigma Orientado a Objetos

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Diagrama de Clases. Diagrama de Clases

Patrones de Diseño. Patrón estructural Decorator. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

1 FUNDAMENTACION DE LA MATERIA

Patrones de diseño. Patrón básico Handler. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez)

Índice.

Arquitecturas Software. Arquitecturas Software. Arquitecturas Software. Juan José Moreno Navarro. Motivación: Idea principal: Características:

DISEÑO DE COMPONENTES DE SOFTWARE *

Estructuras de Sistemas Operativos

1. Aplicación de la conmutación de circuitos y la conmutación de paquetes. 1.1 Sistema de señalización número 7 (SS7).

3.1 INGENIERIA DE SOFTWARE ORIENTADO A OBJETOS OOSE (IVAR JACOBSON)

Notación UML para modelado Orientado a Objetos

Región de Murcia Consejería de Educación, Ciencia e Investigación. Manual Usuario FCT

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 5. Sistemas de Bases de Datos. frente a Sistemas de Ficheros

El Proceso Unificado Rational para el Desarrollo de Software.

Ingeniería del Software. Diseño. Diseño en el PUD. Diseño de software. Patrones arquitectónicos. Diseño Orientado a Objetos en UML

Manual de usuario para Android de la aplicación PORTAFIRMAS MÓVIL

TEMA 7: DIAGRAMAS EN UML

1. Generalidades. Nombre de la asignatura o unidad de aprendizaje. Apertura de negocios. Clave asignatura. Ciclo LA945. Modulo tercero (integración)

LINEAMIENTOS TÉCNICOS CATEGORÍA DISEÑO ORIENTADO A OBJETOS SENASoft Santander Documento elaborado por: Juan de Jesús Lizcano Sánchez

IES - Introducción a la Ingeniería del Software

Vicerrectorado de Investigación Oficina de Patentes y Valorización

- MANUAL TÉCNICO - Software de diagnóstico de la seguridad de la información y autoimplantación de LOPD. Rev. 01- FEBRERO 2013

Colección de Tesis Digitales Universidad de las Américas Puebla. Morales Salcedo, Raúl

A. Goñi, J. Ibáñez, J. Iturrioz, J.A. Vadillo OCW 2013

Capitulo 2. Marco Teórico

MICROSOFT EXCEL 2007 (COMPLETO)

Introducción al UML. Domingo Hernández H. Escuela de Ingeniería de Sistemas Departamento de computación

Rúbricas para Actividades de Aprendizaje para el siglo XXI. Colaboración

ARQUITECTURA DE DISTRIBUCIÓN DE DATOS

EXAMEN FINAL Metodología y Programación Orientada a Objetos. Curso Cuatrimestre de otoño. 17 de Enero de 2011

UNIDAD DIDACTICA 1: SISTEMAS GESTORES DE BASES DE DATOS

Diagramas del UML. A continuación se describirán los diagramas más comunes del UML y los conceptos que representan: Diagrama de Clases

Sistemas de Operación II

Los requisitos de accesibilidad en un proyecto software. Implicaciones de usuarios discapacitados en el proceso software

Modelado arquitectónico con UML

- MANUAL TÉCNICO - Implantación de software de Marketing Online

Manual del Profesor Campus Virtual UNIVO

Desarrollo de un Sistema de Gestión de Proyectos mediante el framework GWT

IAP ENTORNOS INFORMATIZADOS CON SISTEMAS DE BASES DE DATOS

Instructivo Planificación Curricular Parvularia. Configuración inicial

Programación Orientada a Objetos en Java

Unidad II: Diseño de Bases de Datos y el modelo E-R. 2.1 El Proceso de Diseño

Profesorado de Informática Ciencias de la Computación INET- DFPD Matemática I - Matemática Discreta usando el computador Ing. Prof.

Software Reutilizable. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 18 Slide 1

DCU Diagramas de casos de uso

GUÍAS. Módulo de Diseño de software SABER PRO

Transcripción:

Capítulo 4 Patrones y Patrones de Diseño (ii) Orientado a Objetos Ingeniería Informática Ingeniería Técnica de Informática de Sistemas y Gestión Optativa (6 créditos) http://www.info-ab.uclm.es/asignaturas/42579 Bibliografía Design Patterns. Elements of Reusable Object-Oriented Software Gamma, e., Helm, R., Johnson, R., Vlissides, J. Addison Wesley, 1994 (Edición de 2003 en castellano) UML y Patrones. Introducción al análisis y diseño orientado a objetos Larman, G. Prentice Hall. 1999 http://webs.teleprogramadores.com/patrones/ http://www.dofactory.com/patterns/patterns.aspx http://www.jacana.org.uk/pattern/ 2

Patrones de creación. Resumen Hay dos formas de parametrizar un sistema: uno es con la herencia y otro es con la composición. Ejemplo del primer método es el Factory Method y ejemplo del segundo son los patrones Abstract Factory, Builder y Prototype Abstract Factory produce objetos de varias clases Builder construye un producto complejo incrementalmente En Prototype hace que su objeto fábrica construya un producto copiando un objeto prototípico Muchas veces los diseños comienzan usando el patrón Factory Method y luego evolucionan hacia los otros patrones de creación 3 Patrones de diseño. Estructural Adapter Bridge Composite Decorator Façade Flyweight Proxy 4

Adapter Target: Define una interfaz de dominio específico que el cliente utiliza Adapter Adapta interfaces de Adaptee y Target Adaptee: Define una interfaz que existiendo necesita adaptación Client: utiliza objetos ajustándose a la interfaz ofrecida por Target 5 Bridge Abstraction: define la interfaz de la abstracción RefinedAbstraction: Extiende la interfaz definida por la Abstraction Implementor: define la interfaz de las clases de implementación, no tiene porque corresponderse con el interfaz de Abstraction. Aquí se suelen proporcionar primitivas, en Abstraction operaciones de más alto nivel ConcreteImplementor: Implementa la interfaz de Implementor 6

Composite Component: declara la interfaz de los objetos involucrados en la composición, declara una interfaz para acceder y manejar a sus hijos Leaf: representa objetos hoja en la composición Composite: define el comportamiento de los componentes que tienen hijos, almacena los componentes hijo, implementa operaciones relacionadas con los hijos Client: manipula los objetos de la composición a través de Component 7 Decorator Component: Define la interfaz que ofrecen los objetos que poseen responsabilidades añadidas dinámicamente ConcreteComponent: Define un objeto al que responsabilidades adicionales pueden serle añadidas Decorator: Mantiene referencia a un objeto Component y define una interfaz que conforma la interfaz del Component ConcreteDecorator: Añade las responsabilidades al Component 8

Façade Façade: Conoce que clases son responsables de que peticiones y así, delega las peticiones a los objetos apropiados Subsystem: Implementa la funcionalidad del subsistema, realiza el trabajo solicitado por el objeto Façade y no conoce, ni mantiene referencia alguna del objeto Façade 9 Flyweight Flyweight: declaran una interface a través de la que flyweights pueden recibir y actuar sobre estados externos ConcreteFlyweight: Implementa la interfaz del flyweight y añade almacenamiento para el estado interno UnsharedConcreteFlyweight: no todas las subclases de Flyweight necesitan ser compartidas FlyweightFactory: crea y gestiona los objetos Flyweight Client: mantiene una referencia a objetos flyweights 10

Proxy Proxy: tiene referencia al objeto RealSubject, tiene una interfaz idéntica a la de Subject así un proxy puede sustituirse por una RealSubject, y controla el acceso al RealSubject y puede ser el responsable de su creación y borrado Subject: define una interfaz común para RealSubject y Proxy RealSubject: define el objeto real que Proxy representa 11 Patrones estructurales. Resumen (i) Los patrones Adapter y Bridge promueven la flexibilidad al proporcionar un nivel de indirección a otro objeto. Ambos implican reenviar peticiones a este objeto desde una interfaz distinta a la suya propia. Pero el patrón Adapter se centra en resolver incompatibilidades entre dos interfaces existentes, mientras que el patrón Bridge une una implementación con sus implementaciones Podemos ver un Façade como un Adapter Composite y Decorator usan la composición recursiva para organizar un número indeterminado de objetos. El patrón Decorator se utiliza para añadir responsabilidades a objetos sin crear subclases. El patrón Composite estructura subclases 12

Patrones estructurales. Resumen (ii) Decorator y Proxy también tiene una estructura similar. Proxy compone un objeto y proporciona una interfaz idéntica a los clientes, pero Proxy no asigna o quita propiedades dinámicamente, su propósito es proporcionar un sustituto En el patrón Proxy, el sujeto define la principal funcionalidad y el proxy proporciona el acceso al mismo 13 Patrones de diseño. Comportamiento Chain of responsability Command Interpreter Iterator Mediator Memento Observer State Strategy Template Method Visitor 14

Chain of responsability Handler: define una interfaz para manejar las peticiones opcionalmente implementa enlaces de sucesión de atención de tales peticiones ConcreteHandler: recibe las peticiones y las atiende si es posible,de otra forma pasa la petición a su sucesor Client: hace las peticiones a los objetos ConcreteHandler pertenecientes a la cadena 15 Command Command: declara una interface para la ejecución de una operación ConcreteCommand: define un vínculo entre un objeto Receiver y una acción, implementa Execute() invocando al método correspondiente de Receiver Cliente: Crea un objeto ConcreteCommand y establece su receptor Invoker: pide a Command que lleve a cabo su petición Receiver: sabe cómo realizar las operaciones asociadas con la puesta en marcha de la petición 16

Interpreter AbstractExpression: declara una interfaz para la ejecución de una operación TerminalExpression: Implementa una operación de Interpretación asociada con los símbolos terminales asociados con la gramática NonterminalExpression: implementa una operación de interpretación asociada con los símbolos no terminales asociados con la gramática Context: contiene información global para el interprete Client: construye un árbol sintáctico abstracto que representa una sentencia particular en el lenguaje que la gramática define 17 Iterator Iterator define una interfaz para atravesar y acceder a los elementos ConcreteIterator: Implementa la interfaz del iterator, mantiene un puntero al conjunto de elementos Aggregate: define un interfaz para crear un objeto iterator ConcreteAggregator: Implementa la interfaz de creación del Iterator devolviendo un objeto de ConcreteIterator apropiado 18

Mediator Mediator: define una interfaz para la comunicación entre objetos Colleagues ConcreteMediator: Implementa un comportamiento cooperativo coordinado objetos Colleague Colleague classes: cada objeto Colleague conoce su objeto Mediator, cada colleague comunica con su mediator cuando tiene que comunicar con otro colleague 19 Memento Memento: Almacena el estado interno del objeto Originator, protege del acceso por parte de objetos distintos al Originator Originator: crea un objeto memento, que contiene una foto fija de su estado interno Caretaker: es el responsable de mantener la seguridad del objeto memento, no opera o examina el contenido de memento 20

Observer Subject: conoce sus observadores y proporciona una interfaz para gestionarlos ConcreteSubject: almacena el estado de interés y envía una notificación a sus observadores cuando su estado cambia Observer: define una interfaz para los objetos a los que debe notificarse el cambio de estado en ConcreteSubject ConcreteObserver: mantiene una referencia a un objeto ConcreteSubject, mantiene información consistente relacionada con el estado implementando el método Update() 21 State Context: define la interfaz de interés a clientes State: define una interfaz para encapsular el comportamiento asociado con un estado particular del contexto ConcreteState: cada subclase implementa un comportamiento asociado con un estado de Context 22

Strategy Strategy: declara una interface común para dar soporte a todos los algoritmos Context utiliza esta interfaz para llamar al algoritmo definido por un ConcreteStrategy ConcreteStrategy: Implementa el algoritmo usando la interfaz Strategy Context: se configura con un objeto ConcreteStrategy, sobre el que mantiene una referencia, puede definir una interfaz que permita a Strategy acceder a sus datos 23 Template Method AbstractClass: define operaciones primitivas abstractas cuya concreción se delega a las subclases, estas primitivas se utilizan en el cuerpo de un algoritmo esqueleto ConcreteClass: Implementa las operaciones primitivas abstractas anteriores 24

Visitor Visitor: Establece las operaciones a realizar ConcreteVisitor: implementa dichas operaciones Element: define un método Accept() que toma un Visitor como argumento ConcreteElement: implementa el método Accept() 25 Patrones de comportamiento. Resumen (i) Encapsular aquello que puede variar es el tema de muchos patrones de comportamiento: Un objeto Estrategia encapsula un algoritmo Un objeto Estado encapsula el comportamiento dependiente del estado Un objeto Mediator encapsula el protocolo entre objetos Un objeto Iterator encapsula el modo en que se accede y se recorren los componentes de un objeto agregado Los patrones de comportamiento describen aspectos de un programa que es probable que cambien El patrón Chain of Responsability describe el modo de comunicación entre un número indefinido de objetos 26

Patrones de comportamiento. Resumen (ii) Varios patrones introducen un objeto que siempre se usa como argumento (Visitor, Command, Memento) El Mediator y el Observer son patrones rivales. La diferencia entre ellos es que el patrón Observer distribuye la comunicación introduciendo objetos Observador y Sujeto, mientras que un objeto Mediator encapsula la comunicación entre objetos El patrón Command permite el desacoplamiento usando un objeto Orden que define un enlace entre un emisor y un receptor El patrón Observer desacopla a los emisores de los receptores El patrón Mediator desacopla los objetos haciendo que se refieran unos a otros indirectamente a través del Mediator 27 Capítulo 4 Patrones y Patrones de Diseño (ii) Orientado a Objetos Ingeniería Informática Ingeniería Técnica de Informática de Sistemas y Gestión Optativa (6 créditos) http://www.info-ab.uclm.es/asignaturas/42579