Qué puede evaluarse
RA1: Reconoce la estructura de un programa informático, identificando y relacionando los elementos propios del lenguaje de programación utilizado.
Estructura de un programaBloque principal (main)Declaración de librerías/módulosClaseMétodo/FunciónVariable/atributoSentencia ejecutableIDE (Entorno Integrado de Desarrollo)Proyecto de desarrolloComentarios de código
RA2: Escribe y prueba programas sencillos, reconociendo y aplicando los fundamentos de la programación orientada a objetos.
Programación Orientada a Objetos (POO)AbstracciónEncapsulamientoHerenciaPolimorfismoClaseObjetoEntorno Integrado de Desarrollo (IDE)CompilaciónEjecución
RA3: Escribe y depura código, analizando y utilizando las estructuras de control del lenguaje.
Condición booleanaBloque de códigoAnidamientoFall-throughSentencia `if`Sentencia `else`Sentencia `else if`Sentencia `switch`Sentencia `case`Sentencia `default`
RA4: Desarrolla programas organizados en clases analizando y aplicando los principios de la programación orientada a objetos.
ClaseObjetoInstanciaPropiedad (Atributo)MétodoConstructorEncapsulamientoModificadores de acceso (public, private, protected)HerenciaSuperclase (Clase Padre)
RA5: Realiza operaciones de entrada y salida de información, utilizando procedimientos específicos del lenguaje y librerías de clases.
System.inSystem.outScannerprint()println()printf()String.format()Especificadores de formatoFlujos de bytesFlujos de caracteres
RA6: Escribe programas que manipulen información seleccionando y utilizando tipos avanzados de datos.
ArrayÍndiceMemoria contiguaArray multidimensionalPaso de arrays por referenciaArray de objetosArrayIndexOutOfBoundsExceptionIteradorIteratorFor-each
RA7: Desarrolla programas aplicando características avanzadas de los lenguajes orientados a objetos y del entorno de programación.
HerenciaSuperclaseSubclaseRelación 'Es un'Reutilización de códigoModificador `final`Modificador `abstract`Clases abstractasMétodos abstractosBloqueo de herencia
RA8: Utiliza bases de datos orientadas a objetos, analizando sus características y aplicando técnicas para mantener la persistencia de la información.
Bases de Datos Orientadas a Objetos (BDOO)Impedance mismatchIdentidad de objetoEncapsulación, herencia y polimorfismo en persistenciaPersistencia ortogonalEstándar histórico ODMGDiferencia entre BDOO y NoSQL documentalInstalación de SGBDOOConfiguración de SGBDOOHerramientas de administración
RA9: Gestiona información almacenada en bases de datos relacionales manteniendo la integridad y consistencia de los datos.
SGBDRModelo RelacionalSQLDriver JDBC/ODBCORMIntegridad ReferencialTransaccionalidad ACIDJDBCConnectionStatement
Trampas habituales antes del examen
- Confundir SQL con un SGBDR: SQL es el lenguaje para interactuar con la base de datos, mientras que el SGBDR es el software que gestiona la base de datos. Causa: Falta de distinción conceptual. Corrección: Entender que SQL es una herramienta que el SGBDR interpreta y ejecuta.
- No entender la necesidad de un driver: Intentar conectar sin el driver adecuado o con una versión incompatible. Causa: Desconocimiento del papel del driver como puente de comunicación. Corrección: Investigar y descargar el driver específico para la versión del SGBDR y del lenguaje de programación utilizado.
- No cerrar recursos (conexiones, statements, resultsets): Causa: Olvido o manejo incorrecto de excepciones. Consecuencia: Agotamiento de recursos del servidor de base de datos y de la aplicación, llevando a fallos. Corrección: Implementar el patrón `try-with-resources` o asegurar el cierre explícito en bloques `finally`.
- Vulnerabilidad de Inyección SQL: Causa: Construir sentencias SQL concatenando directamente entradas de usuario sin sanitización. Consecuencia: Un atacante puede manipular la consulta para acceder, modificar o borrar datos no autorizados. Corrección: Utilizar siempre `PreparedStatement` con parámetros para todas las entradas de usuario, nunca concatenar directamente.
- No usar transacciones para operaciones complejas: Causa: Desconocimiento de la importancia de la atomicidad. Consecuencia: La base de datos puede quedar en un estado inconsistente si una parte de una operación multi-paso falla. Corrección: Identificar secuencias de operaciones que deben ser atómicas y envolverlas en transacciones con `commit` y `rollback`.
- Validación de datos solo en la UI: Causa: Confiar únicamente en la validación del lado del cliente. Consecuencia: Datos inválidos pueden ser insertados si se bypassa la UI o si la validación es insuficiente. Corrección: Implementar validación de datos tanto en la UI como en la capa de servicios/negocio y, como última línea de defensa, en el esquema de la base de datos.
- Confundir una BDOO con una base relacional que usa ORM, atribuyendo a una lo que corresponde a la otra
- Subestimar la dificultad de evolucionar el esquema de clases cuando ya existen objetos persistidos con una versión anterior
- Confundir identidad de objeto con igualdad de valores, provocando errores al comparar o actualizar objetos recuperados
- Problemas de compatibilidad de versiones
- Errores de configuración de rutas o variables de entorno
- Falta de permisos para la instalación o ejecución