PATRONES DE INDIRECCION Y VARIANTES PROTEGIDAS

Slides:



Advertisements
Presentaciones similares
UML DCU -DS Alvaro Garrido V..
Advertisements

Fundamentos de Diseño de Software INFT.1
Curso de Java Capitulo 7: Continuación Poo Profesor:
Definición de Clases y Variables de referencia.
POLIMORFISMO UNIDAD 4.
Lenguaje de programación Java
UML para programadores Java
Clases Extendidas La clase extendida hereda los campos y métodos de la clase de la cual extiende. La clase original se conoce como superclase y la clase.
Arquitectura CLARO-TECNOTREE
Modelos de Datos Modelado y Diseño de Bases de Datos
Introducción 1 Puntos Clave –La orientación a objetos representa un cambio radical en los métodos tradicionales de creación de software –Los métodos tradicionales.
El proceso de desarrollo de software
Inner classes CAPITULO 8.
Herencia y Polimorfismo
UNIVERSIDAD LATINA (UNILA) ENCAPSULACION Y HERENCIA
Preguntas tipo test (Tema I)
INTRODUCCIÓN A UML Oscar Miguel Alonso Moreno.
DIAGRAMAS DE CLASES Completando los diagramas de interacción, es posible identificar la especificación de las clases que participarán en la solución indicando.
PROGRAMACION ORIENTADA A OBJETOS
Encapsulamiento y Abstracción
Abstracción de Datos La abstracción es un recurso fundamental en la programación orientada a objetos y está además fuertemente ligado a reusabilidad.
Herencia e Interfaces.
Programación Orientada a Objetos usando C++
Herencia y Polimorfismo en JAVA
Polimorfismo Lenguajes de Programación II Corporación Universitaria del Caribe CECAR.
Lic. Rosemary Torrico Bascopé
El patrón de diseño Proxy Raúl Heras Alberto Blasco José Manuel Arévalo.
Clases y objetos La unidad fundamental de programación OO son las clases. Conjunto de métodos y semántica Qué se va a hacer POO Clase: que define la implementación.
Introducción a la programación Orientada a objetos
Tema 10: Interfaces Antonio J. Sierra.
1 Herencia en Java Agustín J. González Diseño y Programación Orientados a Objetos.
Algunas Herramientas de Apoyo al Diseño de Software Agustín J. González ELO329: Diseño y programación orientados a objetos.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Objetos.
Diagramas de Clase Angela Carrillo R..
ANDRES FELIPE BORRERO SALAZAR COD ALEXANDRA CARREÑO SALAS COD LUCIO ANIBAL CRIOLLO COD ALEJANDRO RUIZ IDROBO COD
DISEÑO DE SOFTWARE 1ª. Parte
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
Patrones GRASP.
Modelos de Bases de Datos
Comunicación y Multimedia
Métricas Técnicas para Sistemas Orientados a Objeto
1 Introducción a Java y Diseño orientado a objetos ELO-329 Diseño y programación orientados a objetos 1s05.
Universidad Central de Venezuela Facultad de Ciencias Postgrado en Ciencias de la Computación Sistemas Distribuidos Albany Márquez.
ANALISIS Y DISEÑO DE SISTEMAS II
Metodología para la construcción de programas
PATRÓN ADAPTER (Adaptador) Elena Moreno Ramírez Laura Sánchez Romero Aroa Solana Ruiz.
Sara Isabel Osorio Alacraz Ana Isabel Vallejo Grisales
Informatica II1 Clases Extendidas La clase extendida hereda los campos y métodos de la clase que ha sido extendida. La clase original se conoce como superclase.
1 Introducción a Java y Diseño orientado a objetos ELO-329 Diseño y programación orientados a objetos 1s04.
Algunas Herramientas de Apoyo al Diseño de Software Agustín J. González ELO329: Diseño y programación orientados a objetos.
Importancia en la efectividad del:
TEMA 10: DIAGRAMA DE: OBJETOS, SECUENCIA Y DESPLIEGUE EN UML
1 Entorno en Java y Diseño orientado a objetos ELO-329 Diseño y programación orientados a objetos 1s09.
Herencia. Introducción La idea básica es poder crear clases basadas en clases ya existentes. Cuando heredamos de una clase existente, estamos re-usando.
Introducción a UML DIAGRAMA DE CLASES Departamento de Informática
TEMA 9: DIAGRAMA DE CLASE EN UML
Introducción a la Programación Orientada a Objetos Una clase que modela los atributos y el comportamiento de una colección de objetos, define un tipo de.
Indirección y Variaciones Protegidas
UML Casos de Uso (repaso) y Diagramas de Clase
PROGRAMACIÓN IV INTRODUCCIÓN.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS GUI.
Acceso a Datos Erick López Ovando Licenciado en Informática.
Encapsulamiento Miguel Ángel Rojas Aguilar Esthela Carmina Carranza Cabrera.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Arreglo.
Fundamentos de Ingeniería de Software
DIAGRAMAS DE SECUENCIA. UML está compuesto por los siguientes diagramas:
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Encapsulamiento.
:: Prof. Yeniffer Peña Programación I Programación Orientada a Objetos Presentación.
INTRODUCCIÓN A LA PROGRAMACIÓN ORIENTADA A OBJETOS Herencia.
Transcripción de la presentación:

PATRONES DE INDIRECCION Y VARIANTES PROTEGIDAS HERNÁN HIDELBERG GÓMEZ CÓDIGO 0410287 UNIVERSIDAD DEL VALLE DEPTO DE SISTEMAS

INTRODUCCIÓN son dos de los patrones propuestos por Larman que pertenecen a los denominadosGRASP(general responsibility assignment software pattern). se trata de pillar, comprender, donde se establecen estos patrones como base para diseñar con éxito.

OBJETIVO Este conjunto de principios o patrones tienen como objetivo asignar de la mejor manera las responsabilidades de las entidades en el DOO.

INDIRECION * resuelve problemas como: ¿donde asignar responsabilidades para evitar/reducir el acoplamiento directo entre elementos y mejorar la reutilizacion?. * solucion asigne la responsabilidad a un objeto que sirva de interfaz entre otros elementos, entonces el acoplamiento en indirecto.

EJEMPLO

Explicación En el diagrama de secuencia se puede apreciar que llega un total de venta al objeto ventica que posteriormente, para calcular el monto real debe efectuarle un impuesto. Este impuesto será hecho por la clase adaptadormasterDeImpuesto que se comunica con un subsistema externo por medio de red, que se encargara de dar el impuesto, luego adaptadormasterDeImpuesto recibe el impuesto que se va a aplicar y lo pasa a ventica. Las conexiones al subsistema no lo hace directamente ventica sino la clase adaptadormasterDeImpuesto.

VARIACIONES PROTEGIDAS * Problema que resuelve: ¿Como diseñar objetos, subsistemas y sistemas de manera que las variaciones o inestabilidades en estos elementos no tengan un impacto no deseable en otros elementos ? * solución: identificar los puntos de variaciones previstas o de inestabilidad asignando responsabilidades para crear una interfaz estable alrededor de ellos.

Un punto de variación representa a una variación contemplada en la especificación de requisitos o documento de entrada del diseño. Por ejemplo : El formato de compresión podrá ser PCX, GIF, BMP, TIFF y TPEG

Un punto de evolución es un punto de variación sobre cuya existencia se conjetura (especula). Por ejemplo, a partir del requisito anterior, el diseñador puede especular sobre la evolución del sistema y tomar la decisión de protegerse sobre la variación del formato de compresión para dar cabida en el futuro a nuevos formatos (p.e a HSI-JPEG).

DISEÑOS DE OCULTACIÓN DE LA ESTRUCTURA Según la ley de Demeter evitar crear diseños que recorren largos caminos de la estructura de objetos y envían mensajes (o hablan) con objetos distantes (extraños). Tales diseños son frágiles con respecto a los cambios en las estructuras de los objetos, un punto frecuente de inestabilidad.

No hables con extraños restringe los objetos a los que se deberían enviar los mensajes dentro del método. establece que en un método, solo deberían enviarse mensajes a los siguientes objetos: el objeto this (o self) un parámetro del método un atributo de this un elemento de una colección que es un atributo de this. un objeto creado en el método

EJEMPLO Class Registro { private Venta venta; public void metodoAlgoFragil() { //venta.getPago () envía un mensaje a un “conocido” //pero en venta.getPago ().getCantidadEntregada se aplica a un Pago “extraño” Dinero cantidad = venta.getPago ().getCantidadEntregada(); //…} Este código recorre conexiones estructurales a partir de un objeto conocido (la venta)a un objeto extraño (el pago) y le envía el mensaje. Es ligeramente frágil, ya que depende del hecho de que los objetos Venta se conecten a los objetos Pago. En realidad no es probable que esto sea un problema. public void metodoMasFragil() { TitularCuenta titular = venta.getPago ().getCuenta ().getTitularCuenta (); //… }

EJEMPLO 2 Formaliza el principio de protección contra las variaciones en implementaciones diferentes de una interfaz, o una subclase que extiende a una superclase. El fragmento de código que hace referencia a un tipo T debería trabaja r correctamente con cualquier implementación o subclase de T que lo sustituya

public class Rectangle { //variables: protected float height, width; public void setHeight (float h) { height= h; } public void setWidth (float w){ width= w; public float getHeight(){ return height; public float getWidth(){ return width; }//fin clase

public class Square extends Rectangle { public void setHeight (float h) super.setHeight(h); super.setWidth(h); } public void setWidth (float w) super.setHeight(w); super.setWidth(w); }// fin clase.

public class LiskovTest { public void run() Rectangle r= new Rectangle(); test(r); Square s= new Square(); test(s);