Está en la página 1de 14

SUPUESTO2_INAP_2018

La Dirección General de Tráfico quiere modernizar el Sistema de Gestión de Autoescuelas,


actualmente en soporte papel. Para el desarrollo de la página web se ha decidido utilizar la
tecnología HTML5 junto con JavaScript y CSS para la capa de presentación mientras que se ha
seleccionado Java EE para la lógica de negocio.

Después de realizar el Análisis del Sistema de Información se ha llegado al siguiente Diagrama


Entidad Relación Extendido:

 Bloque 3 - Supuesto 2
Enunciado de la pregunta
Para el desarrollo de la parte lógica se va a utilzar toda la funcionalidad descrita en las
especificaciones Java EE 7.
¿Cuál de los siguientes servidores NO se podría utilizar por no cumplir al 100% dichas
especificaciones?
Seleccione una:
a. Apache Tomcat 
b. IBM WebSphere Application Server (WAS)
c. Oracle Weblogic

d. GlassFish
Retroalimentación
Respuesta correcta
Apache Tomcat es el único de los mencionados que no cumple 100% las especificaciones Java EE
7 (se puede obtener un listado actualizado en la siguiente URL:
http://www.oracle.com/technetwork/java/javaee/overview/compatibility-jsp-136984.html)
La respuesta correcta es: Apache Tomcat

Pregunta 2
Correcta
Puntúa 1,00 sobre 1,00
Enunciado de la pregunta
Una vez obtenido el modelo lógico de datos supongamos que se ha obtenido la siguiente relación:
SUCURSALES(id_sucursal, nombre_sucursal, id_autoescuela, id_centro_examen, lugar_examen)
A la vista de la relación anterior se pueden encontrar las siguientes dependencias:

 id_sucursal --> nombre_sucursal 


 id_sucursal --> id_autoescuela
 id_sucursal --> id_centro_examen 
 id_sucursal --> centro_examen
 centro_examen --> lugar_examen

¿En qué forma normal se encuentra la relación SUCURSALES?

Seleccione una:
a. 3FN (tercera forma normal)
b. 1FN (primera forma normal)
c. FNBC (forma normal de Boyce-Codd)

d. 2FN (segunda forma normal) 


Retroalimentación
Respuesta correcta
La relación está en 1FN porque no tiene grupos repetidos. También está en 2FN porque la clave
primaria está formada por un único campo. Sin embargo existe dependencia entre campos no clave
(centro_examen --> lugar_examen). O dicho de otra forma existe una dependencia transitoria entre
lugar de examen e id_sucursal. Por lo tanto está en 2FN.
La respuesta correcta es: 2FN (segunda forma normal)
Pregunta 3
Incorrecta
Puntúa 0,00 sobre 1,00
Enunciado de la pregunta
Debido a las ventajas que conlleva separar el sistema en capas, se ha decidido utilizar el patrón de
diseño MVC, modelo – vista – controlador. El controlador será un servlet Java que recibe los datos
de un formulario HTML; a continuación se muestra el código del método “procesar_peticion” del
servlet.

Indique la afirmación correcta:

Seleccione una:
a. Si en el formulario previo no se introduce ningún dato en el campo “dni” se producirá una
excepción.
b. En la línea 4, el método getSession(true) implica que siempre se va a crear una nueva sesión de
usuario.
c. No es necesario hacer la conversión explicita (casting) al tipo Director que se muestra en la línea
18.

d. Si ya existe una sesión con datos de algún director se recupera su información sin necesidad de
hacer una búsqueda en la base de datos.
Retroalimentación
Respuesta incorrecta.
Si no se introduce ningún dni el servlet redigirá la respuesta con el
método request.getRequestDispatcher().forward a la página error.jsp;
El atributo true del método getSession implica que se creará una nueva sesión en caso de no
existir una;
El método sesión.getAttribute devuelve siempre un Object por lo que si es necesario hacer la
conversión de tipos.

La respuesta correcta es: Si ya existe una sesión con datos de algún director se recupera su
información sin necesidad de hacer una búsqueda en la base de datos.

Pregunta 4
Incorrecta
Puntúa 0,00 sobre 1,00
Enunciado de la pregunta
Tomando como referencia el modelo Entidad Relación anterior se quiere obtener el modelo lógico
de datos, ¿Cómo representaría la relación “Inspecciona” entre “Jefatura de Tráfico” y “Sucursal”?
Seleccione una:
a. Se utiliza el método de propagación de clave, propagando la clave primaria de la “Sucursal”
(id_sucursal) a la tabla “JEFATURAS”.
b. Se crea una nueva tabla “Inspecciones” en la que la clave primaría será la concatenación de las
claves primarias de las tablas “SUCURSALES” y “JEFATURAS”.
c. Se crea una nueva tabla “Inspecciones” en la que la clave primaria será la concatenación de la
clave primaria de la tabla “SUCURSALES” junto con los atributos de la relación: fecha y resultado.

d. Se utiliza el método de propagación de clave, propagando la clave primaria de la “Jefatura de


Tráfico” (id_jefatura) a la tabla “SUCURSALES”. 
Retroalimentación
Respuesta incorrecta.
Por un lado la cardinalidad mínima de la sucursal en la relación inspecciona es 0 por lo que si
utilizamos el método de propagación de clave, incluyendo el id_jefatura como foreign key en la
tabla sucursales tendríamos posibilidad de valores nulos; hecho que no es deseable. Por otro lado
la relación inspecciona tiene atributos propios (fecha, resultado) motivo más que suficiente para
crear una nueva tabla.

La respuesta correcta es: Se crea una nueva tabla “Inspecciones” en la que la clave primaría será
la concatenación de las claves primarias de las tablas “SUCURSALES” y “JEFATURAS”.
Pregunta 5
Correcta
Puntúa 1,00 sobre 1,00
Enunciado de la pregunta
Le indican que tiene que realizar un diagrama de clases, ¿Cómo representaría una relación
de agregaciónentre dos clases?
Seleccione una:
a. Con una flecha de punta hueca
b. Con una punta de diamante rellena
c. Con una punta de diamante hueca 

d. Con una flecha simple y línea discontinua


Retroalimentación
Respuesta correcta
Con flecha simple y línea discontinua se representa la dependencia;
Con una flecha de punta hueca se representa la herencia;
Una punta de diamante rellena sirve para representar la composición;
Una punta de diamante hueca se utiliza para representar la agregación.

La respuesta correcta es: Con una punta de diamante hueca


Pregunta 6
Incorrecta
Puntúa 0,00 sobre 1,00
Enunciado de la pregunta
Una vez implantado y aceptado el Sistema de Información anterior se desea ampliar mediante un
webservice para que sean las propias autoescuelas las que introduzcan los datos de sus vehículos,
profesores y directores. A continuación se muestra el contenido del archivo WSDL del webservice
cuya funcionalidad es dar de alta a un profesor de autoescuela:

Seleccione la afirmación FALSA

Seleccione una:
a. El método “altaProfesor” recibe como parámetro un objeto del tipo “profesor:solicitudAlta” y
devuelve como resultado un objeto tipo “profesor:respuestaAlta”
b. Si se produce una excepción durante el proceso de alta de un profesor el webservice devolverá
un elemento <Fault> del tipo <ProfesorFault> con la descripción del error ocurrido
c. No se podrá invocar el servicio puesto que no hay ningún tipo definido en el apartado
“wsdl:types” 

d. Las secciones “wsdl:message” nos indican las operaciones que puede ejecutar el webservice
Retroalimentación
Respuesta incorrecta.
Los elementos <Fault> son los manejadores de excepciones de los webservices, según la
especificación SOAP es la forma de describir el error de forma independiente de la plataforma
usada para llamar al webservice;
Dentro del elemento “types” se pueden definir los tipos de datos necesarios para las operaciones o
importarlos de un archivo xsd externo como es el caso del ejemplo (línea 5);
En las líneas 17-23 se definen las operaciones que puede ejecutar el webservice, en el apartado
“input” se indican los parámetros de entrada, en el apartado “output” los de retorno y en “fault” el
tipo de objeto que se devolverá en caso de error;
El apartado “message” define los tipos de datos usados en las comunicaciones, las operaciones
permitidas se describen en el apartado “portType”.

La respuesta correcta es: Las secciones “wsdl:message” nos indican las operaciones que puede
ejecutar el webservice

Pregunta 7
Correcta
Puntúa 1,00 sobre 1,00
Enunciado de la pregunta
Se va a crear una función almacenada en el servidor MySQL para calcular la fecha de caducidad
de los permisos de un profesor a partir de la fecha de obtención, para ello necesitamos declarar la
variable local tipo fecha que llamaremos “temp” ¿Cuál es la forma correcta de declarar dicha
variable?
Seleccione una:
a. temp = new Date();
b. DECLARE temp DATETIME 
c. Date temp = new Date();

d. Dim temp as date


Retroalimentación
Respuesta correcta
La forma correcta de declarar variables en MySQL es usando la palabra reservada “DECLARE”. La
diferencia entre declararla como @temp y temp es que si usamos el @ se pueden usar variables
sin declarar el tipo y que mantienen el valor hasta que la sesión termina
La respuesta correcta es: DECLARE temp DATETIME
Pregunta 8
Correcta
Puntúa 1,00 sobre 1,00
Enunciado de la pregunta
Si queremos crear la tabla correspondiente a la relación “VEHÍCULOS” y, suponiendo que los
atributos que describen los vehículos son: matrícula , fecha_matriculacion, tipo_transmision, ¿Cuál
sería la sentencia SQL a ejecutar si además queremos tener en cuenta la relación con la tabla
“sucursales”?
Seleccione una:
a.
CREATE TABLE `VEHICULOS` (
         `matricula` VARCHAR(8) NOT NULL,
         `fecha_matriculacion` DATE NULL DEFAULT NULL,
         `tipo_transmision` ENUM('Manual','Automatica') NULL DEFAULT NULL,
         `id_sucursal` INT(11) NULL DEFAULT NULL,
         PRIMARY KEY (`matricula`),
          FOREIGN KEY (`id_sucursal`) REFERENCES   `sucursales`
(`id_sucursal`));

b.
CREATE TABLE `VEHICULOS` (
        `matricula` VARCHAR(8) DEFAULT NULL,
         `fecha_matriculacion` DATE NULL DEFAULT NULL,
         `tipo_transmision` ENUM('Manual','Automatica') NULL DEFAULT NULL,
         `id_sucursal` INT(11) NULL DEFAULT NULL,
         PRIMARY KEY (`matricula`),
         CONSTRAINT
(`id_sucursal`) REFERENCES  `sucursales` (`id_sucursal`));

c. 

CREATE TABLE `VEHICULOS` (


         `matricula` VARCHAR(8) NOT NULL,
         `fecha_matriculacion` DATE NULL DEFAULT NULL,
         `tipo_transmision` ENUM('Manual','Automatica') NULL DEFAULT NULL,
         `id_sucursal` INT(11) NULL DEFAULT NULL,
          PRIMARY KEY (`matricula`));

d. 

CREATE TABLE `VEHICULOS` (


         `matricula` VARCHAR(8) NOT NULL,
         `fecha_matriculacion` DATE NULL DEFAULT NULL,
         `tipo_transmision` ENUM('Manual','Automatica') NULL DEFAULT NULL,
         `id_sucursal` INT(11) NULL DEFAULT NULL,
         PRIMARY KEY (`matricula`),
         FOREIGN KEY (`id_sucursal`) );
Retroalimentación
Respuesta correcta
La respuesta b) es errónea porque incluye la sentencia “DEFAULT NULL” para la clave primaria y
una clave primaria no puede tener valores nulos. Además para declarar la foreign key no se puede
utilizar solo “Constraint”. La respuesta c) no añade la clave foránea entre sucursales y vehículos.
En la respuesta d) hay un error de sintaxis para añadir la clave foránea.
La respuesta correcta es:
CREATE TABLE `VEHICULOS` (
         `matricula` VARCHAR(8) NOT NULL,
         `fecha_matriculacion` DATE NULL DEFAULT NULL,
         `tipo_transmision` ENUM('Manual','Automatica') NULL DEFAULT NULL,
         `id_sucursal` INT(11) NULL DEFAULT NULL,
         PRIMARY KEY (`matricula`),
          FOREIGN KEY (`id_sucursal`) REFERENCES   `sucursales`
(`id_sucursal`));

Pregunta 9
Incorrecta
Puntúa 0,00 sobre 1,00
Enunciado de la pregunta
Dentro de la aplicación web se quiere mostrar parte del resultado como una tabla, ¿Qué elemento
html usaría para mostrar una fila resumen en esa tabla?
Seleccione una:
a. th 
b. thead
c. td

d. tfoot
Retroalimentación
Respuesta incorrecta.
th (table head) representa a una celda de encabezado en una tabla; 
thead es la sección de encabezado de una tabla, normalmente es donde se colocan las celdas th; 
td (table data) representa una celda de datos en una tabla;
tfoot (table foot) representa la sección de pie de una tabla, es en este elemento donde se suelen
insertar las celdas con los resúmenes, valores promedios, etc.

La respuesta correcta es: tfoot

Pregunta 10
Incorrecta
Puntúa 0,00 sobre 1,00
Enunciado de la pregunta
Se desea obtener: dni del profesor, nombre y apellidos del profesor, nombre de la autoescuela y
fecha fin de contrato de todos los profesores dados de alta en el sistema, independientemente de
que hayan tenido algún contrato laboral o no, ¿Qué sentencia SQL mostraría los datos solicitados?
Seleccione una:
a. SELECT p.dni, p.nombre, p.apellidos, a.nombre As nombre_autoescuela, c.fecha_fin FROM
profesores p RIGHT JOIN contratos c ON c.dni_profesor = p.dni INNER JOIN autoescuelas a ON
a.id_autoescuelas=c.id_autoescuela; 
b. SELECT p.dni, p.nombre, p.apellidos, a.nombre As nombre_autoescuela, c.fecha_fin FROM
contratos c INNER JOIN autoescuelas a ON a.id_autoescuelas=c.id_autoescuela RIGHT JOIN
profesores p ON c.dni_profesor = p.dni;
c. SELECT p.dni, p.nombre, p.apellidos, a.nombre AS nombre_autoescuela, c.fecha_fin FROM
profesores p, autoescuelas a, contratos c WHERE p.dni IN (SELECT c.dni_profesor FROM
contratos c);
d. SELECT p.dni, p.nombre, p.apellidos, a.nombre As nombre_autoescuela, c.fecha_fin FROM
contratos c INNER JOIN autoescuelas a ON a.id_autoescuelas=c.id_autoescuela INNER JOIN
profesores p ON c.dni_profesor = p.dni;
Retroalimentación
Respuesta incorrecta.
Necesitamos hacer dos Joins entre las tablas autoescuelas, profesores y contratos. Primero
hacemos un INNER join entre las tablas contratos y autoescuelas para obtener los nombres de las
autoescuelas solo de las autoescuelas que tengan algún contrato. Posteriormente es necesario
hacer un RIGHT JOIN con la tabla profesores para que nos muestre todos los registros de los
profesores, tanto si tienen contratos como si no.
La respuesta correcta es: SELECT p.dni, p.nombre, p.apellidos, a.nombre As nombre_autoescuela,
c.fecha_fin FROM contratos c INNER JOIN autoescuelas a ON
a.id_autoescuelas=c.id_autoescuela RIGHT JOIN profesores p ON c.dni_profesor = p.dni;

Pregunta 11
Incorrecta
Puntúa 0,00 sobre 1,00
Enunciado de la pregunta
Tal y como se ha comentado se va a utilizar JavaScript en la capa de presentación tanto para
validar los datos antes de mandarlos al servidor como para mostrar los errores que se produzcan. 
¿Con qué método del objeto “document” se podría obtener el único elemento identificado como
“muestraError” para modificar su contenido?
Seleccione una:
a. getElementsByClassName();
b. querySelect();
c. getElementById();

d. getElementsByTagName(); 
Retroalimentación
Respuesta incorrecta.
La única opción correcta es getElementById() utilizada para buscar un elemento DOM por su id.

La respuesta correcta es: getElementById();


Pregunta 12
Correcta
Puntúa 1,00 sobre 1,00
Enunciado de la pregunta
En relación con la pregunta anterior (webservice), se muestra parte del contenido del archivo
“profesores.xsd” donde se define el tipo “ProfesorCompleto”:
<xsd:element name="ProfesorCompleto">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="doi" type="xsd:string" use="required"/>
<xsd:element name="nombre" type="xsd:string" use="required"/>
<xsd:element name="apellidos" type="xsd:string" maxOccurs="2"/>
<xsd:element name="fechaNacimiento" type="xsd:date"/>
<xsd:element name="tieneTituloDirector" type="xsd:boolean"/>
<xsd:element name="genero" type="xsd:string"/>
</xsd:sequence>
</xsd:complexType>
</xsd:element>
 
¿Qué código pondría dentro del elemento denominado “genero” para limitar los posibles valores a
“masculino” y “femenino”?

Seleccione una:
a. <xsd:restriction base="xsd:string">
         <xsd:value="masculino”/>
          <xsd:value=”femenino"/>
</xsd:restriction>
b. <xsd:restriction base="xsd:string">
          <xsd:pattern value="masculino|femenino"/>
</xsd:restriction> 
c. <xsd:constraint base="xsd:string">
<xsd:value="masculino”/>
<xsd:value=”femenino"/>
</xsd:constraint>

d. <xsd:constraint base="xsd:string">
         <xsd:pattern value="masculino|femenino"/>
</xsd:constraint>
Retroalimentación
Respuesta correcta
La forma correcta de añadir una limitación o restricción en un elemento es usando “restriction”
especificando además el patrón correcto (“pattern”) mediante una expresión regular (las distintas
alternativas se separan por el operador |).
La respuesta correcta es: <xsd:restriction base="xsd:string">
          <xsd:pattern value="masculino|femenino"/>
</xsd:restriction>

Pregunta 13
Correcta
Puntúa 1,00 sobre 1,00
Enunciado de la pregunta
Si añadimos la restricción semántica “Un profesor de autoescuela solo puede ser contratado por
una autoescuela”, ¿Cómo se reflejaría dicha restricción en el diagrama anterior?
Seleccione una:
a. El tipo de correspondencia entre autoescuela y profesor cambiaría a M:N.
b. Las cardinalidades de la relación “contrata” quedarían: un profesor es contratado por (0,1)
autoescuelas y una autoescuela puede contratar (1,n) profesores. 
c. Ya no serían necesarios los atributos “inicio” y “fin” de la relación “contrata”.

d. No supondría ninguna modificación.


Retroalimentación
Respuesta correcta
La cardinalidad máxima de la relación contrata pasa de (0,n) a (0,1) indicando que solo se permite
que un profesor sea contratado por un máximo de una autoescuela.

La respuesta correcta es: Las cardinalidades de la relación “contrata” quedarían: un profesor es


contratado por (0,1) autoescuelas y una autoescuela puede contratar (1,n) profesores.

Pregunta 14
Correcta
Puntúa 1,00 sobre 1,00
Enunciado de la pregunta
La página web creada debe cumplir los principios y directrices de accesibilidad marcados por la
WCAG 2.0. ¿A qué principio corresponde la directriz “Navegación: Proporciona formas para ayudar
a los usuarios a navegar, a buscar contenido y a determinar dónde están estos.”?
Seleccione una:
a. Comprensible
b. Operable 
c. Robusto

d. Perceptible
Retroalimentación
Respuesta correcta
Corresponde con la directriz 2.4 del principio “Operable”
La respuesta correcta es: Operable
Pregunta 15
Correcta
Puntúa 1,00 sobre 1,00
Enunciado de la pregunta
A la vista del diagrama Entidad / Relación anterior, indique cuál de las siguientes
afirmaciones NO es cierta:

Seleccione una:
a. Una autoescuela está gestionada por un único director y un director puede gestionar varias
autoescuelas.
b. Toda autoescuela tiene que pertenecer a una asociación y una asociación está formada por
varias autoescuelas. 
c. Un vehículo solo puede estar asociado a una sucursal mientras que una sucursal puede tener
varios vehículos.

d. Un centro de examen pertenece a una jefatura mientras que una jefatura puede no tener ningún
centro de examen.
Retroalimentación
Respuesta correcta
Una asociación está formada por una o varias autoescuelas mientras que una autoescuela puede
pertenecer a una o ninguna asociación.

La respuesta correcta es: Toda autoescuela tiene que pertenecer a una asociación y una
asociación está formada por varias autoescuelas.

También podría gustarte