Una empresa de domicilios quiere reducir los errores al asignar pedidos a los repartidores. Antes de programar, el equipo decide estudiar cómo funciona actualmente el proceso.
¿Qué está haciendo principalmente el equipo?
A. Analizando el problema
B. Implementando la solución
C. Probando el sistema
D. Diseñando la interfaz
Respuesta: A
Justificación: Antes de construir software es necesario comprender el problema, sus actores, necesidades y restricciones.
Una plataforma de comercio electrónico necesita permitir agregar productos, consultar existencias, modificar precios y retirarlos.
¿Qué conjunto de operaciones representa mejor esta necesidad?
A. Herencia
B. Persistencia
C. CRUD
D. Polimorfismo
Respuesta: C
Justificación: Crear, consultar, actualizar y eliminar corresponden a las operaciones fundamentales de un CRUD.
Una aplicación de gimnasio mantiene las rutinas de los usuarios en memoria mientras está abierta. Al cerrarse, las rutinas desaparecen.
¿Qué hace falta principalmente?
A. Herencia
B. Persistencia
C. Polimorfismo
D. Encapsulamiento
Respuesta: B
Justificación: La persistencia permite conservar información más allá del tiempo de ejecución del programa.
Una aplicación bancaria permite consultar movimientos mediante botones, formularios y tablas.
¿Qué componente representa principalmente esa interacción?
A. La interfaz
B. El modelo
C. La persistencia
D. El compilador
Respuesta: A
Justificación: La interfaz proporciona al usuario los mecanismos para interactuar con las funcionalidades del sistema.
Un desarrollador utiliza IA para generar una función que no comprende completamente.
¿Qué debería hacer antes de incorporarla?
A. Publicarla inmediatamente
B. Copiarla en producción
C. Eliminarla por completo
D. Revisarla y probarla
Respuesta: D
Justificación: Utilizar IA profesionalmente requiere comprender y validar el resultado antes de incorporarlo al sistema.
Un hospital necesita digitalizar la asignación de citas. El equipo descubre que diferentes servicios tienen reglas particulares.
¿Qué decisión sería más apropiada?
A. Copiar una misma lógica para todos
B. Modelar las particularidades del proceso
C. Crear primero todas las pantallas
D. Programar sin analizar excepciones
Respuesta: B
Justificación: Un buen diseño debe representar las particularidades importantes del problema que se quiere solucionar.
Una aplicación de restaurantes tiene una pantalla para tomar pedidos y otra parte encargada de procesarlos.
¿Por qué conviene separar esas responsabilidades?
A. Para eliminar los objetos
B. Para facilitar el mantenimiento
C. Para evitar los métodos
D. Para aumentar el código
Respuesta: B
Justificación: Separar responsabilidades permite modificar una parte del sistema con menor impacto sobre las demás.
Una aplicación de biblioteca guarda los préstamos en un archivo para recuperarlos cuando vuelva a ejecutarse.
¿Qué objetivo cumple esta operación?
A. Crear una interfaz
B. Aplicar herencia
C. Mantener información
D. Reducir clases
Respuesta: C
Justificación: Guardar información en un medio externo permite recuperarla posteriormente.
Una aplicación tiene un diseño visual atractivo, pero los usuarios no saben dónde encontrar sus funciones principales.
¿Cuál es el problema más evidente?
A. Falta de herencia
B. Mala experiencia de usuario
C. Exceso de persistencia
D. Falta de archivos
Respuesta: B
Justificación: Una interfaz debe ser comprensible y facilitar que el usuario encuentre y utilice las funciones.
Una IA propone tres soluciones para un problema de software. Todas parecen funcionar, pero tienen diferentes costos y riesgos.
¿Quién debe decidir cuál utilizar?
A. La inteligencia artificial
B. El usuario final
C. El ingeniero
D. El compilador
Respuesta: C
Justificación: La IA puede proponer alternativas, pero la decisión técnica corresponde al profesional responsable.
Una aplicación financiera funciona correctamente, pero para cambiar una regla de negocio deben modificarse muchas partes del código.
¿Qué situación refleja principalmente?
A. Buena experiencia de usuario
B. Excelente persistencia de datos
C. Alto acoplamiento del sistema
D. Correcta implementación gráfica
Respuesta: C
Justificación: Cuando un cambio pequeño obliga a modificar muchas partes, existe un acoplamiento elevado entre componentes.
Una empresa cambia el diseño de su aplicación móvil, pero quiere conservar exactamente las mismas reglas de negocio.
¿Qué diseño facilitaría este cambio?
A. Lógica mezclada con pantallas
B. Una clase central para todo
C. Código repetido por pantalla
D. Responsabilidades correctamente separadas
Respuesta: D
Justificación: La separación entre presentación y lógica permite evolucionar la interfaz sin alterar innecesariamente el comportamiento interno.
Una aplicación de ventas guarda correctamente sus facturas, pero al iniciar nuevamente no recupera ninguna.
¿Qué parte probablemente falta?
A. El método de carga
B. La clase principal
C. El botón eliminar
D. El formulario gráfico
Respuesta: A
Justificación: Guardar y recuperar son operaciones diferentes; una aplicación necesita implementar el mecanismo de carga.
Una aplicación de logística muestra cientos de registros en una estructura organizada por filas y columnas.
¿Qué componente sería especialmente apropiado para esa representación?
A. JLabel
B. JButton
C. JTable
D. JFrame
Respuesta: C
Justificación: Una JTable permite representar información estructurada en filas y columnas.
Una empresa permite utilizar IA para desarrollar software. ¿Cuál habilidad adquiere mayor importancia para el ingeniero?
A. Memorizar más código
B. Evaluar soluciones técnicamente
C. Evitar todas las herramientas
D. Escribir cada línea manualmente
Respuesta: B
Justificación: Cuando generar código se vuelve más rápido, aumenta el valor del criterio para evaluar calidad, riesgos y pertinencia.
Una empresa de transporte quiere desarrollar un sistema que inicialmente gestione buses, pero posteriormente podría incorporar trenes y motocicletas.
¿Qué enfoque sería más conveniente?
A. Crear una única clase para todos
B. Repetir toda la lógica por vehículo
C. Evitar cualquier estructura común
D. Diseñar abstracciones reutilizables
Respuesta: D
Justificación: Las abstracciones permiten representar comportamientos comunes y facilitar futuras extensiones.
Una plataforma de reservas necesita agregar una nueva modalidad de servicio. El equipo puede hacerlo creando una nueva clase sin modificar gran parte del código existente.
¿Qué característica está demostrando?
A. Capacidad de extensión
B. Dependencia excesiva
C. Falta de abstracción
D. Ausencia de encapsulamiento
Respuesta: A
Justificación: Un sistema extensible permite incorporar nuevas funcionalidades reduciendo el impacto sobre componentes existentes.
Una pequeña aplicación personal almacena algunos registros en archivos de texto. Con el tiempo tendrá miles de usuarios simultáneos.
¿Qué evolución sería más razonable?
A. Crear más archivos manualmente
B. Mantener todos los datos en memoria
C. Eliminar el almacenamiento
D. Evaluar una base de datos
Respuesta: D
Justificación: El crecimiento del volumen y concurrencia puede requerir una solución de persistencia más robusta.
Una empresa quiere renovar completamente la apariencia de su sistema sin cambiar las reglas que controlan los procesos.
¿Qué característica del diseño ayudaría más?
A. Código duplicado
B. Una clase gigante
C. Lógica dentro de botones
D. Separación de responsabilidades
Respuesta: D
Justificación: Una arquitectura organizada permite modificar la presentación sin alterar innecesariamente la lógica del sistema.
Un equipo utiliza IA para generar una aplicación completa. Después descubre que una parte del código expone información sensible.
¿Qué conclusión es más adecuada?
A. La IA garantiza código seguro
B. El problema pertenece al usuario
C. El código generado no necesita revisión
D. La solución requiere validación humana
Respuesta: D
Justificación: El código generado por IA puede contener errores o riesgos; la revisión humana continúa siendo necesaria.
Un equipo recibe dos soluciones para controlar inventarios. Ambas funcionan, pero una está organizada para facilitar pruebas y futuros cambios.
¿Cuál debería preferirse?
A. La solución mejor estructurada
B. La que tenga más código
C. La que use menos clases
D. La que termine primero
Respuesta: A
Justificación: En ingeniería importa no solo que una solución funcione, sino que pueda mantenerse, probarse y evolucionar.
Una empresa heredó un sistema que funciona, pero nadie quiere modificarlo porque un cambio pequeño puede generar errores inesperados.
¿Cuál sería la preocupación principal?
A. El tamaño de la interfaz
B. La cantidad de usuarios
C. La mantenibilidad del software
D. El número de computadores
Respuesta: C
Justificación: Un software difícil de modificar presenta problemas de mantenibilidad, aunque actualmente funcione.
Una startup necesita consultar millones de transacciones, relacionar clientes con operaciones y controlar accesos simultáneos.
¿Cuál sería la decisión técnicamente más razonable?
A. Usar archivos independientes
B. Mantener listas en memoria
C. Implementar almacenamiento especializado
D. Guardar cada registro manualmente
Respuesta: C
Justificación: El volumen, las relaciones y la concurrencia justifican una infraestructura de datos especializada.
Una aplicación de emergencias tiene una interfaz sencilla, pero permite ejecutar correctamente procesos críticos y muestra información clara.
¿Cuál afirmación es más adecuada?
A. Una interfaz simple puede ser efectiva
B. Una interfaz profesional debe ser compleja
C. El diseño visual reemplaza la funcionalidad
D. Una aplicación útil requiere muchos elementos
Respuesta: A
Justificación: Una buena interfaz prioriza claridad, facilidad de uso y cumplimiento de las necesidades del usuario.
Una empresa entrega a un ingeniero un problema completamente nuevo y le permite utilizar cualquier herramienta de IA disponible.
¿Qué competencia representa mejor al profesional que probablemente tendrá mayor capacidad para resolverlo?
A. Recordar fragmentos de código
B. Dominar un único lenguaje
C. Analizar, aprender y decidir
D. Copiar soluciones existentes
Respuesta: C
Justificación: El ingeniero del futuro necesita comprender problemas nuevos, aprender rápidamente, utilizar herramientas y tomar decisiones fundamentadas.