Qué puede evaluarse
RA1: Reconoce los elementos y herramientas que intervienen en el desarrollo de un programa informático, analizando sus características y las fases en las que actúan hasta llegar a su puesta en funcionamiento.
CPURAMPeriféricosCiclo de instrucciónVolatilidad de la memoriaLlamadas al sistemaSDLCAnálisis de requisitosDiseño de softwareImplementación
RA2: Evalúa entornos integrados de desarrollo analizando sus características para editar código fuente y generar ejecutables.
IDE (Entorno de Desarrollo Integrado)Editor de códigoCompiladorDepuradorIDE PropietarioIDE LibreRequisitos del sistemaMóduloExtensiónPlugin
RA3: Verifica el funcionamiento de programas diseñando y realizando pruebas.
VerificaciónValidaciónPruebas unitariasPruebas de integraciónPruebas de sistemaPruebas de aceptaciónPruebas de caja blancaPruebas de caja negraCaso de pruebaPrecondiciones
RA4: Optimiza código empleando las herramientas disponibles en el entorno de desarrollo.
Code smellExtraer MétodoRenombrarEncapsular CampoReemplazar Condicional con PolimorfismoMover Método/CampoCambiar Firma de Método
RA5: Genera diagramas de clases valorando su importancia en el desarrollo de aplicaciones y empleando las herramientas disponibles en el entorno.
ClaseObjetoAtributoMétodoEncapsulaciónHerenciaPolimorfismoAbstracciónUMLDiagrama de Clases
RA6: Genera diagramas de comportamiento valorando su importancia en el desarrollo de aplicaciones y empleando las herramientas disponibles en el entorno.
UMLDiagramas de ComportamientoActorCaso de UsoRelación de AsociaciónRelación de InclusiónRelación de ExtensiónLímite del SistemaDiagrama de SecuenciaDiagrama de Comunicación
Trampas habituales antes del examen
- Confundir RAM con almacenamiento persistente: La RAM es memoria volátil para datos en uso, el almacenamiento secundario (disco) es persistente. Los datos en RAM se pierden al apagar el equipo.
- Ignorar la latencia de los periféricos: Asumir que las operaciones de E/S son instantáneas puede llevar a aplicaciones lentas o bloqueadas. Es crucial usar técnicas asíncronas para no bloquear el hilo principal.
- Saltarse fases o reducir su duración: Esto suele llevar a problemas graves en fases posteriores, como errores de diseño que son muy costosos de corregir en la implementación o pruebas.
- No documentar adecuadamente: La falta de documentación de requisitos, diseño o código dificulta el mantenimiento y la incorporación de nuevos desarrolladores al proyecto.
- Confundir compilación con enlazado: La compilación traduce el código fuente a código objeto, mientras que el enlazado combina los códigos objeto y librerías para formar el ejecutable. Un error de compilación es de sintaxis; un error de enlazado es de referencias no resueltas.
- Asumir que el código objeto es ejecutable: El código objeto es un fragmento de código máquina, pero no un programa completo. Necesita ser enlazado con otros objetos y librerías para formar un ejecutable.
- Confundir una máquina virtual de sistema (ej. VMware, VirtualBox) con una máquina virtual de proceso (ej. JVM, CLR): Las primeras virtualizan hardware completo; las segundas, un entorno de ejecución para un lenguaje específico.
- Subestimar el impacto del JIT: Aunque el bytecode no es tan rápido como el código nativo puro al inicio, el JIT puede acercar mucho el rendimiento, haciendo que la diferencia sea mínima en aplicaciones de larga ejecución.
- Confundir un lenguaje con un paradigma: Un lenguaje puede soportar múltiples paradigmas (ej. Python es OO, funcional e imperativo). El paradigma es el estilo, no el lenguaje en sí.
- Subestimar la importancia del lenguaje ensamblador: Aunque no se usa para desarrollo general, es crucial para entender cómo funciona el hardware y para optimizaciones de rendimiento extremas o desarrollo de sistemas embebidos.
- No usar control de versiones: Trabajar sin un VCS es una receta para el desastre, especialmente en equipos, llevando a pérdida de código, conflictos irresolubles y dificultad para colaborar.
- Ignorar las advertencias del IDE/compilador: Las advertencias suelen indicar posibles problemas de rendimiento, seguridad o errores lógicos, y deben ser investigadas y resueltas, no ignoradas.