Patrones de Diseño. Creado por: Javier Garzás Actualizado por: Santiago Moral

Tamaño: px
Comenzar la demostración a partir de la página:

Download "Patrones de Diseño. Creado por: Javier Garzás Actualizado por: Santiago Moral"

Transcripción

1 Patrones de Diseño Creado por: Javier Garzás Actualizado por: Santiago Moral

2 Patrones, primer ejemplo

3 Primer ejemplo Caso práctico: el (típico) videoclub Se pretende diseñar el software referente a un videoclub. Este software debe contemplar las películas, los clientes y los alquileres que estos últimos realizan. Existen dos tipos de películas, los estrenos y las regulares, y el coste del alquiler varía en función de dichos tipos.

4 Primer ejemplo Diagrama de clases: Cliente 1 * Alquiler -diasalquilada * 1 - titulo Película +getcoste(diasalquilada)

5 Comienza la implementación Realicemos el método getcoste() de la clase Película: Sabemos que dependiendo de la categoría de la película (Estreno o Regular) se aplicarán tarifas distintas. Cómo podemos implementar esto?

6 Aparece la lógica condicional public class Pelicula { static final int REGULAR=0; static final int EXTRENO=1; private int categoria; double getcoste(int diasalquilada) { double result = 0; switch (getcategoria()) { case REGULAR: result += diasalquilada*2; break; case ESTRENO: result += diasalquilada*3; break; } return result; } int [getdiastopealquiler getcostepenalizacióndia () getdiasinhabilitacion ]{ switch (getcategoria()) { case REGULAR: case ESTRENO: }

7 La lógica condicional se propaga public class Alquiler { private int diasalquilada; static final int 50PORCIENTO; static final int 75PORCIENTO; int getdiasalquiladapromocion (int promocion) switch (promocion) { case 50PORCIENTO: switch (Pelicula.getCategoria()) case REGULAR: case ESTRENO: case 75PORCIENTO: } }

8 La lógica condicional Efectivamente, lo anterior funcionaría, pero sería mantenible? : A los dos meses de estar operativa la aplicación los requisitos, como no, cambian, ahora aparece la categoría clásicos, mañana de los 80 y al otro en cartelera En nuestra micro aplicación tenemos que tocar 5 métodos y dos clases Si nuestra aplicación tuviese 80 clases, 12 constantes de estado y 20 switch repartidos por distintas clases

9 Bad Smells en la propuesta actual Sentencias Switch Existe una gran lógica condicional que depende del estado. Frecuentemente, varias operaciones repetirán la misma estructura condicional, al añadir más tipos tendremos que buscar todos los switch. Duplicación de código La lógica condicional casi siempre produce duplicación de código Este es el peor bad smell, el anticristo de la mantenibilidad. Solución?!

10 La esencia del problema Problema: La clase película guarda dos roles Solución: - titulo Película +getcoste(diasalquilada) PelículaRegular PelículaEstreno

11 Todo resuelto? Más tarde observamos que una película debe cambiar su categoría en run-time: Tendremos, por ejemplo: Objeto_PeliculaEstreno Objeto_PeliculaRegular Solución: Podemos crear un nuevo objeto de la clase PeliculaEstreno, sacar el estado del objeto de PeliculaRegular, cargar todo en el objeto de Película estreno, cambiar los apuntadores, matar el objeto de PeliculaRegular, tener cuidado de que ningún otro objeto le apuntase, etc. De todas formas, el objeto no cambiaría de clase, tendríamos otro objeto de otra clase OID único.

12 La esencia del problema Una película debe cambiar de categoría pero un objeto no puede cambiar de clase Tª: La relación de herencia es invariable en el tiempo Un objeto nunca puede cambiar de clase! Cómo podemos solucionar este nuevo problema?

13 La solución final Solución Final: Pelicula Precio - titulo +getcoste(diasalquilada) +getcoste(diasalquilada) PrecioRegular PrecioEstreno

14 Ventajas Nuevos estados y sus transiciones se añaden fácilmente Transiciones de estado explícitas Estados localizados y con posibilidad de ser compartidos No hay switch No hay código repetido Etc.

15 Cuál era el primer problema? Realmente, los requisitos presentaban esencialmente este problema: Los objetos de película cambian su comportamiento dependiendo de su estado y dicho comportamiento debe cambiar en run-time. Las operaciones que cambian no deben programarse con múltiples sentencias condicionales porque hacen difícil el mantenimiento.

16 Visión Cuántas veces ha aparecido este problema? A cuantos diseñadores le ha ocurrido? No podríamos haber saltado del primer diagrama de clases a la solución final? Cuántas veces aparece código erróneo por qué el diseñador no sabe o no tiene tiempo de pensar la solución correcta? Cómo aumentaría la calidad? Se reduciría el tiempo?

17 Patrón State Objetivo Permite a un objeto alterar su comportamiento cuando su estado interno cambia. Motivación Cuando un objeto cambia de estado puede responder de maneras diferentes a los mismos mensajes. La forma tradicional es poner sentencias condicionales. Aplicabilidad Un objeto cambia su comportamiento dependiendo de su estado y dicho comportamiento debe cambiar en run-time. Las operaciones que cambian se programan con múltiples sentencias condicionales que hacen difícil el mantenimiento.

18 State Estructura

19 La visión formal

20 El comienzo del movimiento Christopher Alexander escribe varios libros acerca del planeamiento urbano y la construcción de edificios. El origen formal del término patrón se atribuye a él y a sus dos principales trabajos: A Pattern Language (Alexander, 1977) The timeless Way of Building (Alexander, 1979)

21 Patrones OO: Origen Ward Cunningham y Kent Beck aplican las ideas de Christopher para desarrollar un pequeño lenguaje de patrones, para aprender Smalltalk: Using Pattern Languages for Object- Oriented Programs En 1990 se inicia el trabajo del Gang of Four (GoF) P. Coad, Object-Oriented Patterns, Comm. ACM, Vol. 35, No 9, Sep. 1992, pp

22 Patrones OO: Madurez y Difusión E. Gamma, R. Helm, R. Johnson and J. Vlissides, Design patterns: Elements of Reusable Object Oriented Software, Addison-Wesley, F. Buschmann, R. Meunier, H. Rohnert, P. Sommerlad and M. Stal, A System of Patterns: Pattern-Oriented Software Architecture, Addison- Wesley,1996.

23 Definición de patrón Una arquitectura reusable que la experiencia ha mostrado que resuelve un problema común en un contexto específico Dictionary of Object Technology, 1995

24 Definición de patrón Cada patrón describe un problema que ocurre una y otra vez en nuestro entorno, describiendo el núcleo de la solución a ese problema, de tal manera que esa solución pueda ser usada más de un millón de veces sin hacerlo dos veces de la misma forma (Alexander, 1977).

25 Definición de patrón Un patrón contempla, además de la solución a un problema en un contexto: Recurrencia Enseñanza Nombre Consecuencias

26 Que no son los patrones Invenciones, teoría o ideas no probadas - Teorías? No, no, son pura práctica Soluciones que sólo han funcionado una vez Cualquier cosa vieja escrita en formato de patrones Principios abstractos o heurísticos Aplicaciones universales para cualquier contexto Una panacea (solución para cualquier mal)

27 Por qué usar patrones? Una cosa que los diseñadores expertos no hacen es resolver cada problema desde el principio [...]. Cuando encuentran una buena solución la usan una y otra vez. Esta experiencia es lo que les hace expertos (Gamma,1995)

28 Por qué usar patrones? Diseño de sistemas escalables y reutilizables es complejo El mercado demanda rapidez y calidad Diseñar bien a la primera vez es imposible Usar soluciones probadas Aprovecharse de la experiencia, catalogarla y documentarla. Reutilizar conocimiento Componer un vocabulario para Ingenieros

29 Beneficios Potenciales Mejora de la comunicación, el más potente. Cómo podrían varios arquitectos discutir el diseño de un edificio si sólo conocen la palabra ladrillo? La semántica nos pierde. Productividad y calidad, inmediatas cuando los equipos puedan sostener discusiones de diseño desde un alto nivel.

30 Clasificación de los patrones Diferentes rangos de escala o niveles de abstracción: Patrones de Análisis Patrones Arquitectónicos Patrones de Diseño Idioms Patrones de Seguridad Antipatterns (Ej. Copy and Paste Programming) De dominios específicos

31 Patrones de Diseño

32 Patrones de Diseño El objetivo que se pretende es conocer el principal catálogo sobre patrones de diseño: Design Patterns. Elements of Reusable Object-Oriented Software, by Erich Gamma, Richard Helm, Ralph Johnson y John Vlissides Ha sido reeditado 32 veces.

33 Patrones de Diseño _Design_Patterns_Java_Compa.html

34 Patrones de Diseño

35 Patrones de Diseño, los más destacados Refinan un subsistema o componente de un sistema software. Describen una estructura a la cual muchas veces recurrimos para resolver problemas de diseño. No afectan a la arquitectura de un sistema No dependen del lenguaje de implementación. Permiten resolver problemas complejos y direccionan la cooperación efectiva entre componentes

36 Descripción de un patrón (1/4) Intención Qué hace el patrón? Cuál es su racionalidad e intención? Qué problema de diseño ataca? También conocido como Otros nombres del patrón Motivación Un escenario que ilustra el problema y como la estructura del patrón lo soluciona. El escenario ayuda a comprender la descripción mas abstracta que sigue

37 Descripción de un patrón (2/4) Aplicabilidad En que situaciones es aplicable el patrón Ejemplos de Diseños pobres solucionables con el patrón Cómo reconocer estas situaciones Estructura Una representación gráfica de las clases en el patrón Participantes Descripción de la responsabilidad de los objetos y clases participantes Colaboraciones Diagramas de colaboración entre los objetos y clases participantes

38 Descripción de un patrón (3/4) Consecuencias Cómo logra el patrón sus objetivos? Cuáles son los resultados de usarlo? Qué partes de la estructura puede variar de manera independiente? Implementación Qué técnicas utilizar para implementar el patrón? Hay características específicas del lenguaje?

39 Descripción de un patrón (4/4) Código de ejemplo Fragmentos de código que ilustran como implementar el patrón Usos conocidos Ejemplos de uso del patrón en sistemas reales Patrones relacionados Qué patrones están fuertemente relacionados? Cuáles son las diferencias importantes? Con qué otros patrones se debería usar éste?

40 Dimensiones de organización Por propósito Creacional Estructura Comportamiento Ámbito Clase Objeto

41 Organización del catalogo Creational Patterns Abstraen el proceso de instanciación haciendo al sistema independiente de cómo los objetos son creados, compuestos o representados. Alternativas de diseño por herencia o delegación. Encapsulan el mecanismo de creación. Independencia de los tipos de objetos producto que manejemos.

42 Patrones de Creación (Gamma, 95) Abstract Factory Provee una interfaz para crear una familia de objetos relacionados sin especificar sus clases concretas Factory Method Define una interfaz para crear un objeto, dejando a las subclases decidir el tipo específico. Permite delegar la responsabilidad de instanciación a subclases Singleton Asegura una sola instancia de un objeto y provee un punto de acceso global a él Builder Separa la construcción de un objeto complejo de su representación, para que el mismo proceso de construcción permita crear varias representaciones Prototype Especifica el tipo de objetos a crear usando una instancia de creación (prototipo), y crea nuevas instancias copiando el prototipo

43 EJERCICIO Qué tipo de patrón utilizarías para creación de la clase Videoclub? Pelicula Precio - titulo +getcoste(diasalquilada) +getcoste(diasalquilada) PrecioRegular PrecioEstreno

44 Patrón Singleton (1/4)

45 Patrón Singleton (2/4) Creamos una clase para lanzar una excepción class SingletonException extends RuntimeException { //new exception type for singleton classes public SingletonException() { super(); } } public SingletonException(String s) { super(s); }

46 Patrón Singleton (3/4) Lanzamos la excepción class PrintSpooler { //this is a prototype for a printer-spooler class //such that only one instance can ever exist static boolean instance_flag=false; //true if 1 instance public PrintSpooler() throws SingletonException { if (instance_flag) throw new SingletonException("Only one spooler allowed"); else { Instance_flag = true; //set flag for 1 instance System.out.println("spooler opened"); } } public void finalize() { instance_flag = false; //clear if destroyed } }

47 Patrón Singleton (4/4) Creando una instancia de la clase public class singlespooler { static public void main(string argv[]) { PrintSpooler pr1, pr2; //open one spooler--this should always work System.out.println("Opening one spooler"); try { pr1 = new PrintSpooler(); } catch (SingletonException e) { System.out.println(e.getMessage()); } //try to open another spooler --should fail System.out.println("Opening two spoolers"); try { pr2 = new PrintSpooler(); } catch (SingletonException e) { System.out.println(e.getMessage()); } } }

48 Organización del catalogo Structural Pattern Determinan como combinar objetos y clases para definir estructuras complejas. Comunicar dos clases incompatibles, Añadir funcionalidad a objetos...

49 Patrones Estructurales (Gamma, 95) Adapter Convierte la interfaz de una clase en una interfaz que el cliente espera. Permite trabajar juntas a dos clases con interfaces incompatibles Bridge Desacopla una abstracción de su implementación y les permite variar independientemente Composite Compone objetos en jerarquías para representar relaciones parte-todo. Composite permite a los clientes tratar de la misma manera tanto a objetos individuales como a compuestos. Decorator Agrega dinámicamente nuevas responsabilidades a un objeto. Provee una alternativa muy flexible para agregar funcionalidad a una clase Facade Provee una interface única para un conjunto de interfaces en un sistema. Define una interface de más alto nivel que permite usar el sistema más fácil

50 Patrones Estructurales (Gamma, 95) Flyweight Proxy Soporta la representación de un gran número de objetos pequeños de una manera eficiente. Provee un representante de acceso a otro objeto

51 Ejemplo de Aplicación Problema? Dibujo Circulo Cuadrado

52 Solución: Composite

53 Solución: Composite Client ElementoDibujo Circulo Linea Grupo

54 Organización del catalogo Behavioral Patterns Se ocupan de los algoritmos y reparto de responsabilidades. Describen los patrones de comunicación entre objetos y clases. Podremos definir abstracciones de algoritmos (Template Method) Cooperaciones entre objetos para realizar tareas complejas, reduciendo las dependencias entre objetos (Iterator, Observer, etc.) Asociar comportamiento a objetos e invocar su ejecución (Command, Strategy, etc.)

55 Comportamiento (Gamma, 95) Chain of Responsibility Evita el acoplamiento entre el que envía y el que recibe una petición. Se encadenan los objetos que reciben las peticiones, el mensaje por la cadena hasta que alguno lo responda Command Encapsula una operación en un objeto, permitiendo parametrizar operaciones, encolarlas, dejar log de ellas o deshacerlas Interpreter Dado un lenguaje, define una representación de su gramática que permita interpretar las sentencias del lenguaje Iterator Provee una forma de tener acceso secuencial a los elementos de un conjunto sin exponer la implementación de éste último

56 Comportamiento (Gamma, 95) Mediator Define un objeto que encapsula la forma en la cual interactúan otros. Promueve el acoplamiento débil Memento Sin violar el encapsulamiento, captura y externaliza el estado interno de un objeto, para que pueda ser recuperado más adelante Observer Define una dependencia de uno a muchos de tal manera que cuando uno de ellos cambia, todos los que dependen de él son notificados y actualizados automáticamente State Permite a un objeto cambiar su comportamiento cuando su estado interno cambia. El objeto parecerá haber cambiado de clase

57 Comportamiento (Gamma, 95) Strategy Define una familia de algoritmos intercambiables y encapsulados. Permite variar el algoritmo independientemente de quien lo usa Template Method Define un esqueleto de un algoritmo, delegando algunos pasos a las subclases. Permite redefinir ciertos pedazos del algoritmo sin cambiar su estructura Visitor Representa una operación que debe realizarse sobre los elementos de una estructura de objetos. Permite definir nuevas operaciones sin cambiar las clases de los objetos sobre las cuales operan

58 Observer (1/5) Objetivo Motivación Define una dependencia de uno a muchos entre objetos, de manera que cuando un objeto cambia todos los que tienen dependencia de él son informados. En casi todas las aplicaciones hay objetos que cuándo cambian su valor deben de informar a otros objetos para que cambien su estado en ese momento. Aplicabilidad Cuando una abstracción tiene diferentes aspectos y se desea reutilizar algunos de ellos de forma separada. Cuando un cambio en un objeto necesita realizar cambios en otros y no se sabe a priori en cuantos objetos se hace este cambio.cuando un objeto debe notificar a otros de algún cambio y no se desea que se acoplen entre ellos.

59 Observer (2/5) Estructura

60

61 Observer (3/5) Participantes Subject: Conoce a sus observers, cualquier número de Observers puede observar a un Subject. Define un interfaz para admitir subscriptores. Observer: Define un interfaz para los objetos que deben ser notificados de los cambios en un Subject. ConcreteSubject: Guarda los estados de interés de un ConcreteObserver. Envía notificación a sus observers cuando su estado cambia. ConcreteObserver: Mantiene una referencia a un ConcreteSubject. Implementa el interfaz Observer.

62 Observer (4/5) Colaboraciones

63 Observer (5/5) Consecuencias Abstrae el acoplamiento entre Observer y Subject al definir un interfaz estándar para todos ellos. Soporta Broadcasting. Debido a que la interfaz es estándar puede provocar llamadas de actualización sobre Observers que no la necesitan. Patrones relacionados Mediator puede encapsular semánticas complejas de actualización. Singleton, al usar un Mediator puede ser importante que sea un Singleton.

64 Una clase que no usa Observer Pudiéramos encontrar algo como: public class ControlDeTemperatura { GUI InterfazUsuario; public ControlDeTemperatura(InterfazUsuario Interfaz){ InterfazUsuario=Interfaz; } } public void receivetemperatura (int temperatura,int numsensor){ InterfazUsuario.nuevaTemperatura(temperatura, numsensor); }

65 Una clase que usa Observer. Cuando debiéramos encontrar algo como: public interface Observer {public void notify(float temperatura);} public GUI implement Observer {public notify (float temperatura){...} } public class Subject { Vector observers = new Vector(); public void addobserver(observer observer){ observers.add(observer); } public void removeobserver(observer observer){ observers.remove(observer); } public void notify(float valor){ for(int i=0; i<observers.size(); i++) ((Observer)observers.elementAt(i)).notify(valor)} } public class ControlDeTemperatura extend Subject { public void receivetemperatura (int temperatura,int numsensor)}

66 CHAIN OF RESPONSIBILITY

67 Organizacion del catálogo Propósito Creacional Estructural Comportamiento Alcance Clase Objeto Factory Method Adapter (Class) Interpreter Template Method Abstract Factory Builder Prototype Singleton Adapter (Object) Bridge Composite Decorator Facade Flyweight Proxy Chain of Responsibility Command Iterator Mediator memento Observer State Strategy Visitor

68 Ejemplo de Aplicación Cómo organizar el control de la aplicación y, además, agregar un mecanismo para la creación de macros?

69 Command

Patrones de Diseño. (...o bien, que tiene que ver la costura con el software...) Universidad de los Andes Demián Gutierrez Marzo

Patrones de Diseño. (...o bien, que tiene que ver la costura con el software...) Universidad de los Andes Demián Gutierrez Marzo Patrones de Diseño (...o bien, que tiene que ver la costura con el software...) Universidad de los Andes Demián Gutierrez Marzo 2010 1 Diseño Arquitectónico Diseño Arquitectónico Arquitectura del Software

Más detalles

Capitulo 2. Marco Teórico

Capitulo 2. Marco Teórico Capitulo 2. Marco Teórico En el presente capítulo se describirán los conceptos utilizados para el desarrollo de ésta tesis. Entre los conceptos a mencionar se encuentran Patrones de Diseño, los Principios

Más detalles

Web Frameworks y patrones de diseño

Web Frameworks y patrones de diseño Web Frameworks y patrones de diseño Ingeniería del software Universidad de Los Andes Nerio Moran, Alvaro Araujo 29 de Enero,2018 Ingenieria del software Universidad de Los Andes 29 de Enero,2018 1 / 26

Más detalles

Desarrollo de Aplicaciones Empresariales

Desarrollo de Aplicaciones Empresariales Diego Seco Material adaptado de: Eduardo Mosqueira y Óscar Pedreira {eduardo, opedreira}@udc.es LIDIA & LBD Universidade da Coruña 2014-1 Desarrollo de Aplicaciones Empresariales Patrones Gangof Four(GOF)

Más detalles

Patrones de Diseño Orientados a Objetos

Patrones de Diseño Orientados a Objetos Patrones de Diseño Orientados a Objetos Idea detrás del Diseño de Patrones "...describa un problema que sucede una y otra vez en nuestro entorno, y luego describa el núcleo de la solución a ese problema,

Más detalles

Patrones de Diseño Orientados a Objetos 1 Parte

Patrones de Diseño Orientados a Objetos 1 Parte Patrones de Diseño Orientados a Objetos 1 Parte Idea detrás del Diseño de Patrones "...describa un problema que sucede una y otra vez en nuestro entorno, y luego describa el núcleo de la solución a ese

Más detalles

Uso de Patrones de diseño

Uso de Patrones de diseño Uso de Patrones de diseño jsr@.upm.es - 1 - Relaciones La importancia de la relaciones en los diseños de orientación a objetos. Identificación de situaciones comunes. Necesidad de reciclar ideas no código

Más detalles

Aplicaciones Móviles. Unidad 2: Patrones de Diseño de Software

Aplicaciones Móviles. Unidad 2: Patrones de Diseño de Software INACAP Universidad Tecnológica de Chile Sede Santiago Centro Aplicaciones Móviles Unidad 2: Patrones de Diseño de Software Ing. Manuel López Ramos Unidad 1 Qué es un Patrón de Diseño de Software? Qué es

Más detalles

Patrones de Diseño. Programa de Estudio.

Patrones de Diseño. Programa de Estudio. Patrones de Diseño Programa de Estudio Patrones de Diseño Analiza, modela y resuelve problemas de diseño de sistemas utilizando los patrones de diseño. Aprende cuándo y cómo utilizar cada uno de los patrones

Más detalles

CC61J / CC Taller de UML Apuntes de Clase

CC61J / CC Taller de UML Apuntes de Clase CC61J / CC5404 - Taller de UML Apuntes de Clase Prof. Andrés Muñoz Ordenes 08/06/2011 Agenda Motivación Diseño del Problema Diagrama de Colaboración Conceptos Notación y Sintaxis Usos Ejemplo: Caja de

Más detalles

Ingeniería del software I Patrones de Diseño

Ingeniería del software I Patrones de Diseño Qué es un Patrón de Diseño? Ingeniería del software I Patrones de Diseño Los patrones de diseño capturan soluciones a problemas particulares de diseño. abstraen estructuras de diseño recurrentes Incorporan

Más detalles

Patrones de diseño. Reuso del desarrollo a nivel arquitectural. M. Telleria, L. Barros, J.M. Drake

Patrones de diseño. Reuso del desarrollo a nivel arquitectural. M. Telleria, L. Barros, J.M. Drake Patrones de diseño Reuso del desarrollo a nivel arquitectural 1 Patrones de diseño Soluciones de diseño que son válidas en distintos contextos y que han sido aplicadas con éxito en otras ocasiones. Se

Más detalles

PATRONES DE DISEÑO. Mtro. Omar Zárate

PATRONES DE DISEÑO. Mtro. Omar Zárate PATRONES DE DISEÑO http://ozarate.net PATRONES DE DISEÑO El concepto promovido por Alexander fue retomado en el software y popularizado en el libro Design Patterns: Elements of Reusable Object Oriented

Más detalles

Universidad Tecnológica Emiliano Zapata Tecnologías De la Información Y comunicación Área Sistemas informáticos

Universidad Tecnológica Emiliano Zapata Tecnologías De la Información Y comunicación Área Sistemas informáticos Universidad Tecnológica Emiliano Zapata Tecnologías De la Información Y comunicación Área Sistemas informáticos Rivera Figueroa Gerardo René Alvares Flores Jairo Ángeles Pastor Luis Eduardo Gonzales Sarabia

Más detalles

Julio Ariel Hurtado Alegría. 8 de abril de 2013

Julio Ariel Hurtado Alegría. 8 de abril de 2013 Julio Ariel Hurtado Alegría 8 de abril de 2013 Julio A. Hurtado A. Universidad del Cauca 1 / 40 Contenido Introducción Julio A. Hurtado A. Universidad del Cauca 2 / 40 La vida real está llena de esquemas

Más detalles

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype

PATRONES DE DISEÑO DE CREACIÓN. Abstract Factory Builder Factory Method Prototype PATRONES DE DISEÑO DE CREACIÓN Abstract Factory Builder Factory Method Prototype Patrones de diseño de creación Abstraen el proceso de creación de instancias Encapsulan el conocimiento sobre las clases

Más detalles

Diseño de Software Basado en Patrones. César Julio Bustacara M.

Diseño de Software Basado en Patrones. César Julio Bustacara M. Diseño de Software Basado en Patrones César Julio Bustacara M. Patrones de Diseño Introducción Las Tecnologías Orientadas a Objetos son las más utilizadas en los últimos años para el desarrollo de aplicaciones

Más detalles

CLASE 9: DISEÑO CON PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez

CLASE 9: DISEÑO CON PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez CLASE 9: DISEÑO CON PATRONES Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez Diseño de Objetos Identificar requerimientos, crear un modelo del dominio, agregar métodos a las clases

Más detalles

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA) UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA) FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS 1. INFORMACIÓN GENERAL

Más detalles

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

Patrones de diseño en PHP Los 23 modelos de diseño: descripciones y soluciones ilustradas en UML2 y PHP Introducción a los patrones de diseño 1. Design patterns o patrones de diseño 15 2. Descripción de los patrones de diseño 17 3. Catálogo de patrones de diseño 18 4. Cómo escoger y utilizar un patrón de

Más detalles

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

Patrones de Alto nivel: Patrones de Arquitectura Patrones de nivel medio: Patrones de Diseño Patrones de bajo nivel: Idioms Patrones Patrones Es una solución reusable de problemas comunes. Los patrones solucionan problemas que existen en muchos niveles de abstracción. desde el análisis hasta el diseño y desde la arquitectura

Más detalles

Introducción a los Patrones de Diseño de Software

Introducción a los Patrones de Diseño de Software Introducción a los Patrones de Diseño de Software Unidad 1 Patrones de Diseño de Software Introducción Diseño Orientado a Objetos El objetivo del Diseño Orientado a Objetos es resolver un problema No se

Más detalles

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

Patrones de diseño en Java Los 23 modelos de diseño: descripción y soluciones ilustradas en UML 2 y Java Introducción a los patrones de diseño 1. Design patterns o patrones de diseño 15 2. Descripción de los patrones de diseño 17 3. Catálogo de patrones de diseño 18 4. Cómo escoger y utilizar un patrón de

Más detalles

PATRONES DE DISEÑO FRAMEWORKS

PATRONES DE DISEÑO FRAMEWORKS 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

Más detalles

Nombre y Apellido. Martin Villarreal. Daniel Aguil Mallea

Nombre y Apellido. Martin Villarreal. Daniel Aguil Mallea INSTITUTO DE DESARROLLO ECONÓMICO E INNOVACIÓN Año: 2018 PROGRAMA DE LA ASIGNATURA: Programación y Diseño Orientado a Objetos (IF030) CÓDIGO: IF030 AÑO DE UBICACIÓN EN EL PLAN DE ESTUDIOS: 2 año FECHA

Más detalles

Introducción a los patrones de Software

Introducción a los patrones de Software Introducción a los patrones de Software Dpto. de Ingeniería de Sistemas y Computación Universidad de los Andes Material de base: Gloria Cortés y Rubby Casallas Referencias LARMAN, Craig. Applying UML and

Más detalles

Introducción a los patrones de diseño: Un enfoque práctico (Spanish Edition) Click here if your download doesn"t start automatically

Introducción a los patrones de diseño: Un enfoque práctico (Spanish Edition) Click here if your download doesnt start automatically Introducción a los patrones de diseño: Un enfoque práctico (Spanish Edition) Click here if your download doesn"t start automatically Introducción a los patrones de diseño: Un enfoque práctico (Spanish

Más detalles

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

CLASE 10: MÁS PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez CLASE 10: MÁS PATRONES Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez Polimorfismo Problema: Cómo manejar las alternativas basadas en el tipo? Cómo crear componentes conectables?

Más detalles

Patrones. Maestría en Ingeniería de Software

Patrones. Maestría en Ingeniería de Software Patrones Maestría en Ingeniería de Software Agenda - Model Driven Architecture (MDA) - Unified Model Language (UML) - Object Constraint Language (OCL) - Patrones - Conclusiones Contenido Patrones Introducción

Más detalles

Grado en Ingeniería Informática Universidad de Alcalá Curso Académico 2014/15 Curso 4º Cuatrimestre 1º

Grado en Ingeniería Informática Universidad de Alcalá Curso Académico 2014/15 Curso 4º Cuatrimestre 1º PATRONES SOFTWARE Grado en Ingeniería Informática Universidad de Alcalá Curso Académico 2014/15 Curso 4º Cuatrimestre 1º GUÍA DOCENTE Nombre de la asignatura: Código: Titulación en la que se imparte: Departamento

Más detalles

Específicamente los elementos de un patrón de diseño son [ 3 ] :

Específicamente los elementos de un patrón de diseño son [ 3 ] : Patrones de Diseño Marco Teórico Introductorio Diego Andrés Asenjo González Alejandro Ríos Peña Contenido Qué son los patrones de Diseño?...1 Clasificación de los patrones de diseño...3 Patrones de Creación.....4

Más detalles

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

Capítulo 4 Patrones y Patrones de Diseño (ii) 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

Más detalles

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

IN77J Orientación al Objeto para el e-business. 6. Diseño IN77J Orientación al Objeto para el e-business 6. Diseño Temario 6. Diseño Descomposición Realización de Casos de Uso Taller Patrones de Diseño 2 Descomposición Una de las principales técnicas para abordar

Más detalles

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

Patrones de Diseño. Patrón de comportamiento Observer. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de Diseño Patrón de comportamiento Observer Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Define una dependencia de uno-a-muchos entre objetos de forma que, cuando

Más detalles

Patrones de Diseño. Ing. Miguel Angel Cedeño Garcidueñas

Patrones de Diseño. Ing. Miguel Angel Cedeño Garcidueñas Patrones de Diseño Ing. Miguel Angel Cedeño Garcidueñas miguelcedega@correo.fie.umich.mx Patrones de Diseño Diseñar software orientado a objetos es difícil, pero diseñar software orientado a objetos reutilizable

Más detalles

CLASE 9: DISEÑO CON PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez

CLASE 9: DISEÑO CON PATRONES. Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez CLASE 9: DISEÑO CON PATRONES Universidad Simón Bolívar. Ing. de Software. Prof. Ivette C. Martínez Diseño de Objetos Identificar requerimientos, crear un modelo del dominio, agregar métodos a las clases

Más detalles

Curso: Diseño Orientado a Objetos Patrones de Diseño

Curso: Diseño Orientado a Objetos Patrones de Diseño Curso: Diseño Orientado a Objetos Patrones de Diseño DISEÑO ORIENTADO A OBJETOS PATRONES DE DISEÑO... 1 OBJETIVO...1 AUDIENCIA...1 CONTENIDO...1 BIBLIOGRAFÍA...2 DOCENTE...3 MODALIDAD DEL DESARROLLO...3

Más detalles

Ingeniería del Software I. Patrones de Diseño. Carlos Blanco Universidad de Cantabria

Ingeniería del Software I. Patrones de Diseño. Carlos Blanco Universidad de Cantabria Ingeniería del Software I Carlos Blanco Universidad de Cantabria 2 Índice Introducción Clasificación Patrones Creacionales Patrones Estructurales Patrones de Comportamiento Antipatrones 3 Introducción

Más detalles

UML 2 Iniciación, ejemplos y ejercicios corregidos

UML 2 Iniciación, ejemplos y ejercicios corregidos Ediciones ENI UML 2 Iniciación, ejemplos y ejercicios corregidos (3ª edición) Colección Recursos Informáticos Contenido Contenido 1 Capítulo 1 Introducción 1. Motivaciones de la obra.....................................

Más detalles

Patrones de diseño. Universidad de Costa Rica Sede Occidente Bachillerato en Informática Empresarial

Patrones de diseño. Universidad de Costa Rica Sede Occidente Bachillerato en Informática Empresarial Universidad de Costa Rica Sede Occidente Bachillerato en Informática Empresarial Curso: Ingeniería de Software Profesor: Óscar Alfaro Solis Patrones de diseño Realizado por: Jean Carlo Murillo Alpízar

Más detalles

Programación 4. Diseño Patrones de Diseño

Programación 4. Diseño Patrones de Diseño Programación 4 Diseño Patrones de Diseño Contenido Introducción Patrones de Diseño Singleton Composite State Observer Programación 4 Diseño: Patrones de Diseño www.fing.edu.uy/inco/cursos/prog4 2012 2

Más detalles

Grado en Ingeniería Informática Universidad de Alcalá Curso Académico 2016/2017 Curso 4º Cuatrimestre 1º

Grado en Ingeniería Informática Universidad de Alcalá Curso Académico 2016/2017 Curso 4º Cuatrimestre 1º PATRONES SOFTWARE Grado en Ingeniería Informática Universidad de Alcalá Curso Académico 2016/2017 Curso 4º Cuatrimestre 1º GUÍA DOCENTE Nombre de la asignatura: Patrones Software Código: 780042 Titulación

Más detalles

Grado en Ingeniería Informática Universidad de Alcalá Curso Académico 2017/2018 Curso 4º Cuatrimestre 1º

Grado en Ingeniería Informática Universidad de Alcalá Curso Académico 2017/2018 Curso 4º Cuatrimestre 1º PATRONES SOFTWARE Grado en Ingeniería Informática Universidad de Alcalá Curso Académico 2017/2018 Curso 4º Cuatrimestre 1º GUÍA DOCENTE Nombre de la asignatura: Patrones Software Código: 780042 Titulación

Más detalles

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

Patrones Creacionales Builder. Patrones Creacionales Abstract Factory. Patrones Creacionales Singleton. Patrones Creacionales Prototype Temario Patrones de Diseño de Software Fundamentos de Ingeniería de SW Jocelyn Simmonds GOF: Patrones Creacionales Patrones Estructurales ILI-236 (JS) Patrones II 1 / 31 ILI-236 (JS) Patrones II 2 / 31

Más detalles

Patrones de Diseño. M.C. Juan Carlos Olivares Rojas

Patrones de Diseño. M.C. Juan Carlos Olivares Rojas Patrones de Diseño M.C. Juan Carlos Olivares Rojas Patrones de Diseño Son principios generales de soluciones que aplican ciertos estilos que ayudan a la creación de software. Es una descripción de un problema

Más detalles

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

TIPOS DE PATRONES. PATRONES DE DISEÑO: Las soluciones probadas para el diseño de software. En estas nos vamos a centrar. TIPOS DE PATRONES Hoy, podemos encontrar literalmente miles de patrones definidos. Resulta imposible para un programador conocerlos todos, ni mucho menos probarlos o valorarlos. Así que necesitamos una

Más detalles

Federico Peinado

Federico Peinado Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

A3F. Diseño MVC. Carlos Fontela

A3F. Diseño MVC. Carlos Fontela Diseño MVC Carlos Fontela cfontela@fi.uba.ar Temario Diseño y patrones Patrones macro MVC como caso particular Modularización Principios de diseño Modularización de clases Modularización de paquetes Modularización

Más detalles

Ingeniería del Software de Gestión II. Algunas notas sobre Patrones de Diseño Clásicos Curso 2004/2005

Ingeniería del Software de Gestión II. Algunas notas sobre Patrones de Diseño Clásicos Curso 2004/2005 Ingeniería del Software de Gestión II Algunas notas sobre Patrones de Diseño Clásicos Curso 2004/2005 Algunas notas sobre Patrones de Diseño Clásicos El Camino Qué es un Patrón de Diseño (PD) Qué no es

Más detalles

Patrón Façade Patrón Template Method Conclusiones

Patrón Façade Patrón Template Method Conclusiones Tema 3.3.1 Patrones: Façade y Template Method Ingeniería del Software II J. Peña (Teoría) Índice Patrón Façade Patrón Template Method Conclusiones Índice Patrón Façade Patrón Template Method Conclusiones

Más detalles

diseño de software Ingeniería en Sistemas Computacionales Clave de la asignatura: (Créditos) SATCA

diseño de software Ingeniería en Sistemas Computacionales Clave de la asignatura: (Créditos) SATCA 1. DATOS DE LA ASIGNATURA Nombre de la asignatura: Estilos y Patrones de arquitectura y de diseño de software Carrera: Ingeniería en Sistemas Computacionales Clave de la asignatura: ARC 1305 (Créditos)

Más detalles

Federico Peinado

Federico Peinado Federico Peinado www.federicopeinado.es Depto. de Ingeniería del Software e Inteligencia Artificial disia.fdi.ucm.es Facultad de Informática www.fdi.ucm.es Universidad Complutense de Madrid www.ucm.es

Más detalles

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

Planificaciones. 7510 - Técnicas de Diseño. Docente responsable: PANTALEO GUILLERMO GUSTAVO. 1 de 5 Planificaciones 7510 - Técnicas de Diseño Docente responsable: PANTALEO GUILLERMO GUSTAVO 1 de 5 OBJETIVOS En este curso se busca introducir a los alumnos en el concepto de diseño de software. Para lograrlo

Más detalles

HERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente.

HERENCIA (2ª parte) En Java todas las clases derivan de otra, aunque no se diga explícitamente. HERENCIA (2ª parte) Lenguajes de Programación - Orientación a Objetos: Herencia 2ª parte 1 Object En Java todas las clases derivan de otra, aunque no se diga explícitamente. Object: Es el nombre de la

Más detalles

DISEÑO DE APLICACIONES ORIENTADAS A OBJETOS

DISEÑO DE APLICACIONES ORIENTADAS A OBJETOS ASIGNATURA DE GRADO: DISEÑO DE APLICACIONES ORIENTADAS A OBJETOS Curso 2016/2017 (Código:71022011) 1.PRESENTACIÓN DE LA ASIGNATURA El objetivo de esta guía es orientar al alumno en el estudio de la asignatura.

Más detalles

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones

Unidad Didáctica 2. Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Unidad Didáctica 2 Elementos básicos del lenguaje Java Tipos, declaraciones, expresiones y asignaciones Fundamentos de Programación Departamento de Lenguajes y Sistemas Informáticos Versión 1.0.3 Índice

Más detalles

MÁSTER UNIVERSITARIO EN INGENIERÍA WEB. Guía de Aprendizaje Información al estudiante

MÁSTER UNIVERSITARIO EN INGENIERÍA WEB. Guía de Aprendizaje Información al estudiante MÁSTER UNIVERSITARIO EN INGENIERÍA WEB Datos Descriptivos Guía de Aprendizaje Información al estudiante Escuela Técnica Superior de Ingeniería de Sistemas Centro responsable Informáticos Titulación: Máster

Más detalles

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

PATRONES DE DISEÑO. FAVA - Formación en Ambientes Virtuales de Aprendizaje. SENA - Servicio Nacional de Aprendizaje PATRONES DE DISEÑO 1. Generalidades 2. Patrones Gof 2.1. Patrones Creacionales 2.1.1.Fábrica Abstracta 2.1.2.Constructor 2.1.3.Método de Factoría 2.1.4.Prototipo 2.1.5.Singleton 2.2. Patrones Estructurales

Más detalles

Híper introducción a Objetos

Híper introducción a Objetos Híper introducción a Objetos Herman Schinca Clase 27 y última! 1 de Julio de 2011 Paradigma de Objetos Al igual que Funcional, se trata de una filosofía, de un paradigma, no de un lenguaje particular.

Más detalles

Clases abstractas e interfaces en Java

Clases abstractas e interfaces en Java Clases abstractas e interfaces en Java Clases abstractas public abstract class Figura { private String _nombre; public Figura (string nombre) { _nombre = nombre; final public boolean mayor_que (Figura

Más detalles

PROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies.

PROGRAMA DE CURSO. Metodologías de Diseño y Programación. Nombre en Inglés. Design and Programming Methodologies. Código CC3002 Nombre Nombre en Inglés PROGRAMA DE CURSO Metodologías de Diseño y Programación Design and Programming Methodologies SCT es Docentes Horas de Cátedra Horas Docencia Auxiliar Horas de Trabajo

Más detalles

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

Introducción a la Programación de Videojuegos y Gráficos Introducción a la Programación de Videojuegos y Gráficos GRADO EN INGENIERÍA INFORMÁTICA CURSO 2012/2013 T2: ARQUITECTURA Y LÓGICA DE VIDEOJUEGO 2.1. Ingeniería del software aplicada a videojuegos (paradigmas

Más detalles

Programa Regular. Metodologías de programación I. Ingeniería en Informática. Ciclo lectivo: Docente/s: Coordinador: Dr. Lic.

Programa Regular. Metodologías de programación I. Ingeniería en Informática. Ciclo lectivo: Docente/s: Coordinador: Dr. Lic. Programa Regular Nota: para un adecuado ordenamiento y estandarización de los programas se sugiere respetarla denominación de cada ítem indicado a continuación, a fin de unificar criterios en la presentación

Más detalles

DISEÑO DE APLICACIONES ORIENTADAS A OBJETOS

DISEÑO DE APLICACIONES ORIENTADAS A OBJETOS ASIGNATURA DE GRADO: DISEÑO DE APLICACIONES ORIENTADAS A OBJETOS Curso 2011/2012 (Código:71022011) 1.PRESENTACIÓN DE LA ASIGNATURA El objetivo de esta guía es orientar al alumno en el estudio de la asignatura.

Más detalles

Patrones de Diseño. Patrón de comportamiento Command. Técnicas de Programación - Curso 2007/08

Patrones de Diseño. Patrón de comportamiento Command. Técnicas de Programación - Curso 2007/08 Patrones de Diseño Patrón de comportamiento Command Técnicas de Programación - Curso 2007/08 Propósito Encapsular peticiones en forma de objetos. Permite parametrizar a los clientes con distintas peticiones,

Más detalles

Reutilización del Software. Patrones de Diseño

Reutilización del Software. Patrones de Diseño Reutilización del Software Patrones de Diseño 1 Introducción El diseño OO es difícil y el diseño de software orientado a objetos reutilizable lo es aún más. Los diseñadores expertos no resuelven los problemas

Más detalles

Modelado Estructural F E B R E R O,

Modelado Estructural F E B R E R O, Modelado Estructural F E B R E R O, 2 0 1 4 Modelado Estructural Sirve para describir los diferentes tipos y relaciones estáticas existentes entre los diferentes objetos de un sistema. A la hora de desarrollar

Más detalles

Patrones GoF. of four) 23 patrones presentados por la pandilla de los cuatro en el libro Design Patterns.. Gamma, Helm, Johnson, Vlissides

Patrones GoF. of four) 23 patrones presentados por la pandilla de los cuatro en el libro Design Patterns.. Gamma, Helm, Johnson, Vlissides Patrones GoF ANALISIS Y DISEÑO O O.O. Patrones GoF GoF (gang of four) 23 patrones presentados por la pandilla de los cuatro en el libro Design Patterns.. Gamma, Helm, Johnson, Vlissides. 1995. 1 Patrones

Más detalles

Tema 6. Patrones de diseño.

Tema 6. Patrones de diseño. Ingeniería del Software II 2011 Tema 6. Patrones de diseño. Introducción. Durante el diseño Orientado a Objetos es frecuente encontrarse repetidamente con ciertos tipos de problemas, para analizar, compartir

Más detalles

Construcciones del Lenguaje Java

Construcciones del Lenguaje Java Construcciones del Lenguaje Java Autor: Juan Alberto López Cavallotti Versión de Java: 5 / 6 Comentarios Comentario de Línea Comentario Multilínea //Esto es un comentario. /* Esto comenta varias lineas.

Más detalles

Patrones en el e-learning

Patrones en el e-learning Patrones en el e-learning DOCUMENTO BASE El concepto de patrón en el e-learning permite resumir y comunicar la experiencia acumulada en la enseñanza-aprendizaje por medios telemáticos. Un patrón puede

Más detalles

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. IV.3 Monitorización de excepciones en Threads

PROGRAMACION CONCURRENTE Y DISTRIBUIDA. IV.3 Monitorización de excepciones en Threads PROGRAMACION CONCURRENTE Y DISTRIBUIDA IV.3 Monitorización de excepciones en Threads J.M. Drake 1 Gestión excepciones en thread Java Las excepciones se pueden lanzar en cualquier punto de un programa Java.

Más detalles

Concurso: Cuánto sabes de JAVA?

Concurso: Cuánto sabes de JAVA? Concurso: Cuánto sabes de JAVA? Motivación: o Para cambiar el ritmo de las jornadas y que no todas las actividades sean charlas o Recordar conocimientos y aprender algo nuevo. o Las preguntas pueden ayudarnos

Más detalles

PROGRAMA DE CURSO. Horas de Trabajo Personal Horas de Cátedra

PROGRAMA DE CURSO. Horas de Trabajo Personal Horas de Cátedra PROGRAMA DE CURSO Código Nombre CC3002 Metodologías de Diseño y Programación Nombre en Inglés Design and programming methodologies SCT Unidades Docentes Horas de Cátedra Horas Docencia Auxiliar Horas de

Más detalles

A continuación se describe con mayor detalle cada una de tales unidades:

A continuación se describe con mayor detalle cada una de tales unidades: 1. OBJETIVOS: - Entender los conceptos teórico-prácticos que se emplean en la fase de diseño de un proyecto de software. - Entender las metodologías de diseño para las diferentes estrategias de desarrollo

Más detalles

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +.

Qué es Java? Un lenguaje de programación Un entorno de desarrollo Un entorno de aplicación Un entorno de despliegue Es similar en sintaxis de C + +. APUNTES DE JAVA Agenda Bienvenida Conociendo Java La Maquina Virtual Descargar e instalar el compilador El entorno de trabajo El paradigma de la programación orientada a objetos Qué es Java? Un lenguaje

Más detalles

UNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA

UNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA UNIDAD 4 IMPLEMENTACION DE PROPIEDADES DE LOS OBJETOS JAVA Analista Programador Universitario Universidad Nacional de Jujuy JTP Jorge R. Mendoza Implementación de propiedades de los objetos Java Contenido

Más detalles

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo.

El patrón Composite (Compuesto) Propósito Componer los objetos a una estructura de jerarquía de relación partetodo. Definición más precisa de los patrones Un patrón del diseño nomina, abstrae y identifica los aspectos claves de un diseño común para crear un diseño orientado a objetos reutilizable. Son descripciones

Más detalles

Lógica de Negocios. Esteban Calabria 2007

Lógica de Negocios. Esteban Calabria 2007 Lógica de Negocios Esteban Calabria 2007 Lógica de Negocios Para organizar el Layer de Negocios Transaction Script Table Module Domain Module Service Layer Scripting Conceptos Previos Glanularidad Interfaces

Más detalles

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

Patrones de Diseño. Patrón de comportamiento Strategy. Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Patrones de Diseño Patrón de comportamiento Strategy Técnicas de Programación - Curso 2008/09 (Esther Guerra Sánchez) Propósito Definir una familia de algoritmos, encapsularlos y hacerlos intercambiables

Más detalles

Patrones de Diseño. Diseño y Arquitectura de Software Grado en Ingeniería de Software. Universidad Rey Juan Carlos

Patrones de Diseño. Diseño y Arquitectura de Software Grado en Ingeniería de Software. Universidad Rey Juan Carlos Patrones de Diseño Diseño y Arquitectura de Software Grado en Ingeniería de Software Universidad Rey Juan Carlos Carlos E. Cuesta carlos.cuesta@urjc.es 1 Índice Introducción Clasificación Patrones Creacionales

Más detalles

Patrones Arquitectónicos de Software

Patrones Arquitectónicos de Software Jaime Eduardo Arias Almeida Néstor Raúl Cárdenas Pinzón Pontificia Universidad Javeriana - Cali Marzo 18 de 2010 Tabla de Contenido 1 Definición Consideraciones 2 Layers Pipes and Filters Blackboard 3

Más detalles

DISEÑAR APLIC I ACIO I N O ES 1

DISEÑAR APLIC I ACIO I N O ES 1 DISEÑAR APLICACIONES 1 El análisis y diseño de sistemas de software es un área amplia y compleja. En este capítulo se expone una pequeña introducción a la metodología de análisis y diseño. El estudio detallado

Más detalles

Ingeniería de Software II- Introducción a Patrones de Diseño 15 de abril de 2013 Julio Ariel Hurtado Alegría

Ingeniería de Software II- Introducción a Patrones de Diseño 15 de abril de 2013 Julio Ariel Hurtado Alegría Ingeniería de Software II- Introducción a Patrones de Diseño 15 de abril de 2013 Julio Ariel Hurtado Alegría 1. Introducción Los patrones de diseño facilitan la reutilización del conocimiento en un diseño.

Más detalles

BROKER Publicador Suscriptor. Jonnathan Corredor Lorena Arrieta Alejandro Mosquera

BROKER Publicador Suscriptor. Jonnathan Corredor Lorena Arrieta Alejandro Mosquera BROKER Publicador Suscriptor Jonnathan Corredor Lorena Arrieta Alejandro Mosquera Contenido 1. Descripción General 2. Guía de Implementación 3. Patrones Relacionados 4. Usos Conocidos 5. Variaciones 6.

Más detalles

ORIENTACIÓN A OBJETOS II

ORIENTACIÓN A OBJETOS II ORIENTACIÓN A OBJETOS II Año 2017 Carrera/ Plan: Licenciatura en Informática Plan 2003-07/Plan 2012/Plan 2015 Licenciatura en Sistemas Plan 2003-07/Plan 2012/Plan 2015 Analista Programador Universitario

Más detalles

Introducción a Java LSUB. 30 de enero de 2013 GSYC

Introducción a Java LSUB. 30 de enero de 2013 GSYC Introducción a Java LSUB GSYC 30 de enero de 2013 (cc) 2013 Laboratorio de Sistemas, Algunos derechos reservados. Este trabajo se entrega bajo la licencia Creative Commons Reconocimiento - NoComercial

Más detalles

Clases Abstractas e Interfaces

Clases Abstractas e Interfaces Clases Abstractas e Interfaces Pedro Corcuera Dpto. Matemática Aplicada y Ciencias de la Computación Universidad de Cantabria corcuerp@unican.es Objetivos Aprender a crear y utilizar clases y métodos abstractos

Más detalles

Idiom SimpleFactory Factory Method Abstract Factory Conclusiones

Idiom SimpleFactory Factory Method Abstract Factory Conclusiones Tema 3.3.1 Patrones: Factory Ingeniería del Software II J. Peña (Teoría) Índice Introducción Idiom SimpleFactory Factory Method Abstract Factory Conclusiones Introducción Factory no es un patrón, sino

Más detalles

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA)

UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA) UNIVERSIDAD NACIONAL MAYOR DE SAN MARCOS (Universidad del Perú, DECANA DE AMÉRICA) FACULTAD DE INGENIERIA DE SISTEMAS E INFORMATICA ESCUELA PROFESIONAL DE INGENIERÍA DE SISTEMAS 1. INFORMACIÓN GENERAL

Más detalles

TECNOLOGICO ECOMUNDO FACULTAD DE SISTEMAS PROGRAMA ANALITICO

TECNOLOGICO ECOMUNDO FACULTAD DE SISTEMAS PROGRAMA ANALITICO TECNOLOGICO ECOMUNDO FACULTAD DE SISTEMAS PROGRAMA ANALITICO Materia: Análisis y Diseño OO Código: COM Créditos: Horas Presenciales: 36 Horas no Presenciales: 72 Pre- Requisito: Ninguno Código: Periodo

Más detalles

Curso de Java POO: Programación orientada a objetos

Curso de Java POO: Programación orientada a objetos Curso de Java POO: Programación orientada a objetos Luis Guerra Velasco Curso INEM. Programación en Java Diciembre 2010 Índice 1 Introducción 2 Comportamiento y estado 3 POO en Java 4 Relaciones 5 Herencia

Más detalles

Introducción a los Patrones de Diseño

Introducción a los Patrones de Diseño escuela técnica superior de ingeniería informática Introducción a los Patrones de Diseño Departamento de Lenguajes y Sistemas Informáticos Ingeniería del Software II El Camino Qué es un Patrón de Diseño

Más detalles