PRactico 1 Resuelto

Anuncio
TP01/2010
Fecha Entrega:
Trabajo Práctico N° 1: Diagrama de Clases. Relacion es de Clases
1- Defina Herencia, polimorfismo y encapsulación. Ejemplifique.
2- Considere las siguientes listas de términos. La de la izquierda, lista nombres de tipos
de relaciones que se pueden dar entre clases. Mientras que la del centro, lista términos
utilizados frecuentemente cuando se leen relaciones entre clases a partir de un
diagrama. A la derecha se ven las representaciones en los diagramas.
Tipo de Relación
a)Especialización/Generalización
(Herencia)
b)Dependencia
Termino usado cuando se
leen las relaciones entre
clases
a)“Es un tipo de”
a)
b)“Es parte de”
b)
c)Agregación
c)“Está formado por”
d)Composición
d)“Implementa a”
e)Asociación
e)“Se conecta a” ó “Se
asocia a”
Representación
diagrama
en
c)
d)
e)
Solución: a-a-c; b-d-d; c-c-a; d-b-e; e-e-b
3- Por cada diagrama: mencione el o los tipos de relaciones existentes y escriba la
interpretación a lenguaje común:
a)
Una posible interpretación: Nota: Usted puede expresar exactamente lo mismo pero de formas
distintas.
Un supermercado “está compuesto de” secciones (una a muchas). Si el Supermercado deja de
existir las secciones no tienen sentido. Por ello la relación es una composición
Por otro lado los clientes forman parte del Supermercado, aunque si el Supermercado
desaparece los clientes no (digamos que las personas se convertirán en clientes de otros
supermercados) por ello la relación es de agregación. Por otro lado una posible razón por la
cual el Supermercado desaparecerá será justamente que no posea clientes. Por ello la relación
puede ser de 0 a muchos
b)
TP01/2010
Fecha Entrega:
Existe una clara relación de generalización o herencia. Todas las clases del último nivel son
Vehículo. Pero algunas son un tipo específico de Vehículo: Vehículo Terrestre (Coche, Camión)
o Vehículo Aéreo (Avión, Helicóptero). Si bien no se indican los atributos y operaciones de
cada clase es seguro suponer que en las respectivas superclases existen atributos y
operaciones comunes, mientras que en las subclases pueden existir nuevos atributos y
operaciones (además de especialización de las operaciones definidas en la superclases.).
Las subclases del último nivel heredan los atributos y operaciones de las clases del primer
segundo nivel y del primer nivel.
En caso de que en el primer nivel haya operaciones que se llaman igual que las del segundo
nivel, las clases del tercer nivel heredan las operaciones del segundo nivel.
c)
Existe una relación de asociación. En este caso necesitamos un contexto para poder hablar de
esta relación. Supongamos que estamos en un negocio de ventas de autopartes. Entonces el
cliente puede poseer 0 o muchas órdenes de compra registradas. Algunas de ellas pueden
estar pendientes de entrega o no.
Fijarse que no podríamos usar la navegación genera (un cliente genera 0 o muchas órdenes de
compra, ya que no tiene sentido).
Como no existe el indicador de navegación esta asociación es bidireccional. Es decir que falta
agregar que “en caso de existir una orden de compra siempre está asociada a un cliente” con
lo cual suponemos que el cliente debe existir.
4- Realice una narración que describa el siguiente diagrama:
Solución: Una empresa se compone de uno o varios departamentos. En un departamento
trabajan uno o varios empleados, pero un empleado solo trabaja en un departamento. Hay dos
tipos de empleados Empleado Part Time y Empleado Full Time.
La relación de asociación entre Empleado y Departamento sirve para completar algún concepto
por ejemplo que a lo sumo un departamento puede tener un Empleado Full Time.
La relación inversa que dice que un Empleado Full Time puede no estar asociado a un
Departamento “contradice” la relación entre Empleado y Departamento, por lo tanto esto se
debe corregir, presumiblemente en la relación Departamento - EmpleadoFullTime
5- Dado los siguientes tópicos por cada problema: Modelar el diagrama de clases con
sus relaciones e incluir en las clases los métodos y atributos requeridos:
TP01/2010
Fecha Entrega:
a) EMPRESAS
• Una aplicación necesita almacenar información sobre empresas, sus empleados y sus
clientes.
• Ambos se caracterizan por su nombre y edad.
• Los empleados tienen un sueldo bruto, los empleados que son directivos tienen una
categoría, así como un conjunto de empleados subordinados.
• De los clientes además se necesita conocer su teléfono de contacto.
• La aplicación necesita mostrar los datos de empleados y clientes.
Observe que en esta relación supongo que existe una única empresa, por lo tanto no haría
falta que definamos la clase, esta sería una información propia de la aplicación
b) RESTAURANTE
•
•
•
•
•
•
Un cliente va a un restaurant y puede solicitar una o varias órdenes de servicio. Se
registra la mesa en la que se sienta y cantidad de comensales de la misma.
Puede ordenar bebidas y platillos.
La orden debe registrar la hora y el mesero que lo atiende.
El pago tiene tres datos, un subtotal (que es lo consumido por el cliente), la propina y
los impuestos por la venta realizada.
Se debe calcular el total del pago.
La orden se puede pagar efectivo o a crédito.
o Si es en efectivo se requiere saber la cantidad.
o Si es a crédito se requiere saber el numero de tarjeta de crédito, el tipo y el
nombre del titular; también se calcula el cargo por el uso de la tarjeta.
TP01/2010
Fecha Entrega:
Para este ejercicio en particular la forma de resolverlo puede variar mucho, dependiendo del
contexto elegido
c)BIBLIOTECA
•
•
•
•
•
•
Una Biblioteca tiene copias de libros. Estos últimos se caracterizan por su nombre, tipo
(novela, teatro, poesía, ensayo), editorial, año y autor.
Los autores se caracterizan por su nombre, nacionalidad y fecha de nacimiento.
Cada copia tiene un identificador y puede estar en la biblioteca, prestada, con retraso o
en reparación.
Los lectores pueden tener un máximo de 3 libros en préstamo,
Cada libro se presta un máximo de 30 días, por cada día de retraso, se impone una
“multa” de dos días sin posibilidad de sacar un nuevo libro.
Nota: Añada los métodos necesarios para realizar el préstamo y devolución de libros.
TP01/2010
Fecha Entrega:
En este ejemplo cuya resolución se halla extraída de un libro se muestra un par de nuevos
conceptos que pueden no coincidir con los ejercicios resueltos por ustedes. Esto NO QUIERE
decir que ustedes lo hicieron mal. Simplemente ustedes usaron los conceptos que se
mostraron en la asignatura.
Entre Copia y Lector se generó un tipo asociativo de objeto. Sería como el análogo de la TEA
de las bases de datos, la asociación entre ambos objetos genera una nueva clase con sus
atributos y operaciones
6 - Considere la siguiente lista de declaraciones.
• Para cada caso, identifique clases y relaciones entre clases, clasificando estas
relaciones en generalización/especialización, asociación, agregación o
composición.
• Construya los diagramas de clases correspondientes. Incluya atributos y
operaciones (métodos) si se requiere.
a) Una figura puede estar compuesta por otras figuras básicas, como por ejemplo: triángulos,
elipses y cuadriláteros. Se sabe además que un tipo particular de elipse es el círculo, mientras
que un tipo particular de cuadrilátero es el rectángulo. A su vez un tipo particular de rectángulo
es el cuadrado. Por otra parte, los cuadriláteros y triángulos son tipos de polígonos. Los
polígonos tienen un número de lados, y dichos lados están definidos por 2 puntos. Un punto
está definido por una coordenada en el eje de las x, y otra en el eje de las y.
b) Un país tiene provincias, limita con otros países y se localiza en un continente. Las
provincias de un país limitan con otras provincias del mismo país. Las provincias tienen
ciudades y una de ellas es su capital.
TP01/2010
Fecha Entrega:
c) Java, C++, Smalltalk y Eiffel son lenguajes de programación orientados a objetos. A su vez,
Pascal y C son lenguajes de programación procedurales y Prolog es un lenguaje de
programación en lógica. El programa “JFS” es una clase de simulador de vuelo y está escrito
en el lenguaje de programación Java.
7- Dado el siguiente fragmento: "El Hobbit"; J.R.R. Tolkien
Realizar un Diagrama de Clases que modele un " agujero-hobbit ".
En un agujero en el suelo, vivía un hobbit. No un agujero húmedo, sucio, repugnante, con
restos de gusanos y olor a fango, ni tampoco un agujero seco, desnudo y arenoso, sin nada en
que sentarse o que comer: era un agujero-hobbit, y eso significa comodidad.
Tenía una puerta redonda, perfecta como un ojo de buey, pintada de verde, con una manilla de
bronce dorada y brillante, justo en el medio. La puerta se abría a un vestíbulo cilíndrico, como
un túnel: un túnel muy cómodo, sin humos, con paredes revestidas de madera y suelos
enlosados y alfombrados, provisto de sillas barnizadas, y montones y montones de perchas
para sombreros y abrigos; el hobbit era aficionado a las visitas. El túnel se extendía serpeando,
y penetraba bastante, pero no directamente, en la ladera de la colina —La Colina, como la
llamaba toda la gente de muchas millas alrededor—, y muchas puertecitas redondas se abrían
en él, primero a un lado y luego al otro. Nada de subir escaleras para el hobbit: dormitorios,
cuartos de baño, bodegas, despensas (muchas), armarios (habitaciones enteras dedicadas a
ropa), cocinas. Comedores, se encontraban en la misma planta, y en verdad en el mismo
pasillo. Las mejores habitaciones estaban todas a la izquierda de la puerta principal, pues eran
las únicas que tenían ventanas, ventanas redondas, profundamente excavadas, que miraban al
jardín y los prados de más allá, camino del río.
TP01/2010
Fecha Entrega:
Descargar