NEW
Font size
WorksheetsEstudio De Temas Variados(RG EG)
Total questions: 65
Worksheet time: 1hrs 5mins
Reactivo 1: Clasificación de Requerimientos
Una empresa de logística está desarrollando un nuevo sistema de ruteo. Durante las sesiones de levantamiento, el gerente de operaciones enfatiza las siguientes necesidades:
- El sistema debe permitir al chofer escanear el código QR de cada paquete al momento de la entrega.
- El módulo de cálculo de rutas debe ser capaz de procesar 5,000 peticiones simultáneas sin que el tiempo de respuesta supere los 3 segundos.
- El sistema debe generar un reporte diario de entregas fallidas.
¿Cómo se clasifican, respectivamente, estos requerimientos?
Funcional, De Usuario, No Funcional.
Funcional, No Funcional, Funcional.
De Usuario, Funcional, De Calidad.
No Funcional, Funcional, De Usuario
Reactivo 2: Diagramas de Casos de Uso (Relaciones)
Estás modelando el proceso de "Reserva de Vuelos" para una aerolínea.
- Siempre que un usuario selecciona "Reservar Vuelo", el sistema debe obligatoriamente ejecutar la verificación de "Comprobar Disponibilidad de Asientos" antes de continuar.
- Adicionalmente, si el usuario cuenta con una membresía VIP, el sistema le ofrecerá la opción de "Seleccionar Asiento Premium" sin costo extra, pero esto no ocurre para todos los usuarios.
¿Qué relaciones de UML representan correctamente estas interacciones?
Include hacia "Comprobar Disponibilidad" y Include hacia "Seleccionar Asiento Premium".
Extend desde "Comprobar Disponibilidad" y Include hacia "Seleccionar Asiento Premium".
Include hacia "Comprobar Disponibilidad" y Extend desde "Seleccionar Asiento Premium".
Generalización hacia "Comprobar Disponibilidad" y Extend desde "Seleccionar Asiento Premium".
Reactivo 3: Diagramas de Clases (Relaciones)
Estás diseñando el modelo de datos para un sistema de Gestión de Edificios Inteligentes. Tienes las siguientes reglas de negocio:
- Un Edificio tiene múltiples Salas de Juntas. Si el edificio es demolido (se elimina del sistema), las salas de juntas dejan de existir físicamente y lógicamente.
- Una Sala de Juntas tiene asignados varios Proyectores. Si la sala se elimina o se remodela, los proyectores se guardan en el inventario y pueden reasignarse a otra sala; no se destruyen.
¿Qué tipos de asociación debes utilizar para modelar Edificio-Sala y Sala-Proyector respectivamente?
Agregación y Composición.
Composición y Agregación
Asociación simple y Composición.
Composición y Dependencia.
Reactivo 4: Diagramas de Secuencia
Analiza el siguiente flujo de interacción en un sistema de pagos:
1.- El objeto Checkout envía un mensaje al objeto PasarelaPagos solicitando el cargo a la tarjeta.
2.- El objeto Checkout se detiene y no realiza ninguna otra acción hasta que PasarelaPagos responde con "Aprobado" o "Rechazado".
3.- Una vez recibida la respuesta, Checkout envía un mensaje al objeto NotificadorEmail para avisar al cliente.
4.- Checkout muestra la pantalla de éxito inmediatamente, sin esperar a que el NotificadorEmail termine de enviar el correo (el correo se procesa en segundo plano).
¿Qué tipo de mensajes se utilizaron en el paso 2 y en el paso 4 respectivamente?
Síncrono y De Retorno.
Asíncrono y Síncrono.
Síncrono y Asíncrono.
Asíncrono y De Retorno.
Reactivo 5: Técnicas de Levantamiento
Te han asignado un proyecto para digitalizar el proceso de Control de Inventarios de una fábrica antigua. Los operarios actuales no usan computadoras, todo lo hacen en libretas con un sistema de códigos taquigráficos que solo ellos entienden. Intentaste hacer entrevistas, pero los operarios no saben explicarte cómo deciden cuándo pedir más material; te dicen "solo lo sé cuando veo el anaquel". El gerente necesita que el sistema replique exactamente su flujo de trabajo actual para no afectar la productividad.
¿Qué técnica de levantamiento de requerimientos es la más adecuada para este escenario?
Brainstorming
Cuestionarios masivos.
Observación directa
JAD (Joint Application Design).
Reactivo 6: Diagramas de Clases (Herencia)
En un sistema de nómina, tienes una clase Empleado con atributos como nombre y salario. Tienes dos variaciones: EmpleadoPorHoras y EmpleadoAsalariado. Ambos comparten los atributos de Empleado, pero EmpleadoPorHoras tiene un método único para calcularPagoExtra() y EmpleadoAsalariado tiene un método para calcularBonoAnual().
¿Qué relación de UML optimiza este diseño para evitar duplicidad de código?
Agregación
Realización (Interface).
Generalización (Herencia).
Composición
Reactivo 7: Relaciones entre Actores (UML)
En el modelado de un sistema de administración hospitalaria, se identifican dos actores: PersonalMédico y Cirujano. El actor PersonalMédico puede consultar expedientes y registrar signos vitales. El actor Cirujano puede realizar exactamente las mismas acciones que PersonalMédico, pero además tiene permisos exclusivos para programar quirófanos y firmar actas post-operatorias.
¿Qué relación debe modelarse entre Cirujano y PersonalMédico?
Asociación
Extensión(Extend)
Generalización
Dependencia
Reactivo 8: Atributos de Calidad (ISO/IEC)
Para un sistema de votación electrónica, se establecen las siguientes restricciones críticas:
La interfaz debe permitir que un ciudadano sin experiencia tecnológica complete su voto en menos de 2 minutos sin requerir ayuda externa.
En caso de una interrupción eléctrica, el sistema debe recuperar el estado exacto de los votos almacenados sin corrupción de datos al reiniciarse.
Basado en los estándares de calidad de software, ¿qué atributos se están priorizando?
Eficiencia y Portabilidad.
Usabilidad y Fiabilidad (Reliability)
Funcionalidad y Mantenibilidad.
Usabilidad y Seguridad.
Reactivo 9: Diagramas de Secuencia (Fragmentos Combinados)
Estás analizando la lógica de un diagrama de secuencia para un proceso de "Envío de Boletines (Newsletter)". El objeto ControladorEnvio recupera una lista de 10,000 suscriptores. El diagrama muestra un fragmento rectangular que encierra el envío del mensaje al objeto ServicioSMTP. La función debe continuar enviando los Newsletter mientras existan suscriptores que aún no lo hayan recibido.
¿Qué estructura de control representa este diseño en la implementación del código?
Una estructura condicional
Una ejecución concurrente de hilos
Una estructura iterativa
Una manejo de excepciones
Reactivo 10: Relaciones de Clases
En un sistema universitario, se modelan las entidades Departamento (ej. Ciencias, Humanidades) y Profesor. La regla de negocio establece que un Profesor está asignado a un Departamento. Sin embargo, si el Departamento cierra o se reestructura, el Profesor debe esperar a ser reasignado a otra área administrativa.
¿Qué notación gráfica corresponde a la relación en el extremo de la clase Departamento?
Composición
Agregación
Asociación
Dependencia
Reactivo 11: Relaciones de Casos de Uso
Analiza el caso de uso "Generar Factura". El flujo normal implica calcular impuestos y sellar el XML. Existe una funcionalidad adicional llamada "Aplicar Descuento de Buen Fin", la cual solo se ejecuta si la fecha actual corresponde a la semana de promociones y el subtotal supera los $5,000 pesos. Si no se cumplen estas condiciones, el flujo base continúa sin alteraciones.
¿Qué relación conecta a "Generar Factura" con "Aplicar Descuento"?
Include
Extend
Generalización
Asociación
Reactivo 12: Técnicas de Elicitación
Una startup te contrata para desarrollar una solución innovadora, pero no tienen claro qué construir. Saben que el sector restaurantero tiene "muchos dolores de cabeza" operativos, pero no identifican la causa raíz. Te piden una sesión para mapear las dificultades actuales (retrasos, desperdicios, quejas).
¿Qué técnica es la más apropiada para esta fase exploratoria?
Observación directa
Entrevistas
Brainstorming
Problem storming
Reactivo 2.1
Estás desarrollando un módulo para la generación de contratos legales personalizados en una firma de abogados. Un contrato puede tener muchas variaciones: puede incluir cláusulas de confidencialidad, anexos de penalización, tablas de amortización opcionales y firmas digitales. Configurar un objeto "Contrato" mediante un constructor único requeriría demasiados parámetros, muchos de los cuales serían nulos en la mayoría de los casos. Necesitas una solución que permita construir el objeto paso a paso, estableciendo solo las propiedades necesarias para cada cliente específico antes de obtener el producto final.
¿Qué patrón de diseño creacional resuelve esta problemática?
Factory Method
Abstract Factory
Prototype
Builder
Reactivo 2.2
Una empresa de logística está migrando su sistema monolítico. El objetivo es dividir la aplicación en pequeños servicios autónomos. Un requisito no negociable del arquitecto es que si el servicio de "Rastreo de Envíos" sufre una caída o necesita ser actualizado, esto no debe afectar en absoluto la operación del servicio de "Facturación". Además, se especifica que cada servicio debe gestionar su propio almacenamiento de datos para evitar cuellos de botella y dependencias a nivel de base de datos.
¿Qué estilo arquitectónico cumple estrictamente con estas restricciones?
SOA (Service Oriented Architecture)
Microservicios
Arquitectura en Capas
Cliente-Servidor
Reactivo 2.3
Estás trabajando en una aplicación de monitoreo climático. Tienes un objeto central llamado EstaciónMeteorologica que recibe datos de sensores físicos (temperatura, humedad, presión). Existen tres pantallas diferentes que muestran estos datos: un display estadístico, una gráfica en tiempo real y un log de auditoría. Necesitas que, en el momento exacto en que la EstaciónMeteorologica actualice sus valores, las tres pantallas se enteren y se actualicen automáticamente, sin que la Estación tenga que conocer los detalles específicos de cada pantalla ni cuántas pantallas hay conectadas.
¿Qué patrón de comportamiento implementa este mecanismo de suscripción?
Strategy
Mediator
Observer
Chain of Responsibility
Reactivo 2.4
Se está diseñando una aplicación móvil para gestión de tareas. El equipo de desarrollo ha elegido un framework que facilita la sincronización automática entre la interfaz de usuario y la lógica. El requerimiento técnico especifica que debe existir un intermediario que exponga el estado de los datos de tal forma que la Vista se pueda enlazar a ellos directamente (Data Binding). De esta manera, si el usuario marca una tarea como "completada" en la pantalla, la variable correspondiente en el código se actualiza sola sin necesidad de escribir un evento "onClick" que modifique manualmente el modelo.
¿Qué patrón de arquitectura de presentación se está describiendo?
MVC (Model-View-Controller)
MVP (Model-View-Presenter)
MVVM (Model-View-ViewModel)
Facade
Reactivo 2.5
Tu equipo debe integrar un nuevo sistema de ventas web con un sistema contable heredado (legacy) que corre en un mainframe de los años 90. El nuevo sistema envía los datos de las ventas en formato JSON, pero el sistema antiguo solo acepta archivos XML con una estructura muy específica y rígida. No es posible modificar el código del sistema antiguo ni cambiar la salida del nuevo. Se requiere desarrollar una clase intermedia que reciba la petición del cliente moderno, la transforme al formato que espera el sistema viejo y devuelva la respuesta traducida.
¿Qué patrón estructural es el adecuado para colaborar entre interfaces incompatibles?
Bridge
Adapter
Decorator
Proxy
Reactivo 2.6
Una institución financiera te ha contratado para auditar la arquitectura de su nuevo sistema de banca en línea antes de que pase a producción. El objetivo principal de la evaluación es identificar los riesgos arquitectónicos y, sobre todo, analizar las consecuencias de las decisiones de diseño. Específicamente, quieren entender los puntos de compromiso (trade-offs); por ejemplo, entender cómo la decisión de usar un cifrado de alto nivel podría estar degradando el tiempo de respuesta del sistema.
¿Qué método de evaluación arquitectónica está diseñado específicamente para este propósito?
SAAM
CBAM
ATAM
ARID
Estás desarrollando el núcleo de un sistema operativo. Tienes un componente encargado de gestionar el Spool de Impresión (la cola de documentos que van a la impresora). Es crítico que todos los programas (Word, Excel, PDF) envíen sus documentos a la misma cola centralizada. Si por error se instanciaran dos gestores de spool diferentes, los documentos se enviarían a colas separadas y la impresora física se bloquearía al recibir instrucciones contradictorias de dos fuentes distintas. Necesitas asegurar estructuralmente que sea imposible crear más de una instancia de este gestor.
¿Qué patrón debes implementar?
Factory Method
Proxy
Prototype
Singleton
Trabajas en un software de diseño vectorial (tipo Illustrator). El usuario puede agrupar varias figuras (círculos, cuadrados, triángulos) en un "Grupo". El requerimiento es que el usuario pueda aplicar operaciones como "Mover", "Escalar" o "Pintar" tanto a una figura individual como a un "Grupo" entero de la misma manera. El código cliente no debe preocuparse si está tratando con un objeto simple o con una jerarquía recursiva de objetos; debe tratarlos uniformemente.
¿Qué patrón estructural resuelve esto?
Bridge
Decorator
Composite
Facade
Estás programando un módulo de "Tareas Programadas" para un servidor. Las tareas pueden ser muy variadas: "EnviarEmail", "LimpiarLogs", "GenerarReporte". Necesitas una forma de encapsular cada una de estas solicitudes en objetos independientes para poder meterlas en una lista de espera (cola), ejecutarlas a una hora específica o incluso guardar un historial de tareas fallidas para reintentarlas más tarde. El ejecutor de la cola no necesita saber qué hace la tarea, solo necesita llamar a un método genérico ejecutar().
¿Qué patrón de comportamiento es el adecuado?
Strategy
Observer
State
Command
Una empresa de videojuegos está creando un motor gráfico multiplataforma. Por un lado, tienen abstracciones lógicas de alto nivel como Personaje, Vehículo o Arma. Por otro lado, tienen las implementaciones de renderizado de bajo nivel que dependen del hardware: DirectX (para Windows) y OpenGL (para Linux/Mac). Para evitar crear una explosión de clases como PersonajeWindows, PersonajeLinux, VehiculoWindows, etc., se decide separar las jerarquías de "Entidades del Juego" y "Motores de Renderizado", conectándolas mediante una referencia interna para que puedan variar independientemente.
¿Qué patrón estructural se está aplicando?
Adapter
Bridge
Proxy
Facade
Estás diseñando una herramienta para la validación de documentos oficiales. El proceso legal de validación consta de 4 pasos estrictos que no pueden cambiarse de orden:
1.- validarFormato()
2.- verificarFirmaDigital()
3.- validarListasNegras()
4.- generarAcuse() Sin embargo, la implementación del paso 2 (verificarFirmaDigital) varía radicalmente si el documento es un PDF, un XML o un JSON. Quieres definir el flujo maestro en una clase base para asegurar que nadie se salte pasos, pero permitir que las subclases implementen únicamente la lógica específica del paso 2 según el tipo de archivo.
¿Qué patrón de comportamiento debes usar?
Builder
Strategy
Template Method
Decorator
En un sistema de gestión de pedidos, un objeto OrdenDeCompra tiene comportamientos diferentes según su situación actual.
Si está en "Borrador", el método agregarProducto() añade items.
Si está en "Confirmada", el método agregarProducto() lanza un error de "Orden bloqueada".
Si está en "Enviada", el método agregarProducto() sugiere crear un nuevo pedido. El arquitecto quiere evitar el uso de múltiples condicionales if/else o switch dentro de la clase OrdenDeCompra para revisar la situación actual cada vez que se llama a un método, y prefiere que el objeto delegue el comportamiento a objetos que representen cada etapa del ciclo de vida.
¿Qué patrón permite este cambio de comportamiento dinámico?
Strategy
Command
Observer
State
Estás desarrollando una aplicación de redes sociales. Necesitas mostrar listas de amigos en la interfaz. La estructura interna donde se guardan los amigos es compleja: para algunos usuarios es una lista simple, para otros es un grafo de conexiones, y para otros es una tabla hash. Necesitas que la interfaz gráfica pueda recorrer (traversar) cualquiera de estas colecciones elemento por elemento sin conocer cómo están almacenados los datos internamente y sin duplicar el código de recorrido para cada estructura.
¿Qué patrón resuelve este problema?
Iterator
Composite
Visitor
Proxy
Estás liderando el equipo de pruebas para un sistema bancario crítico. El sistema ha sido desarrollado por módulos separados (Cuentas, Transferencias, Préstamos) que ya han sido probados individualmente. Ahora necesitas verificar que estos módulos funcionen correctamente al conectarse entre sí. Has decidido comenzar probando primero los módulos de más bajo nivel (como las funciones de cálculo de interés y conexión a BD) y subir progresivamente hasta la interfaz de usuario. Sin embargo, como la interfaz gráfica aún no está terminada, necesitarás desarrollar pequeños programas auxiliares que simulen las llamadas que haría la interfaz a estos módulos bajos.
¿Qué estrategia de integración y qué herramienta auxiliar estás utilizando?
A) Integración Big Bang con Stubs.
B) Integración Ascendente (Bottom-Up) con Drivers.
C) Integración Descendente (Top-Down) con Stubs.
D) Integración Ascendente (Bottom-Up) con Mocks.
Un analista de calidad está diseñando casos de prueba para un formulario de registro. El campo "Edad" acepta valores entre 18 y 65 años. Para optimizar el número de pruebas sin perder cobertura, el analista decide probar únicamente con los valores: 17, 18, 19, 64, 65 y 66.
¿Qué técnica de diseño de pruebas de Caja Negra se está aplicando?
A) Partición de Equivalencia.
B) Tablas de Decisión.
C) Análisis de Valores Límite.
D) Pruebas de Transición de Estado.
Se te pide evaluar la calidad del código fuente de un algoritmo complejo de facturación. No te interesa si el algoritmo da el resultado correcto (funcionalidad), sino qué tan difícil será mantenerlo y probarlo. Utilizas una herramienta estática que te indica que el método calcularImpuestos() tiene una Complejidad Ciclomática de 25.
¿Qué interpretación técnica debes dar a este resultado?
A) El código es de alta calidad porque maneja 25 casos de uso diferentes.
B) El código es eficiente porque ejecuta 25 operaciones por milisegundo.
C) El código es riesgoso y difícil de mantener, ya que tiene al menos 25 caminos independientes que deben ser probados.
D) El código tiene 25 líneas de código fuente y es fácil de leer.
Durante la auditoría de un proyecto de software, se detecta que el equipo ha corregido el 80% de los fallos reportados, pero estos fallos provienen solamente del 20% de los módulos del sistema (módulos de Reportes y Facturación). El resto de los módulos es muy estable. El gerente de proyecto decide reasignar a los mejores testers exclusivamente a esos dos módulos problemáticos para la siguiente fase.
¿En qué principio se basa esta decisión?
La paradoja del pesticida.
Falacia de la ausencia de errores
Principio de Pareto.
Pruebas exhaustivas son imposibles.
Estás definiendo el plan de pruebas para un sistema de control aéreo. El requerimiento más importante no es solo que el sistema no falle, sino que, si llega a fallar un componente, el sistema sea capaz de recuperar su nivel de operación en menos de 1 segundo sin perder datos críticos.
¿Qué característica de calidad según el modelo ISO/IEC 9126 estás poniendo a prueba?
A) Portabilidad (Adaptabilidad).
B) Fiabilidad (Recuperabilidad).
C) Usabilidad (Operabilidad).
D) Mantenibilidad (Estabilidad).
Estás desarrollando el "Frontend" de una aplicación de reservas. El cliente exige ver los flujos de navegación y las pantallas principales funcionando para la demo de la próxima semana. El problema es que el equipo de "Backend" está retrasado y aún no ha desarrollado las APIs reales que consultan la base de datos. Para cumplir con la demo, decides programar pequeños componentes falsos que, al ser llamados por tu interfaz, devuelvan una respuesta JSON estática (hardcoded) simulando que el servidor respondió correctamente. Esto te permite probar el flujo completo desde la pantalla de inicio hasta la confirmación visual.
¿Qué estrategia de integración y qué herramienta estás empleando?
A) Integración Ascendente (Bottom-Up) utilizando Drivers.
B) Integración Big Bang utilizando Mocks. a utilizando Jenkins.
C) Integración Descendente (Top-Down) utilizando Stubs.
D) Integración Continua utilizando Jenkins.
Un ingeniero de calidad recibe el código fuente de un módulo crítico de encriptación. Su tarea no es verificar si el módulo cumple con los requisitos del usuario (eso ya se hizo), sino analizar la estructura interna del código. El ingeniero diseña un conjunto de pruebas garantizando que:
Todas las sentencias de código se ejecuten al menos una vez.
Todas las decisiones lógicas (True/False en los if y loops) sean evaluadas en ambas direcciones.
¿A qué categoría pertenecen estas pruebas?
A) Pruebas de Caja Negra.
B) Pruebas de Caja Blanca.
C) Pruebas de Regresión.
D) Pruebas de Aceptación de Usuario (UAT).
Una startup con poco presupuesto y tiempos muy ajustados decide que cada desarrollador trabaje en su módulo de forma aislada para "avanzar más rápido". No realizan integraciones parciales durante los 3 meses de desarrollo. El día antes del lanzamiento, copian todos los archivos al servidor de producción y compilan el proyecto completo por primera vez. El sistema colapsa inmediatamente con múltiples errores en cascada, y el equipo es incapaz de determinar cuál de los 20 módulos es el origen del conflicto debido a la mezcla simultánea de todos los componentes.
¿Qué enfoque de integración se utilizó (y falló) en este escenario?
A) Integración Incremental.
B) Integración Continua (CI).
C) Integración Big Bang.
D) Integración Híbrida (Sándwich).
Durante una revisión de métricas, se analiza un algoritmo de validación de identidad. Utilizando la técnica de Grafos de Flujo de Control, se determina que el algoritmo tiene una Complejidad Ciclomática de 12. Basado en la teoría de McCabe, ¿cuál es el número mínimo absoluto de casos de prueba independientes que debes diseñar para asegurar que se ha recorrido cada camino posible del algoritmo al menos una vez?
A) 1 caso de prueba.
B) 6 casos de prueba (la mitad de la complejidad).
C) 12 casos de prueba.
D) 24 casos de prueba (el doble para seguridad).
Una empresa de desarrollo de software ha notado que sus productos fallan mucho, no por falta de talento técnico, sino por desorganización en la gestión. La directiva quiere implementar un modelo para evaluar y mejorar la madurez de sus procesos de desarrollo (planificación, gestión de riesgos, configuración), no solo evaluar el producto final. Buscan un estándar internacional que les permita saber en qué nivel de capacidad se encuentran sus procesos organizacionales.
¿Qué estándar ISO/IEC es el indicado para la evaluación de procesos?
A) ISO/IEC 15504 (SPICE)
B) ISO/IEC 25010
C) ISO/IEC 9126
D) ISO/IEC 27001
Durante el Sprint Planning, el Product Owner presenta una historia de usuario crítica para el negocio. Tres desarrolladores Senior estiman que tomará 8 puntos de historia debido a la deuda técnica existente, mientras que el Product Owner, basándose en su experiencia técnica previa de hace años, insiste en que debería tomar solo 3 puntos y presiona para que se incluya en el Sprint. Para resolver el conflicto de estimación, el Scrum Master debe intervenir basándose en la guía oficial de Scrum.
¿Quién tiene la autoridad final para decidir la estimación de la historia?
A) El Product Owner, por ser responsable del ROI.
B) El Scrum Master, como facilitador del proceso.
C) El Equipo de Desarrollo (Developers).
D) El Líder Técnico o Arquitecto del proyecto.
Estás gestionando un proyecto de software para el sistema de frenado autónomo de un nuevo vehículo eléctrico. La seguridad es el factor no negociable. La regulación internacional exige que exista una trazabilidad explícita y documental entre cada requisito de seguridad definido y su prueba de validación correspondiente. Por ejemplo, se debe demostrar qué prueba específica valida el requisito de "frenado en lluvia". El equipo necesita un modelo de ciclo de vida que enfatice esta relación bilateral entre las fases de ingeniería y las fases de prueba desde el inicio.
¿Qué modelo de desarrollo es el indicado?
A) Modelo en Espiral.
B) Scrum.
C) Modelo en V.
D) Modelo RAD (Rapid Application Development).
Un equipo de desarrollo utiliza Git para el control de versiones. Un desarrollador junior ha realizado un commit con un error grave en la lógica de facturación y, lamentablemente, ya ha hecho push a la rama remota compartida develop, donde otros compañeros ya han descargado los cambios. Necesitas corregir este error en el historial remoto para que el código vuelva al estado funcional anterior, pero debes hacerlo de una manera segura que no rompa la historia ni afecte el trabajo de los demás desarrolladores que ya sincronizaron esa rama.
¿Qué comando es el apropiado para esta situación?
A) git reset --hard HEAD~1
B) git revert <commit_id>
C) git rebase -i
D) git checkout .
Estás estimando el esfuerzo de un proyecto utilizando el método de Puntos de Función. Has identificado los componentes funcionales: Entradas Externas, Salidas Externas, Archivos Lógicos Internos y Archivos de Interfaz Externa. Te falta contabilizar un tipo de componente para completar el cálculo de los Puntos de Función No Ajustados (UFP). Este componente se refiere a las transacciones donde el usuario solicita información al sistema y recibe una respuesta inmediata sin que se alteren los datos internos (solo lectura).
¿Cuál es el componente faltante?
A) Consultas Externas (External Inquiries).
B) Algoritmos Internos.
C) Rutinas de Back-end.
D) Eventos de Sistema.
Es el último día del Sprint. El equipo ha completado el código de una nueva funcionalidad de "Pago con QR". El código compila, pasa las pruebas unitarias y funciona en el entorno de desarrollo. Sin embargo, la "Definición de Terminado" (DoD) del equipo establece que toda funcionalidad debe tener actualizada la guía de usuario final. El equipo olvidó hacer esto y no hay tiempo antes de la Review. El Product Owner sugiere mostrar la funcionalidad en la Sprint Review de todas formas para recibir feedback temprano de los stakeholders.
Según Scrum, ¿qué se debe hacer?
A) Presentarla en la Review aclarando que la documentación es deuda técnica.
B) No presentarla y devolverla al Product Backlog.
C) Extender la duración del Sprint 24 horas para terminar la documentación.
D) Presentarla como "Terminada" y documentar en el siguiente Sprint.
Una empresa está licitando un proyecto para el gobierno que consiste en un sistema satelital de misión crítica. Debido a la naturaleza del proyecto, los riesgos técnicos y financieros son altísimos. No se puede avanzar a la fase de codificación masiva sin antes validar la viabilidad técnica mediante prototipos y análisis de riesgo exhaustivos en etapas tempranas. Se requiere un ciclo de vida que permita evaluar la continuidad del proyecto (Go/No-Go) tras cada iteración de análisis.
¿Qué modelo de ciclo de vida prioriza el análisis de riesgos antes de la ingeniería?
A) Modelo en Cascada.
B) Modelo en Espiral.
C) Extreme Programming (XP).
D) Kanban.
Un equipo utiliza Kanban para gestionar su flujo de trabajo. Tienen un límite de trabajo en curso (WIP) de 2 tareas para la columna de "Pruebas". Actualmente, la columna de "Pruebas" tiene 2 tareas y los testers están ocupados. Tres desarrolladores han terminado sus tareas de "Codificación" y quieren moverlas a "Pruebas", pero el sistema no se los permite por el límite de WIP.
Basado en la filosofía Lean/Kanban, ¿cuál es la acción más productiva que deben tomar los desarrolladores?
A) Ignorar el límite temporalmente y mover las tareas para no detenerse.
B) Tomar nuevas tareas del Backlog para mantenerse ocupados programando.
C) Detener la codificación y ayudar a los testers a liberar la columna de Pruebas.
D) Crear una columna temporal de "Pre-Pruebas" para almacenar el trabajo listo.
Estás utilizando el modelo COCOMO Básico para estimar un proyecto de software embebido (sistema en tiempo real para control de tráfico aéreo).
Sabes que este tipo de proyectos tiene restricciones muy estrictas de hardware y operación.
Al aplicar la fórmula del esfuerzo $E = a(KLOC)^b$, debes seleccionar los coeficientes $a$ y $b$ adecuados.
Comparado con un proyecto "Orgánico" (sencillo, equipo pequeño), ¿cómo son los coeficientes para un proyecto "Empotrado/Embedded"?
A) Los coeficientes son menores, porque el código es más compacto.
B) Los coeficientes son iguales, solo cambia la cantidad de líneas de código.
C) Los coeficientes son mayores, reflejando una mayor complejidad y penalización por rigidez.
D) El modelo COCOMO no se aplica a sistemas en tiempo real.
Un equipo de desarrollo ágil quiere mejorar la calidad técnica de su código y reducir la cantidad de bugs que llegan a producción. El líder técnico propone adoptar una práctica de ingeniería donde las pruebas unitarias se escriban antes que el código de la funcionalidad. El ciclo consiste en: escribir prueba fallida (Red), escribir código mínimo para pasarla (Green) y mejorar el código (Refactor).
¿Cómo se llama esta práctica proveniente de XP (Extreme Programming)?
A) Integración Continua (CI).
B) Test Driven Development (TDD).
C) Pair Programming.
D) Behavior Driven Development (BDD).
Durante el Daily Scrum, un desarrollador comienza a explicar detalladamente un problema técnico complejo con la base de datos que le ha tomado 2 horas investigar. La reunión ya lleva 20 minutos y los demás miembros del equipo comienzan a distraerse.
¿Cuál es la intervención correcta del Scrum Master?
A) Permitir que termine para que todos entiendan el problema técnico.
B) Pedirle que registre el problema en Jira y continúe trabajando.
C) Sugerir que mencione el impedimento brevemente y lo discuta con las personas relevantes después de la reunión.
D) Cancelar la reunión y reprogramarla para cuando el problema esté resuelto.
Estás revisando el diseño de base de datos de un sistema escolar. Te encuentras con la tabla Estudiantes: ID_Estudiante | Nombre | Materias_Inscritas 101 | Juan Pérez | Matemáticas, Física, Química 102 | Ana López | Historia, Literatura
El campo Materias_Inscritas contiene una lista de valores separados por comas. Esto dificulta realizar consultas como "contar cuántos alumnos están en Matemáticas". Para corregir esto, decides crear una nueva fila por cada materia, repitiendo el nombre del estudiante si es necesario.
¿Qué regla de normalización se estaba violando originalmente y se busca corregir?
A) Primera Forma Normal (1FN) - Atomicidad.
B) Segunda Forma Normal (2FN) - Dependencia Parcial.
C) Tercera Forma Normal (3FN) - Dependencia Transitiva.
D) Cuarta Forma Normal (4FN) - Dependencia Multivaluada
Observas que los campos Nombre_Producto y Precio_Unitario dependen única y exclusivamente de ID_Producto (una parte de la llave), y no tienen relación con ID_Factura. Si el producto P100 se vende en otra factura, su nombre y precio se duplicarán innecesariamente.
¿En qué Forma Normal se encuentra esta tabla actualmente y qué regla viola?
A) Está en 1FN pero viola la 2FN.
B) Está en 2FN pero viola la 3FN.
C) Está en 3FN pero viola la 4FN.
D) No está normalizada (0FN).
Estás diseñando la arquitectura de datos para una cadena de supermercados. El sistema de cajas registradoras (POS) necesita registrar miles de ventas por minuto con máxima velocidad. Las operaciones son simples: INSERT venta, UPDATE inventario. Por otro lado, el equipo de Marketing necesita analizar el historial de ventas de los últimos 5 años para encontrar tendencias estacionales. Intentaron correr sus reportes complejos en la base de datos de las cajas, pero el sistema se volvió lento y las filas de clientes se detuvieron. Decides separar los datos en dos sistemas distintos optimizados para cada propósito.
¿Qué tecnologías debes usar respectivamente para las Cajas y para Marketing?
A) OLAP para cajas, OLTP para marketing.
B) OLTP para cajas, OLAP para marketing.
C) XML para cajas, JSON para marketing.
D) Base de datos NoSQL para ambos.
En una tabla de Empleados, tienes los siguientes campos: ID_Empleado (PK) | Nombre | Código_Postal | Colonia | Ciudad
Te das cuenta de que Colonia y Ciudad en realidad dependen del Código_Postal, no directamente del ID_Empleado. Si dos empleados viven en el mismo CP, se repite la información de Colonia y Ciudad. Si cambia el nombre de la Colonia asociada a un CP, tendrías que actualizar todos los registros de empleados con ese CP.
Para cumplir con la Tercera Forma Normal (3FN), ¿qué acción debes realizar?
A) Eliminar la columna Código_Postal.
B) Mover Colonia y Ciudad a una nueva tabla Catálogo_CP y dejar solo el Código_Postal en Empleados como llave foránea.
C) Crear una llave compuesta con ID_Empleado y Código_Postal.
D) Unir Colonia y Ciudad en un solo campo de texto para evitar redundancia de columnas.
Estás trabajando en un sistema bancario. Un usuario intenta transferir dinero de la Cuenta A a la Cuenta B. El sistema descuenta $1,000 de la Cuenta A. Justo en ese milisegundo, ocurre un corte de energía y el servidor se apaga antes de poder sumar los $1,000 a la Cuenta B. Al reiniciar, la base de datos detecta que la transacción quedó incompleta y automáticamente realiza un Rollback, devolviendo los $1,000 a la Cuenta A para que el dinero no desaparezca.
¿Qué propiedad ACID garantiza este comportamiento de "todo o nada"?
A) Atomicidad.
B) Consistencia
. C) Aislamiento (Isolation).
D) Durabilidad.
Tienes una tabla Profesores que almacena información sobre sus habilidades y disponibilidad. La tabla tiene la estructura: ID_Profesor | Materia_Que_Imparte | Idioma_Que_Habla. Un profesor puede impartir muchas materias (Matemáticas, Física) y hablar muchos idiomas (Inglés, Francés). Como Materia e Idioma son independientes entre sí, al intentar guardar esta información en una sola tabla, te ves obligado a crear filas para todas las combinaciones posibles (Producto Cartesiano), generando redundancia masiva. Por ejemplo, si el profesor aprende un nuevo idioma, debes agregar filas para todas sus materias con ese nuevo idioma.
¿Qué regla de normalización obliga a separar estos dos hechos independientes en tablas distintas?
A) Segunda Forma Normal (2FN).
B) Tercera Forma Normal (3FN).
C) Cuarta Forma Normal (4FN).
D) Quinta Forma Normal (5FN).
En una arquitectura de Microservicios para un E-commerce, el equipo de desarrollo está debatiendo cómo manejar los datos. El servicio de "Catálogo" y el servicio de "Pedidos" necesitan acceder a la información de los productos. Para "ahorrar recursos", proponen que ambos microservicios se conecten a la misma base de datos física compartida. Tú, como arquitecto, rechazas esta propuesta indicando que viola un principio fundamental de la arquitectura de microservicios y crea un acoplamiento fuerte.
¿Cuál es la configuración correcta de datos para este estilo arquitectónico?
A) Database per Service (Cada microservicio tiene su propia base de datos).
B) Data Warehouse centralizado para operaciones en tiempo real.
C) Replicación Maestro-Esclavo compartida.
D) Usar archivos planos (JSON) en lugar de base de datos.
Una base de datos ha sido normalizada hasta la 4FN. Sin embargo, al analizar una relación ternaria compleja entre Proveedores, Piezas y Proyectos, te das cuenta de que existe una dependencia de unión (Join Dependency) que no se está manejando correctamente. Aunque no hay dependencias multivaluadas obvias, la información solo puede reconstruirse fielmente uniendo tres tablas más pequeñas. Si se mantiene en una sola o dos, se pierden restricciones lógicas de negocio sobre qué proveedor puede surtir qué pieza a qué proyecto.
¿Qué forma normal se ocupa de asegurar que la información pueda reconstruirse mediante JOINS sin pérdida ni adición de datos espurios?
A) 3FN.
B) BCNF (Boyce-Codd).
C) 4FN.
D) 5FN.
El gerente de ventas se queja de que el sistema permite ingresar pedidos incompletos. Ayer se registró una venta donde se especificó el cliente y la fecha, pero no se agregaron productos al detalle de la venta. Técnicamente, esto ocurrió porque la aplicación insertó el registro en la tabla Cabecera_Ventas, pero falló antes de insertar en Detalle_Ventas, dejando el registro "huérfano" o incompleto lógicamente, aunque válido a nivel de base de datos (pues no violó llaves foráneas).
¿Qué anomalía de normalización o diseño describe mejor este problema lógico?
A) Anomalía de Actualización.
B) Anomalía de Inserción (datos inconsistentes/incompletos).
C) Violación de la 1FN.
D) Violación de aislamiento.
Necesitas implementar un sistema para un analista de negocios que realizará consultas multidimensionales complejas tipo "Ventas por Región, por Trimestre y por Categoría de Producto". La estructura de datos debe estar optimizada para lecturas rápidas y agregaciones (sumas, promedios), utilizando esquemas de estrella (Star Schema) o copo de nieve.
¿Qué tipo de sistema estás configurando?
A) Sistema OLTP.
B) Sistema ROLAP / DWH.
C) Sistema de Archivos Distribuidos.
D) Sistema de Gestión de Contenidos (CMS).
Un usuario está llenando un formulario largo para solicitar un crédito. A la mitad del proceso, se da cuenta de que seleccionó el tipo de crédito incorrecto en la primera pantalla. Intenta regresar, pero el sistema no tiene botón de "Atrás" ni "Cancelar"; la única forma de corregirlo es cerrar el navegador y empezar todo desde cero, perdiendo los datos ya capturados.
¿Qué heurística de usabilidad se está violando principalmente?
A) Visibilidad del estado del sistema.
B) Control y libertad del usuario.
C) Prevención de errores.
D) Reconocimiento antes que recuerdo.
Estás diseñando un software para médicos. Al momento de eliminar un expediente clínico, el sistema muestra un mensaje que dice: "Ejecutando DELETE FROM patients WHERE id=404. Error de integridad referencial en DB_Server_01". El médico se confunde y llama a soporte técnico asustado, pues no entiende si borró al paciente o si rompió el servidor. El diseño ideal debería decir "No se puede borrar este paciente porque tiene citas activas".
¿Qué heurística corrige este problema de comunicación?
A) Ayuda y documentación.
B) Coincidencia entre el sistema y el mundo real.
C) Flexibilidad y eficiencia de uso.
D) Coincidencia entre el sistema y el mundo real.
Un usuario sube un video pesado de 2 GB a la plataforma. Al dar clic en "Subir", la pantalla se queda estática. El cursor no cambia y no aparece ningún indicador. El usuario, pensando que el clic no funcionó, presiona el botón "Subir" cinco veces más, lo que provoca que el sistema se sature y colapse intentando subir el mismo archivo múltiples veces.
¿Qué heurística hubiera evitado este comportamiento del usuario?
A) Visibilidad del estado del sistema.
B) Estética y diseño minimalista.
C) Control y libertad del usuario.
D) Prevención de errores.
En la pantalla de "Ventas", el botón de "Guardar" es un disquete azul ubicado en la esquina inferior derecha. Sin embargo, en la pantalla de "Inventarios", el botón para la misma acción de guardar es un ícono de "Check" verde ubicado en la esquina superior izquierda. Esto provoca que los usuarios tarden más tiempo buscándolo cada vez que cambian de módulo.
¿Qué heurística está fallando?
A) Flexibilidad y eficiencia de uso.
B) Reconocimiento antes que recuerdo.
C) Consistencia y estándares.
D) Coincidencia entre el sistema y el mundo real.
Estás auditando un sistema de reservas de vuelos. El campo para ingresar la "Fecha de Regreso" es una caja de texto libre. Un usuario escribe por error "31 de Febrero de 2024". El sistema permite escribirlo, pero al dar clic en "Buscar", arroja una pantalla roja de error fatal diciendo que la fecha no existe. La recomendación de usabilidad es cambiar la caja de texto por un calendario desplegable que deshabilite los días inválidos automáticamente, impidiendo que el usuario pueda siquiera seleccionar una fecha incorrecta.
¿Qué heurística justifica este cambio?
A) Ayudar a los usuarios a reconocer y recuperarse de errores.
B) Prevención de errores.
C) Estética y diseño minimalista.
D) Visibilidad del estado del sistema.
Un usuario experto utiliza tu software de diseño gráfico todos los días. Para "Agrupar objetos", el usuario novato va al menú Edición > Transformar > Agrupar. El usuario experto se queja de que esto es muy lento y solicita que el sistema le permita presionar Ctrl + G para hacer lo mismo en una fracción de segundo. El sistema debe soportar ambos métodos de interacción para satisfacer a ambos perfiles.
¿Qué heurística promueve esta dualidad (menús para novatos, atajos para expertos)?
A) Flexibilidad y eficiencia de uso.
B) Reconocimiento antes que recuerdo.
C) Control y libertad del usuario.
D) Estética y diseño minimalista.
En un buscador avanzado, el usuario escribe una consulta compleja. Al pasar a la página 2 de resultados, el sistema borra lo que el usuario escribió en la barra de búsqueda. Si el usuario quiere modificar su búsqueda, tiene que volver a escribir todo desde su memoria. La heurística recomienda mantener visible el término buscado en la barra para que el usuario no tenga que memorizar qué escribió hace un momento.
¿Cuál es esta heurística?
A) Visibilidad del estado del sistema.
B) Reconocimiento antes que recuerdo.
C) Control y libertad del usuario.
D) Prevención de errores.
Estás evaluando la página de inicio de un portal gubernamental. La pantalla contiene el trámite de "Pago de Predial", pero está rodeado de 15 banners de publicidad de otros programas, un widget del clima, las últimas noticias del presidente, un reloj mundial y un fondo animado con colores brillantes. Los usuarios reportan que tardan mucho en encontrar dónde pagar porque "hay demasiado ruido visual" y elementos irrelevantes que compiten por su atención, ocultando la función principal.
¿Qué heurística sugiere eliminar la información irrelevante o que rara vez se necesite?
A) Reconocimiento antes que recuerdo.
B) Estética y diseño minimalista.
C) Consistencia y estándares.
D) Visibilidad del estado del sistema.
Un usuario intenta iniciar sesión en una aplicación bancaria. Por error, escribe su contraseña con el bloqueo de mayúsculas activado. El sistema detecta el fallo y muestra un mensaje emergente que dice: "Error: Credenciales inválidas. Por favor verifique si tiene activado el bloqueo de mayúsculas e intente nuevamente." A diferencia de un sistema que solo diría "Error 403: Forbidden" o "Datos incorrectos", este mensaje explica el problema en lenguaje natural y sugiere una solución inmediata.
¿Qué heurística se está aplicando correctamente aquí?
A) Prevención de errores.
B) Ayuda y documentación.
C) Ayudar a los usuarios a reconocer, diagnosticar y recuperarse de errores.
D) Control y libertad del usuario.
Estás diseñando un software de modelado 3D muy complejo para ingenieros. Aunque la interfaz trata de ser intuitiva, hay parámetros técnicos (como "Coeficiente de fricción" o "Tasa de muestreo") que un usuario nuevo podría no entender de inmediato. Para solucionar esto, decides agregar pequeños íconos de interrogación (?) junto a cada campo difícil. Al pasar el mouse sobre ellos, aparece un pequeño globo de texto (tooltip) explicando qué hace ese parámetro y dando un ejemplo de valor válido.
¿Qué heurística estás implementando?
A) Ayuda y documentación.
B) Reconocimiento antes que recuerdo.
C) Flexibilidad y eficiencia de uso.
D) Prevención de errores.
