Exámenes IDP. Final Enero 1997. Facultad de Informática Examen Ingeniería de la Programación (27/01/97) Cuestiones (Total 4 puntos). De las 6 cuestiones conteste a 5 de ellas. 1) Dado el siguiente fragmento de código en el lenguaje Eiffel: class Generica[T1, T2] export x,y,z,.. feature x:T1; y: T2; z: array[T1] ... create(nx:T1) is do x.create; x:= nx; z.create(1,0); end ..... end -- clase generica ¿Existe algún error en el código de la clase? 2) Explique las diferencias y similitudes que existen entre los mecanismos de excepciones de los lenguajes Eiffel y CLU. 3) Comente brevemente los mecanismos que emplean los lenguajes de programación orientados a objetos para reservar memoria para los mismos. 4) Enumere, acompañandolas de un ejemplo, las formas en las que se puede descomponer un diagrama de transición entre estados. 5) Defina las relaciones que se dan en un diagrama de objetos dentro de OMT y explique ¿en qué se convierten en un lenguaje de programación orientado a objetos? 6) Defina los flujos de control externo e interno de un sistema. Comente las formas en las que puede implementarse el flujo de control externo. Problemas: 1) (2 puntos) ¿Como se traduciria el siguiente modelo de objetos a definiciones de tablas en una base de datos relacional?. ¿Y en Pascal Orientado a Objetos? A B ax:integer ay:integer bx:integer by:integer C cx:integer cy:integer D dx:integer dy:integer 1 2) (1 punto) La figura muestra un diagrama de estados incompleto para el control de un contestador telefónico. Se contesta automáticamente a una llamada de la siguiente forma: se detecta la llamada entrante en el primer tono y la máquina responde con una indicación prefijada. Cuando termina la indicación, se registra el mensaje de quien haga la llamada. Cuando cuelga la persona que llama, la máquina cuelga y se desconecta. Situar en el diagrama: llamada detectada, responder llamada, reproducir indicación, registrar mensaje, cuelga el emisor, indicación terminada. Reproduciendo indicación Colgado Grabando PREGUNTA: Revisar el diagrama obtenido para hacer que el contestador se active al quinto tono de llamada. Si se responde a la llamada antes de este quinto tono la máquina no debe hacer nada. 2) (3 puntos) Una hoja de cálculo está formada por un vector bidimensional de celdas, donde las columnas están indexadas por las letras A..Z, y las filas mediante números enteros 1..100. Cada celda puede contener un string, un valor numerico o bien una fórmula. Nuevo Abrir Salvar Salvar como Salir Opciones Ejemplo Nombre fichero en uso Entrada E4 > Linea de entrada A B C D E F G H I J 1 2 3 Rejilla 4 5 6 7 8 Barras de desplazamiento 9 Mensaje > Linea de mensajes de error Las celdas que contienen una formula también poseen un valor asociado. Las características principales de la hoja de calculo son las siguientes: • Los comandos permitidos son los siguientes: • seleccionar una celda, mediante el ratón. • introducir un valor, una fórmula o un string en la celda seleccionada. • cálculo automático de los valores de celdas que contienen fórmulas. • nuevo, abrir, salvar, salvar como y salir. • Los únicos valores permitidos son los valores reales. 2 • • Las gramática de las fórmulas es similar a una gramática para expresiones aritméticas. La interfase de usuario aparece reflejada en la figura anterior. Con respecto a las entradas que introduce el usuario en la línea de entrada, los strings van precedidos del carácter $, mientras que las fórmulas o expresiones lo van por el carácter =. Por ejemplo las líneas: Entrada H5 > = (A1 + 15.0 ) * A3 / B2 Entrada H1 > $Acumulado Entrada H4 > -12.5 sirven para introducir respectivamente una fórmula, un string y un número real. PREGUNTA: Construir un modelo de objetos para el problema, identificar que clases pueden tener un comportamiento dinámico relevante. Construir los escenarios, las trazas de eventos y los diagramas de transición entre estados. Finalmente el diagrama de flujo de eventos del sistema. Julio 1997. Ingeniería de la Programación Facultad de Informática Examen Final 7 de Julio de 1997 Observaciones: 1. No se guardaran partes aprobadas para el curso 97/98. 2. Si en la convocatoria de febrero aprobó la práctica o la teoría (con nota mayor o igual que 5), esa nota se guarda para hacer media en la presente convocatoria. 3. Para hacer media en la actual, debe tener una nota en cada parte mayor o igual que 4. Teoría (Total 4 puntos) 1) Explique las diferencias y similitudes entre el modelo de metaclase que soportan los lenguajes Smalltalk-76 y Loops. 2) Definición de enlace estático y enlace dinámico. Como resuelven el enlace dinámico los lenguajes Simula y Eiffel. 3) Comente las relaciones que se dan entre el modelo de objetos y los modelos dinámico y funcional dentro de OMT. 4) ¿Qué pasos forman parte del diseño del sistema y del diseño de objetos dentro de OMT, expliquelos brevemente? Problemas. (Total 6 puntos) 1) (1,5 puntos) De la traducción a Pascal Estandar del siguiente fragmento de código: Class Punto x,y: integer; procedure Init( Nx, Ny:Integer); procedure Mover(dx,dy:Integer); procedure Dibujar; virtual; end; Class Circulo hereda de Punto r: radio: procedure Init(Nx,Ny,Nr: Integer); procedure Dibujar; virtual; end; 3 Var p: punto; pPtr: puntoPtr; c: circulo; cPtr: CirculoPtr; p.Dibujar; C.Dibujar; p.Mover(10,10); New(pPtr); pPtr^.Dibujar; 2) (1,5 puntos) a) Construir un diagrama de transición entre estados para las operaciones de seleccionar y arrastrar figuras de un editor gráfico elemental. La operaciones de selección y de arrastre funcionan de la siguiente forma: se dispone de un ratón de dos botones. Si se pulsa el botón izquierdo del mismo sobre una figura, entonces esta queda seleccionada. Si se pulsa fuera de las figuras, las seleccionadas quedan sin seleccionar. Al mover el ratón con el botón izquierdo pulsado se arrastran las figuras seleccionadas. Debe justificar todas las suposiciones que realice para la resolución del ejercicio. b) Realice la traza para salvar un dibujo en disco, y para cargarlo. No se olvide de la clase Interface de usuario 3) (3 puntos) Se pretende construir un sistema que trabaje en modo batch para procesar las ventas que se producen en un almacen. Cada venta contiene una secuencia de líneas, una por producto. Cada línea contiene un código de barras, el cual es un entero de 13 digitos, que identifca un producto. La linea puede contener tambien un número que indica la cantidad comprada de ese producto. Si no existe el número se supone que la cantidad es uno. Cada venta termina con una línea que contien el string "fin venta". El fichero ventas.dat contiene todas las ventas de un día determinado. La primera linea del mismo contiene el string "fecha:" seguido por la fecha en el formato dd/mm/aa. Por ejemplo: fecha: 09/01/97 0068200000787 3 0000000691682 6850000073720 2 fin venta 8792345600120 fin venta La información relativa a los productos está contenida en el fichero productos.dat. La primera linea del mismo contiene el string "fecha:" seguido por la fecha en el formato dd/mm/aa. Cada producto se describe mediante una linea del fichero. La linea contiene el código de barras, una descripción textual del mismo (9 caracteres), y su precio en pesetas. Por ejemplo fecha:09/01/97 0068200000787 8792345600120 0000000691682 6850000073720 "leche" "cafe" "miel" "azucar" 156 240 350 124 La información sobre los productos se usa para generar una factura para cada venta. Para cada linea de venta la factura contiene una linea especificando la cantidad de producto, su descripción, y el precio total de esa línea. La última línea de la factura contiene el total de la venta. Por ejemplo, 3 leche 468 1 miel 350 2 azucar 248 ___________ total 1066 El simulador también produce un informe diario sobre las ventas totales. PREGUNTA: Construir el modelo de objetos, los escenarios y los diagramas de transición entre estados. 4 Enero 1998. Examen Final Ingeniería de la Programación. 19/01/1998. Cuestiones. (Total 4 puntos). 1) Dada la siguiente especificación de una función: float sqrt (float z) // raiz cuadrada de números reales post: return * return == z; // return es el valor devuelto Sustituya los aspectos de la misma que considere que son erróneos. 2) ¿En qué situaciones puede utilizarse en un lenguaje orientado a objetos polimorfismo de inclusión sin necesidad de utilizar enlace dinámico? Razone la respuesta. 3) Dada la siguiente plantilla de clase para las pilas Class Stack private Item ElementoEn( int posicion) int Size public Item pop() pre post void push( Item x) pre post end Class Peguntas: ¿Cada implementación de la plantilla anterior ha de tener una variable Size?¿Una función Size?¿O ElementoEn(int posicion)? ¿Ha de tener cada implementación las funciones pop(), push()? Pensando en una implementación en Eiffel, ¿pondría alguna de las características privada de la clase en la clausula de exportación de la misma?. 4) Comente los diferentes estilos de sistemas que nos podemos encontrar en la etapa de diseño, citando al menos un ejemplo para cada uno de ellos. 5) Muestre el proceso de transformación de las clases y sus relaciones dentro del modelo de objetos en la etapa de análisis a clases y relaciones que se dan al final de la etapa de diseño de objetos. 6) ¿Qué relaciones se dan entre los modelos de OMT, estático, dinámico y funcional? Problemas. (Total 6 puntos) 1) (3 puntos )Una máquina dispensadora de bebidas (café, té , chocolate, etc), dispone de una interfase de usuario formada por un teclado numérico y una pantalla de cristal líquido. El usuario cuando desea seleccionar un artículo introduce mediante el teclado numérico el código del mismo. En ese momento, la máquina permanece en espera hasta que se introduce la cantidad de dinero correspondiente. En este punto el usuario puede anular la selección (con lo que se le retornaría el dinero correspondiente) o bien puede pulsar la tecla de obtención del artículo seleccionado. Cuando alguno de los artículos seleccionados no está disponible, la máquina muestra un mensaje, pudiendo el usuario seleccionar algún otro de los artículos disponibles. Cuando no se dispone de cambio, se enciende un indicador dentro de la máquina, en ese caso sólo se sirven artículos para los que se haya introducido el precio exacto. PREGUNTA: Construir trazas de eventos que muestren secuencias típicas de interacción con la máquina. A partir de estos, el diagrama de transición entre estados del dispositivo. Por último implementar el diagrama en pseudocódigo utilizando la estrategia de flujo de control basada en procedimientos. 5 2) (3 puntos) Un sistema de clasificación de documentos (SCD) puede ser utilizado para almacenar y extraer información relativa a documentos texto. Cualquier documento creado con un procesador de textos, editor o por otros medios puede ser almacenado en el sistema SCD. Los documentos incorporados en el sistema llevan asociados una serie de palabras clave (que los describen), los autores del mismo, y/o una descripción o abstract. Los documentos incorporados pueden ser removidos o borrados del sistema SCD. Los documentos almacenados utilizando el sistema SCD son indexados para facilitar su rápida recuperación. El usuario puede recuperar o buscar documentos basándose en su contenido, descripción, autor(es), o palabras clave. Un usuario puede especificar tales criterios de búsqueda, de modo que se genere como resultado una lista de documentos que los satisfacen. En ese punto el usuario puede especificar criterios adicionales de búsqueda, que se aplican sobre el resultado de la consulta anterior. Los documentos encontrados que satisfacen los criterios del usuario pueden ser visionados y/o imprimidos. PREGUNTA 1: Construir el modelo de objetos del sistema SCD. A continuación se listas algunos escenarios de búsqueda de documentos. Escenario 1. Escenario Normal solicitando una búsqueda simple sobre un documento(s) 1. El usuario desea efectuar una búsqueda sobre un documento(s) con algunos criterios específicos. 2. El usuario rellena algunos de los campos de la figura. 3. El usuario solicita la iniciación de la búsqueda. 4. El sistema SCD retorna la lista de los documentos que satisfacen los criterios. 5. El usuario selecciona un documento 6. El usuario visiona el documento seleccionado. 7. El usuario finaliza la opción de búsqueda. Escenario 2. Escenario de búsqueda con excepciones 1. El usuario desea efectuar una búsqueda sobre un documento(s) con algunos criterios específicos. 2. El usuario solicita la iniciación de la búsqueda. 3. Se muestra un mensaje de error. 4. El usuario finaliza la opción de búsqueda. Escenario 3. Escenario Normal solicitando búsquedas múltiples sobre un documento(s) 1. Igual que en el escenario 1, hasta la linea 6 incluida. 2. El usuario introduce palabras clave adicionales para acotar la búsqueda 3. El usuario solicita la inciación de la búsqueda. 4. El sistema SCD retorna la lista de los documentos que satisfacen los criterios. 5. El usuario selecciona un documento 6. El usuario visiona el documento seleccionado. 7. El usuario finaliza la opción de búsqueda. . B u s q ue d a de d o c um e nto (s ) P re g u n t a C o n t e n id o R e s u lt a d o s d e B u s q u e d a N o m b re D o c Ver u n o .d o c e je r.t x t P re g u n t a A b s t ra c t Im p rim ir P re g u n t a P a la b ra s c la v e P re g u n t a A u t o r( e s ) B uscar V o lv e r V o lv e r Figura. Pantalla de búsqueda y de resultados de búsqueda. PREGUNTA 2: Construir el diagrama de transición entre estados para la interfase de usuario que se corresponde con los escenarios anteriores, teniendo en cuenta que esta ha de ser concurrente. Indicar aquellas operaciones del modelo dinámico de la interfase de 6 usuario que considere que sean candidatas para ser descritas en el modelo funcional del sistema. Junio 1998. Examen Final Ingeniería de la Programación. 24/06/1998. Cuestiones. (Total 4 puntos) 1) A continuación se muestra una plantilla de clase para una máquina dispensadora de bebidas: Clase Maquina Dispensadora Atributos ... Operaciones Void InsertarMoneda(dinero Moneda) Pre Post Void SeleccionaArticulo(item x) Pre Post Dinero ConseguirCambio() Pre Post Escribir, en castellano, una descripción de las operaciones en términos de precondiciones y postcondiciones. ¿Qué atributos del estado interno de la máquina supone que existen para escribir esas descripciones?. 2) Cita y explica cuales son los tipos de acceso a los miembros de una clase en C++. ¿Qué son y para que se utilizan las clases amigas en C++?. 3) ¿Qué tipos de concurrencia pueden aparecer en un diagrama de transición entre estados? Explicalos y pon un ejemplo de cada uno de ellos. 4) ¿Qué tipos de polimorfismo aparecen dentro del modelo de objetos de OMT?. Ponga un ejemplo. 5) ¿Qué relaciones se dan entre los componentes del modelo funcional de OMT y el modelo de objetos?. Explique cada tipo de relación. 6) ¿Cuáles son los pasos para construir el modelo dinámico de OMT?. ¿Cómo están relacionados entre sí?. ¿Existe algún criterio para comprobar la consistencia del modelo dinámico?. 7) ¿Cómo pude eliminarse la herencia múltiple del modelo de objetos?. Ponga ejemplos ilustrativos. Problemas. (Total 6 puntos) 1) (4 puntos) Se trata de diseñar un sistema que se utilizará para controlar una máquina recicladora de botellas, botes y cajas. Esta máquina puede ser utilizada por diferentes clientes, y cada cliente puede retornar los tres tipos de artículos (botella, bote y caja) en la misma ocasión. Dado que hay diferentes tipos de artículos, el sistema debe comprobar, para cada artículo, de que tipo es el devuelto. También se almacenará cuantos artículos ha devuelto cada cliente. Cuando un cliente solicite un recibo, el sistema imprimirá la cantidad que ha depositado, el valor de esos artículos y el total que se le abonará al cliente. El sistema también será usado por un operador. Este querrá saber cuantos artículos de cada tipo se han retornado durante el día, esta información se 7 solicitara y se imprimirá al final de cada día. El operador también podrá modificar información dentro de la máquina, como por ejemplo los valores de los depósitos de los diferentes artículos. Si surge algún problema, como el desborde del recipiente de algún artículo o bien se termina el papel de impresión, el operador será avisado mediante una alarma. Pregunta: Construir el modelo de objetos de la maquina de reciclaje. Dibujar la interfase de usuario de la misma, y construir las trazas, escenarios y diagramas de transición entre estados para los casos de uso: generar informe diario, cambiar artículo, devolver artículos. ¿Tiene diagrama de transición entre estados la máquina?. 2) (2 puntos) Construir un diagrama de transición entre estados para las operaciones de seleccionar y arrastrar figuras de un editor gráfico elemental. Las operaciones de selección y de arrastre funcionan de la siguiente forma: se dispone de un ratón de dos botones. Si se pulsa el botón izquierdo del mismo sobre una figura, entonces esta queda seleccionada. Si se pulsa fuera de las figuras, las seleccionadas quedan sin seleccionar. La selección múltiple se figuras se consigue pulsando el botón izquierdo del ratón y la tecla mayúsculas. Al mover el ratón con el botón izquierdo pulsado se arrastran las figuras seleccionadas. Debe justificar todas las suposiciones que realice para la resolución del ejercicio. Realice la traza para salvar un dibujo en disco, y para cargarlo. Enero 1999. Examen Final Ingeniería de la Programación. 18/01/1999. Observaciones: • Duración 3 horas. • La nota final de la asignatura se calcula de la forma: 0.7 Teoría + 0.3 Práctica. • Para poder calcular la media hay que tener por lo menos un 5 en cada parte. • La nota de teoría o de prácticas se guarda para la convocatoria de Junio, no para el siguiente curso. Cuestiones. (Total 4 puntos). 1) (0.5) Indicar, dentro del lenguaje C++ la falsedad o veracidad de las siguientes afirmaciones. • El polimorfismo es lo mismo que la sobrecarga. • Un constructor no se puede sobrecargar. • El constructor de una clase no puede llamar a métodos de su propia clase. • El destructor no se puede sobrecargar. 2) (0.7) Definición y ejemplo de caso de uso, caso de uso abstracto, relación “usa”, “extiende”, herencia entre actores. 3) (0.7) Definición de susbsistema, capa, partición, arquitectura de tres capas. ¿De que formas se pueden conectar dos susbsistemas? 4) (0.7) En algunos lenguajes de programación se define la interfase de una clase de modo separado de la implementación de la misma. En esos casos la interfase se considera un tipo mientras que la clase es la implementación del tipo. Una misma interfase (tipo) puede tener diferentes implementaciones (clases). Se define una relación de herencia entre interfases y otra entre clases. ¿Cómo se interpreta o enuncia la relación de herencia entre clases? ¿Y entre interfases?.¿Cómo podría enunciarse en esta situación el polimorfismo de inclusión?. ¿Es esta la situación del lenguaje C++?. 8 5) (0.7) Si dentro del modelo de objetos de OMT tiene representada una relación de especialización (simple), ¿cómo podría traducirla a un lenguaje con clases que no dispusiese de la relación de herencia?. Ponga un ejemplo. 6) (0.7) ¿Qué papel juegan los casos de uso dentro del ciclo de desarrollo?. Problemas. (Total 6 puntos) 1) (1 punto) La figura contiene una versión muy simplificada de un modelo de objetos para el software de control de un cajero automático. &OL HQWH %DQFR &DMHUR $XWRPiWL FR ,GHQWL ILFD FOL HQWH 1 RPEUH ( VWDGR VH FRPXQL FD FRQ 0DQWL HQH 3RVHH &XHQWD 7DUMHWD ,'B&OL HQWH 5 DQXUD 7DUMHWD 7HFODGR &RUUL HQWH $KRUUR ,QVHUWDGD HQ “Los clientes de un banco determinado pueden poseer entre 1 y cuatro tarjetas de crédito. Estas tarjetas están respaldadas por cuentas bancarias, que pueden ser de dos tipos de ahorro o corriente. Las tarjetas pueden interáctuar con los cajeros del banco introduciendo transacciones dentro del sistema. Un cajero automático tiene como interfase de usuario una ranura para introducir la tarjeta, un teclado para admitir ordenes y un dispositivo para imprimir recibos.” Pregunta: Indicar, justificándolo apropiadamente, todos los errores de modelización de la figura anterior. (En el problema únicamente hay que indicar que información está mal representada cual falta, no hay que hacer un nuevo modelo de objetos). 2) (3 puntos) Se desea desarrollar un sistema informático para controlar los préstamos de un departamento universitario, los estudiantes son los que cogen los libros de las estanterías, los leen, los sacan en préstamo, los devuelven y consultan el catalogo de ejemplares disponibles. Cada libro tiene un código de barras que lo identifica. Adicionalmente dispone de un dispositivo electrónico antirrobo situado debajo del código de barras, siendo el sistema el encargado de activarlo y desactivarlo. Cuando un usuario desea obtener en préstamo un libro se sitúa con él delante del sistema de préstamo. Primeramente pasa por el lector su tarjeta de socio. A continuación se produce la lectura del código de barras de los libros que desee obtener en préstamo. Si el socio no tiene préstamos vencidos el sistema desbloquea el código antirrobo del libro. En una misma operación se pueden obtener varios libros en préstamo. El proceso termina pulsando un botón de finalización. El procedimiento de devolución de libros funciona de un modo análogo. Para ser admitido en la librería, como socio, un usuario tiene que ser dado de alta por el personal de la biblioteca. A partir de los datos del usuario el sistema genera una tarjeta de socio. En la puerta de salida de la biblioteca existe un dispositivo de seguridad, este se activa bloqueando las puertas en el momento en el que un socio intenta salir del edificio con un libro que tenga el código antirrobo activado. Pulsando un botón de emergencia las puertas se desbloquean. 9 El personal de la biblioteca se encarga de las labores de mantenimiento de libros y de socios, y de las consultas relativas al estado de los socios y los libros. Los socios pueden realizar búsquedas sobre el catalogo disponible (por autor, título, materia, palabras clave, etc.). Existe un tratamiento uniforme con respecto a la política de préstamos, cada libro que no se devuelva en el plazo estipulado originará una sanción al socio correspondiente. • • PREGUNTAS: Construir el modelo de casos de uso del sistema anterior, para las actividades de préstamo, devoluciones, sanciones, mantenimiento de socios, salida de la biblioteca, y consultas de libros. ¿Cuántos subsistemas habrían de considerarse? Describir los casos de uso mediante escenarios, con flujos alternativos de ejecución, y construir el modelo dinámico del sistema. 3) (2 puntos) Construir un modelo de objetos para un editor gráfico del modelo dinámico de OMT. El editor es capaz de representar: estados, estados iniciales, estados finales, superestados, transiciones, envío de eventos a clases, etc. El modelo debe incluir toda aquella información representable dentro del modelo dinámico de OMT. No debe olvidar los detalles gráficos: posición de los estados, de las conexiones, etc. Observación: La solución no debe incluir clases relacionadas con el editor, solo debe hacer referencia a los elementos representables dentro de un modelo dinámico de OMT. Julio 1999 Examen Ingeniería de la Programación 24-Junio-1999 Cuestiones. (0.8 puntos cada una) 1) Indicar, dentro de las características de los lenguajes de programación orientados a objetos la falsedad o veracidad de las siguientes afirmaciones. Razonando la respuesta. • El enlace es el mecanismo por el cual se pueden crear instancias de las clases. • La genericidad también se conoce como polimorfismo controlado por herencia. • Una metaclase es una clase cuyas instancias son metaclases. • Existe un conflicto de nombres en la herencia múltiple cuando dos o más superclases directas de una dada poseen atributos y/o métodos con el mismo nombre. 2) Indicar, dentro del lenguaje C++ la falsedad o veracidad de las siguientes afirmaciones. Razonando la respuesta. • En C++ el tipo dinámico del nombre de un objeto debe ser el mismo que el tipo estático. • El constructor de una clase tiene como única misión asignar espacio al objeto. • Las funciones virtuales posibilitan que se pueda utilizar el enlace dinámico. • El destructor puede devolver algún valor como cualquier otro método. 3) En el diseño del sistema, ¿Cuándo se dice que dos objetos son inherentemente concurrentes?. Di cuál es el objetivo perseguido en la identificación de la concurrencia. ¿Qué se empaqueta en un hilo de control? ¿Cómo se implementan los hilos de control en los sistemas operativos? 4) Muestre con ejemplos indicativos en que se traducen, dentro de un lenguaje de programación orientado a objetos, los distintos elementos de un diagrama de transición entre estados (acciones, actividades, eventos, condiciones, envío de eventos, etc.). 5) Defina que es un patrón de análisis y ponga un ejemplo. ¿Qué características presentan los “frameworks”?. Problemas. 10 1) (3 puntos ) Se desea realizar una aplicación para gestionar el parque de Yellowstone. El parque está dividido en secciones y en cada una de estas secciones están instaladas las distintas especies de animales que se encuentran en el parque. Cada una de estas secciones además está dividida en subsecciones para instalar a los distintos animales de cada especie. Las especies del parque son las siguientes: mamíferos, ovíparos, aves tropicales y aves rapaces. Los distintos animales son los siguientes: lince, puma, bisonte, grulla real, águila calva, águila real, águila imperial, papagayo común y gato montés. El parque dispone de otras instalaciones como: enfermería, cafetería y tienda de recuerdos. En el parque trabajan una serie de empleados: cuidadores de animales, guías turísticos, veterinarios y otros empleados. Los distintos veterinarios están especializados en cada una de las especies existentes. Cada uno de los cuidadores de animales puede trabajar en varias secciones. Además el parque dispone de una serie de autobuses para que los visitantes puedan recorrer el parque. Además se desea conocer de cada animal los hijos que tiene y quiénes son sus padres. Los animales pueden proceder de distintos lugares. Información que se desea conocer. El sistema debe proporcionar información sobre qué funcionario trabaja en que sección y a qué hora realiza las distintas tareas que tenga asignadas. Así cómo qué animales están enfermos y qué veterinario los está atendiendo. Al final del día se desea conocer el número de visitantes que han visitado el parque, cuántos autobuses se han utilizado y qué empleados han trabajado. PREGUNTA: Construir el modelo de objetos del sistema para gestionar el parque de Yellowstone. Si se quisiera acceder de forma rápida a los animales de un tipo concreto qué añadirías al modelo de objetos anterior. 2) (2 puntos) La figura muestra la planta de un edificio para el cual se desea diseñar un sistema de control de acceso. Cada una de las puertas interiores va equipada con un “terminal de puerta” (TP en la figura) que contiene un lector de tarjetas, un teclado alfanumérico y un pequeño display. Las puertas exteriores contienen un “terminal extendido” (TPE) que posee el mismo hardware que el TP más un pequeño micrófono. 73( &XDUWR *XDUGLD 73( 73 73 73 73 73( 73 73 73 73 73 73 73( 73 73 73 73( 73 Los empleados que quieren acceder al edificio o a cualquier habitación del mismo utilizan una tarjeta y un número de 4 dígitos (PIN). Los visitantes que normalmente no tienen acceso al edificio, emplean el terminal de puerta extendido para comunicarse con el interior del edificio, mediante el micrófono. Desde dentro se les facilita el acceso, utilizando la tarjeta y el PIN. El sistema también va a ser utilizado por un guardia de seguridad y por un administrador. El administrador se encarga de las tareas habituales de mantenimiento: alta de empleados, baja y modificación de datos. Adicionalmente el sistema se emplea para comprobar que el guardia de seguridad sigue una rutina especial para comprobar, de noche, cada puerta y cada habitación del edificio. El sistema genera la rutina y el guardia, también provisto con una tarjeta y un PIN comprueba las puertas y la distintas habitaciones. Los terminales, tanto TP como TPE, pueden utilizarse para activar la alarma de incendios. Esto puede usarlo cualquier persona y no es necesario ni tarjeta ni PIN. Finalmente se desea registrar en el sistema la entrada y salida de empleados del edificio, así como la de visitantes (después de facilitarles el acceso se anota su nombre, dirección y motivo de la visita). 11 PREGUNTA: Identifique los actores del sistema, tanto humanos como no humanos, y cree el modelo de casos de uso del sistema. Especifíquelos utilizando una plantilla textual. 3) (1 punto) Traduzca el modelo de objetos de la figura a clases de un lenguaje orientado a objetos como Delphi, C++ o Pascal. Suponga que todas las relaciones son bidireccionales en la implementación. 8VXDULR 1RPEUH (VWDFLyQ 7UDEDMR 1RPEUH $XWRUL]DFLyQ SULYLOHJLRV 'LUHFWRULR GLUHFWRULR UDL] 12