Ingeniería de la programación

Anuncio
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
Descargar