Relaciones entre Clases Programación Avanzada Prim. 2009 FCC-Buap Profesor: M. C. Miguel Rodríguez Hernandez



Documentos relacionados
M III ABSTRACCIÓN Y CLASIFICACIÓN

DCU Diagramas de casos de uso

DIAGRAMA DE CLASES EN UML

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

Notación UML para modelado Orientado a Objetos

TEMA 8: DIAGRAMA DE CLASE EN UML

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

Relaciones entre clases: Diagramas de clases UML

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Diagramas de Clases ~ 1 ~ Ing. Fabián Silva Alvarado

Base de Datos. Profesor: José Miguel Rubio L. P. UNIVERSIDAD CATÓLICA DE VALPARAÍSO FACULTAD DE INGENIERÍA ESCUELA DE ING.

PROGRAMACIÓN ORIENTADA A OBJETOS Master de Computación. II MODELOS y HERRAMIENTAS UML. II.2 UML: Modelado de casos de uso

Introducción a la programación orientada a objetos

Tema 2: Modelo Entidad-Relación(ER)

Prof. Dr. Paul Bustamante

GUIA COMPLEMENTARIA PARA EL USUARIO DE AUTOAUDIT. Versión N 02 Fecha: 2011-Febrero Apartado: Archivos Anexos ARCHIVOS ANEXOS

Curso de Python Inicial

Universidad de Cantabria

Universidad de Cantabria Facultad de Ciencias Ingeniería en Informática Ingeniería del Software I - Teoría. Ejercicios del Tema 10

Clases y Objetos. Informática II Ingeniería Electrónica

I. T. en Informática de Sistemas. Facultad de Informática

GUÍA RED SOCIAL FACEBOOK

Mantenimiento Limpieza

Curso de Java POO: Programación orientada a objetos

Autor: Microsoft Licencia: Cita Fuente: Ayuda de Windows

KW x hora. on/off

Conceptos. ELO329: Diseño y Programación Orientados a Objetos. ELO 329: Diseño y Programación Orientados a Objetos

SINAUTO. (Captura Requirimientos) GRUPO 03

Instalación y mantenimiento de servicios de Internet. U.T.3.- Servicio DNS

Trabajo Práctico N 4: Diseño por Contratos

Programación Orientada a Objetos con Java

Programación Avanzada Ingeniería Civil en Computación

1. Qué tipos de relación hay entre las siguientes clases?

Operación Microsoft Access 97

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

Ejercicios de Programación Orientada a Objetos

RESUMEN DE CONCEPTOS BASICOS DE PROGRAMACION JAVA

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

Algunas Herramientas de Apoyo al Análisis y Diseño de Software. Agustín J. González ELO329: Diseño y programación orientados a objetos

Ajuste de objetos en CorelDRAW 12: justo lo que necesitas. Por Steve Bain

Examen Junio- Grupo A Lunes 17 de Junio - Programación en C++ Pág. 1

UNIVERSIDAD CATOLICA DE COLOMBIA FACULTAD DE INGENIERIA DE SISTEMAS

CAPITULO V. HERRAMIENTA CASE (Rational Rose, C++)

Formularios. Formularios Diapositiva 1

Patrones para persistencia (I) Ingeniería del Software II

Funcionalidades Software SAT GotelGest.Net (Software de Servicio de Asistencia Técnica)

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

Diagramas de Clase en UML 1.1

Clases abstractas e interfaces

Guía de instalación de la carpeta Datos de ContaWin

Guía de Aprendizaje No. 1

El protocolo IMAP ofrece la descarga de correos en modo sólo lectura, es decir descarga sólo una copia del correo y no permite el borrado.

Creación de un Gráfico con OpenOffice.org Calc Presentación de los Datos Asistente para Gráficos

Práctica GESTIÓN Y UTILIZACIÓN DE REDES LOCALES. Curso 2001/2002. TCP/IP: protocolo TCP

Estas visiones de la información, denominadas vistas, se pueden identificar de varias formas.

UNIVERSIDAD NACIONAL DE TRUJILLO ESCUELA DE INFORMATICA BASE DE DATOS

INGENIERÍA DEL SOFTWARE I. Univ. Cantabria Fac. de Ciencias. Especificación de Requisitos. Práctica 2

Imprimir códigos de barras

Repaso de Conceptos Básicos de Bases de Datos

Guía de instalación de la carpeta Datos de IslaWin

TIPOS DE RESTRICCIONES

App para realizar consultas al Sistema de Información Estadística de Castilla y León

MANUAL DEL USUARIO: EDITOR E-COMMERCE

Tema 3: Herencia en C++ Programación Orientada a Objetos Curso 2008/2009 Begoña Moros Valle

Programación Orientada a Objetos

Caso Estudio. Ejemplo Caso de Estudio introductorio

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

CONCEPTOS BASICOS. Febrero 2003 Página - 1/10

Curso de Doctorado: Tecnologías de Objetos

PANEL DE CONTROL (Zona de Administración) MANUAL DE USO Por conexanet. Revisión 1.1 Fecha

GENERACIÓN DE ANTICIPOS DE CRÉDITO

Draw: objetos en 3D, diagramas de flujo y exportación

Entrega Módulo Excel

Cuando crees tus propios documentos, puede ser que alguna

Prof. Dr. Paul Bustamante

Modelo Entidad-Relación

BASES DE DATOS - Microsoft ACCESS 2007-

GUÍA DE USUARIO DEL CORREO

Índice ÍNDICE EJERCICIO 1: CÁLCULO FINANCIERO (5 PTOS.) EJERCICIO 2: AGENCIA DE COLOCACIONES (5 PTOS.)...4

Manual de rol gestor de GAV para moodle 2.5

Elementos requeridos para crearlos (ejemplo: el compilador)

Delimitar tareas en Project 2010

Tecnología de Programación

Solución al Examen de Prácticas de Programación (Ingeniería Informática)

Ingeniería del Software

Manual de USO de la Web. Afilnet.com. Afilnet. Servicios de Telecomunicaciones SMS

GENERACIÓN DE CÓDIGO

Problema B Olonso y los laberintos

COMBINAR CORRESPONDENCIA EN MICROSOFT WORD

Definiciones. Tema 21_Módulos Menú 1

Ajustes del Curso en egela (Moodle 2.5)

Tema: Herencia Simple y Múltiple en C++.

Funciones más usuales 1

ÍNDICE...1. Pág. 1/21

TRABAJO POTENCIA Y ENERGÍA

Manual del visor GeoEuskadi 2013 MANUAL DEL VISOR GEOEUSKADI

Práctica 2 Gráficos Vectoriales con SVG (versión )

Introducción a Protégé

Programación Orientada a Objetos en Java

Tema 6: Diseño de bases de datos relacionales.

Transcripción:

Relaciones entre Clases Programación Avanzada Prim 2009 FCC-Buap Profesor: M C Miguel Rodríguez Hernandez

Asociación Es una relación binaria general que describe una actividad entre dos clases Se describe como una línea sólidad entre dos clases con una etiqueta opcional que describe la relación Student 560 * Take Course 03 1 Teach Faculty Las relaciones entre estas clases tienen: 1 Símbolo o (triangulo sólido) indica la dirección de la relación 2 Rol Name Describe el papel que juega en la relación 3 Multiplicidad Especifica cuántos objetos de la clase están implicados en la relación * significa un número ilimitado de objetos m n significa que el número de objetos está entre m y n inclusive En java se pueden implementar las relaciones anteriores como: public class Student{ private Course[] courselist public void addcourse( Course s){ public class Course{ private Student[] classlist; private Faculty faculty; public void addstudent( Student s){ Public void SetFaculty(Faculty faculty){ public class Faculty{ Private Course[] CourseList; Public void addcours( Course c){

Agregacion y Composición Agregación: Composición : Agregación es una forma especial de asociación que representa una relación de pertenencia entre objetos La agregación modela relaciones tiene-un (has a) La relación de agregación se representa generalmente con un atributo en la clases agregante Compsición: es una relación más fuerte que la agregación Ejemplo: Es una agregación porque direcc puede ser compartida por varios estudiantes Name Person Address Un estudiante tiene un nombre y una dirección El diagrama anterior se puede representar en código java como sigue: public class Name{ public class Person{ private Name name; private Address address; public class Address{ Debido a que las relaciones son traducidas a la misma plantilla de clase, por simplicidad, ambas son llamadas composición

Dependencia Una dependencia describe una relacion entre dos clases donde una (llamada cliente) usa la otra (llamada servidor) En UML se dibuja una línea punteada con un sentido( ) de la clase cliente a la clase servidor Ejemplo: Dependencia Calendar Date La clase Calendar usa Date porque podemos crear un calendario con un objeto Date especificado La relación entre Calendar y Date se puede describir usando dependencias En java, la dependencia se implementa usando un método en la clase cliente El método contiene un parámetro del tipo de clase servidor Por ejemplo: public class Calendar{ public void settime(date date){ La dependencia y asociación describen una clase que depende de otra La asociación es más fuerte que la dependencia En la asociación, el estado del objeto cambia cuando su objeto asociado cambia En la dependencia, el objeto cliente y el objeto servidor están acoplados La relación de asociación se implementa usando atributos y métodos Existe una conexión fuerte entre las dos clases La relación de dependencia se implementa usando métodos

Herencia La relación de herencia modela la relación es-un, entre dos clases La sentencia es-un describe una relación de herencia directa entre dos clases Por ejemplo: Person Relación de herencia o extend Student extends Person Student En java existe una sentencia para extender (o heredar) una clase de otra public class Student extends Person{ Ejemplo: Generalización

Diseño orientado a Objetos Los siguientes pasos son realizados generalmente al construir sistemas orientados a objetos 1 Identificar las clases para el sistema 2 Establecer las relaciones entre clases 3 Describir los atributos y métodos en cada clase 4 Implementar las clases Ejercicios y Problemas: 1-Define la clase Rectangle heredada de la clase Point Un atributo punto debería indicar la esquina superior izquierda del rectángulo Cuáles serian los atributos de la clase?, Qué métodos adicionales agragarías? 2-Dibuja la grafico de herencia que incluya las siguientes clases: ObjetoDibujable, Punto, Círculo, Rectangulo, Punto-3D y Esfera 3- Diseña la clase Pentágono representado por 5 puntos dentro de un array con un método que calcule su perímetro Añade otro método que devuelva el punto del pentágono más alejado del origen de coordenada 4- Diseña la clase Polígono representado por un array de punteros a bjetos Punto3D El constructor recibirá como argumentos tres objetos Punto3D que representarán inicialmente un triángulo La clase dispondrá asimismo de métodos para: añadir un vértice al polígono; eliminar vértice; destructor; constructor por defecto; y cálculo del perímetro 5- Cree una clase denominada Alarma cuyos objetos activen un objeto de tipo Timbre cuando el valor medido por un Sensor supere un umbral preestablecido:

Implemente en Java todo el código necesario para el funcionamiento de la alarma, suponiendo que la alarma comprueba si debe activar o desactivar el timbre cuando se invoca el método comprobar() 6- Cree una subclase de Alarma denominada AlarmaLuminosa que, además de activar el timbre, encienda una luz (que representaremos con un objeto de tipo Bombilla) NOTA: Procure eliminar la aparición de código duplicado al crear la subclase de Alarma y asegúrese de que, cuando se activa la alarma luminosa se enciende la luz de alarma y también suena la señal sonora asociada al timbre 7- La cadena de Video-Clubs Glob-Gusters ha decidido, para mejorar su servicio, emplear una base de datos para almacenar la información referente a las películas que ofrece en alquiler Esta información es la siguiente: Una película se caracteriza por su título, nacionalidad, productora y fecha (pe, Quo Vadis, Estados Unidos, MGM, 1955) En una película pueden participar varios actores (nombre, nacionalidad, sexo) algunos de ellos como actores principales Una película está dirigida por un director (nombre, nacionalidad) De cada película se dispone de uno o varios ejemplares diferenciados por un número de ejemplar y caracterizados por su estado de conservación Un ejemplar se puede encontrar alquilado a algún cliente (DNI, nombre, dirección, teléfono) Se desea almacenar la fecha de comienzo del alquiler y la de devolución Cada socio puede tener alquilados, en un momento dado, 4 ejemplares como máximo Un socio tiene que ser avalado por otro socio que responda de él en caso de tener problemas en el alquiler

8- La biblioteca contiene libros y revistas Puede haber varias copias de un libro dado Algunos libros se prestan sólo para un período de 3 días El resto de libros se prestan para 3 semanas a cualquier socio de la biblioteca Se puede tener en préstamo hasta 6 libros a la vez Sólo los trabajadores de la biblioteca pueden tomar en préstamo revistas Los trabajadores de la biblioteca pueden tener hasta 12 libros/revistas en préstamo El sistema debe almacenar cuándo se toman en préstamo y devuelven todos los libros/revistas Cuando se quiere tomar en préstamo una copia de un libro y no está disponible es posible hacer una reserva del libro Es posible extender la fecha del préstamo del libro Para ello hay que llevar dicho libro, mostrarlo en la biblioteca y, si no hay reservas hechas para dicho libro, entonces se pone la nueva fecha de entrega (3 días/semanas después) Se puede consultar el catálogo de la biblioteca (tanto libros como revistas) por distintos campos de búsqueda No hace falta ser socio de la biblioteca para ello Sólo algunos de los trabajadores de la biblioteca pueden actualizar el catálogo (cuando llegan libros/revistas nuevos o se dan de baja) 9- Caso de Estudio: Hotel El hotel del que vamos a realizar el diagrama tiene un nombre y un número de estrellas Posee tres tipos de habitaciones: sencilla, doble y suite y dos tipos de clientes: habituales y esporádicos Cada reserva almacena: la fecha de entrada y el número de días que será ocupada la habitación Al cliente se le toman los siguientes datos: el nombre, la dirección y su teléfono Las habitaciones tienen distinto precio y distinto número, y además es posible mostrar una foto de cada una de ellas al cliente La habitación sencilla el cliente puede elegir si exterior o no, en la habitación doble si cama de matrimonio o sencilla y en la suite la posibilidad de bañera, sauna y mirador Los clientes que son habituales reciben un trato especial, es decir, una reducción en el precio de la habitación con respecto al cliente esporádico A los esporádicos el hotel les ofrece la posibilidad de darles información sobre las ofertas