EGEL Plus Ingeniería de Software study materials
EGEL Plus Ingeniería de Software study resources

EGEL Plus Ingeniería de Software cheat sheet

EGEL Plus Ingeniería de Software · Keep the key ideas within reach.

Quick reference

Análisis y diseño de software

  • Requerimiento funcional: describe una acción que el sistema debe realizar; se verifica mediante pruebas de aceptación.

  • Requerimiento no funcional: restricción de calidad (rendimiento, seguridad, usabilidad); se mide con métricas cuantificables.

  • Caso de uso: actor + flujo principal + flujos alternativos; el flujo principal debe terminar en un resultado de valor para el actor.

  • Historia de usuario: formato 'Como [rol], quiero [acción] para [beneficio]'; criterios de aceptación en formato Given-When-Then.

  • Diagrama de clases UML: relación de herencia (triángulo hueco), composición (rombo relleno, ciclo de vida dependiente) y agregación (rombo hueco).

  • Principio de responsabilidad única (SRP): una clase debe tener una sola razón para cambiar; se detecta si la clase tiene más de un actor interesado.

  • Ley de Demeter: un objeto solo debe invocar métodos de sus colaboradores directos; evita cadenas como a.getB().getC().hacer().

  • Acoplamiento y cohesión: bajo acoplamiento entre módulos y alta cohesión dentro de cada módulo; la cohesión funcional es la más deseable.

Quick reference

Construcción y pruebas de software

  • Cobertura de sentencias: porcentaje de líneas ejecutadas por la suite; cobertura de ramas exige evaluar ambas salidas de cada decisión.

  • Prueba unitaria: aísla una unidad (método/clase) usando dobles de prueba (stub, mock) para dependencias externas.

  • Prueba de integración: verifica la interacción entre módulos o con recursos externos (BD, API); no aísla dependencias.

  • TDD ciclo rojo-verde-refactor: escribir primero una prueba que falle, luego el código mínimo para pasarla y después refactorizar.

  • Partición de equivalencia: divide las entradas en clases donde se espera el mismo comportamiento; se prueba un valor por clase.

  • Análisis de valores límite: para un rango [a,b] se prueban a-1, a, b, b+1; detecta errores en las fronteras de las condiciones.

  • Complejidad ciclomática de McCabe: V(G) = E - N + 2P; también V(G) = número de regiones del grafo o decisiones + 1.

  • Prueba de regresión: conjunto de casos que se reejecuta tras un cambio para asegurar que no se rompió funcionalidad existente.

Quick reference

Gestión de proyectos de software

  • Ruta crítica: secuencia de actividades con holgura cero; su duración determina la duración mínima del proyecto.

  • Holgura total de una actividad = LS - ES = LF - EF; si es cero, la actividad es crítica.

  • Valor ganado: PV (valor planificado), EV (valor ganado), AC (costo real); CV = EV - AC y SV = EV - PV.

  • Índices de desempeño: CPI = EV / AC (costo) y SPI = EV / PV (cronograma); valores < 1 indican desviación desfavorable.

  • Estimación por puntos de historia: velocidad = puntos completados por iteración; duración estimada = backlog total / velocidad promedio.

  • Scrum: roles Product Owner, Scrum Master y equipo; eventos Sprint Planning, Daily, Review y Retrospective; artefactos Product Backlog, Sprint Backlog e Incremento.

  • Gestión de riesgos: probabilidad × impacto para priorizar; estrategias de respuesta: evitar, mitigar, transferir, aceptar.

  • Ley de Brooks: añadir personal a un proyecto tardío lo retrasa aún más por el costo de comunicación y rampa de aprendizaje.

Quick reference

Arquitectura, calidad y procesos de software

  • Atributo de calidad: propiedad medible del sistema (disponibilidad, modificabilidad, rendimiento); se documenta con escenarios de calidad de seis partes.

  • Estilo arquitectónico en capas: cada capa solo depende de la inmediata inferior; facilita sustitución pero puede añadir latencia.

  • Patrón MVC: separa Modelo (datos y lógica), Vista (presentación) y Controlador (entrada); reduce acoplamiento entre UI y negocio.

  • ISO/IEC 25010 define ocho características de calidad: adecuación funcional, eficiencia de desempeño, compatibilidad, usabilidad, fiabilidad, seguridad, mantenibilidad y portabilidad.

  • CMMI niveles de madurez: 1 Inicial, 2 Gestionado, 3 Definido, 4 Gestionado cuantitativamente, 5 En optimización.

  • Modelo en V: cada fase de desarrollo tiene una fase de prueba correspondiente (requisitos ↔ aceptación, diseño ↔ integración).

  • Deuda técnica: costo futuro de mantener una solución rápida; se hace explícita en el backlog y se prioriza su pago.

  • Revisión de código: inspección formal con roles (moderador, autor, revisores) y lista de verificación; detecta defectos antes de las pruebas.