📄 Planteamiento del supuesto
En el departamento TIC, al que usted se acaba de incorporar, quiere desarrollar para la Subdirección de Selección un sistema integral de información para la gestión de los procesos selectivos y convocatorias de oposiciones de la Administración General del Estado. El sistema incluirá, entre otras, las siguientes funcionalidades:
- Gestión de solicitudes de inscripción de aspirantes al proceso selectivo.
- Gestión de colaboradores.
- Generación de listados, estadísticas y cuadros de mando.
- Generación de certificados para aspirantes y colaboradores.
Dada la envergadura del proyecto, y para aprovechar las aplicaciones ya implantadas en la Subdirección y la experiencia profesional del personal, van a convivir diferentes lenguajes de programación, entre otros, Java, C# o Python, así como distintos gestores de Bases de Datos. Como repositorio de código se utiliza Git.
A continuación se muestra un diagrama simplificado de clases que describe parte del sistema: cuatro clases (Solicitud, Opositor, Proceso y Ejercicio) relacionadas entre sí. Solicitud tiene los atributos IdSolicitud, IdOpositor e IdProceso, y se relaciona con Opositor (que tiene IdOpositor y NIF) mediante la relación "Presentada por" (1..N a 1). Proceso, con IdProceso e IdFormaAcceso, se relaciona con Solicitud mediante "Pertenece a" (1..N a 1), y con Ejercicio (que tiene IdEjercicio, IdProceso y Duracion) mediante "Consta" (1 a 1..N).
Salvo que el enunciado diga lo contrario, se asume que aquellas preguntas que contengan un fragmento de código tendrán declaradas correctamente todas las clases, librerías y variables que no aparezcan explícitamente. Del mismo modo si se trata de lenguaje HTML, se da por supuesto que éste será HTML5 y será ejecutado en navegadores que soporten dicha versión. Las sentencias SQL que aparecen se encuentran dentro del estándar ANSI SQL. Como metodología de base el organismo aplica Métrica v3.