Saber Pro Diseño de Software study materials
Saber Pro Diseño de Software study resources

Saber Pro Diseño de Software flashcards

Saber Pro Diseño de Software · Build recall with a focused review session.

32 cards. Read the term and the definition here. The deck at the top of this page is optional.

Principio de responsabilidad única
Cada clase debe tener una sola razón para cambiar, es decir, una única responsabilidad funcional frente a los actores del sistema.
Principio abierto-cerrado
Los módulos deben ser extensibles sin modificar su código estable; se logra con abstracciones, herencia o composición que permitan añadir comportamiento.
Sustitución de Liskov
Un subtipo debe poder reemplazar a su supertipo sin romper la corrección del programa; no puede reforzar precondiciones ni debilitar postcondiciones.
Inversión de dependencias
Los módulos de alto nivel no deben depender de los de bajo nivel; ambos dependen de abstracciones, y las abstracciones no dependen de detalles.
Patrón Strategy
Encapsula una familia de algoritmos intercambiables tras una interfaz común, permitiendo cambiar el comportamiento en tiempo de ejecución sin condicionales.
Patrón Observer
Define una dependencia uno-a-muchos: cuando el sujeto cambia de estado, notifica automáticamente a todos sus observadores suscritos.
Patrón Decorator
Añade responsabilidades a un objeto envolviéndolo en otro objeto del mismo tipo, sin modificar la clase original y de forma combinable.
Ley de Demeter
Un objeto solo debe interactuar con sus colaboradores directos; evita cadenas de llamadas que acoplan al cliente con la estructura interna de otros objetos.
Arquitectura en capas
Organiza el sistema en capas con dependencias descendentes; cada capa ofrece servicios a la superior y usa solo la inferior, aislando presentación, lógica y datos.
Patrón pipes and filters
Estilo arquitectónico donde cada filtro transforma datos y los pasa por tuberías al siguiente; favorece la reutilización y la composición de etapas independientes.
Vista 4+1 de Kruchten
Documenta la arquitectura con vistas lógica, de procesos, de desarrollo y física, más escenarios que validan y unen las demás perspectivas.
Registro de decisión arquitectónica
Documento breve que registra el contexto, la decisión tomada y sus consecuencias; es inmutable y se versiona con el código para conservar la justificación.
Monolito modular
Una sola unidad de despliegue organizada en módulos con límites claros; reduce costo operativo frente a microservicios cuando el dominio no está bien delimitado.
Relación de composición UML
Asociación fuerte representada con rombo relleno: la parte no tiene ciclo de vida independiente y se destruye cuando el todo se destruye.
Diagrama de secuencia
Diagrama de interacción que muestra objetos con líneas de vida y el orden temporal de los mensajes intercambiados, incluyendo fragmentos alt, opt y loop.
Relación include en casos de uso
Dependencia que indica que un caso de uso incorpora obligatoriamente el comportamiento de otro, reutilizado en un punto definido del flujo.
Complejidad ciclomática de McCabe
Métrica V(G) = E − N + 2P que cuenta caminos independientes del grafo de flujo; equivale a decisiones más uno y orienta el número mínimo de pruebas.
Ciclo de TDD
Rojo, verde y refactor: primero una prueba que falla, luego el código mínimo que la hace pasar y finalmente la limpieza sin alterar el comportamiento.
Prueba de valores límite
Técnica de caja negra que prueba los extremos de cada partición de entrada, donde se concentran los defectos por errores de comparación.
Code smell de envidia de características
Ocurre cuando un método usa más datos de otra clase que de la propia; suele resolverse moviendo el método a la clase cuyos datos utiliza.
Criterios INVEST
Una buena historia de usuario es independiente, negociable, valiosa, estimable, pequeña y testeable, lo que facilita su planificación y aceptación.
Velocidad del equipo
Cantidad de story points completados por iteración; se usa para pronosticar entregas y no debe compararse entre equipos distintos.
Matriz de trazabilidad
Tabla que relaciona requisitos con diseño, código y pruebas; revela requisitos sin diseño o sin cobertura de prueba asociada.
Consulta parametrizada
Sentencia SQL preparada donde los valores se envían como parámetros separados del texto, evitando la inyección de código en la base de datos.
Patrón Repository
Abstrae el acceso a datos tras una interfaz similar a una colección; desacopla el dominio del motor de persistencia y permite sustituirlo por dobles en pruebas.
Propiedades ACID
Una transacción es atómica, consistente, aislada y durable; garantiza que los cambios se apliquen completos y sobrevivan a fallos.
Heurísticas de Nielsen
Diez principios de usabilidad que incluyen visibilidad del estado, consistencia, prevención de errores, reconocimiento sobre recuerdo y ayuda al usuario.
Contraste WCAG AA
Nivel de accesibilidad que exige una relación de contraste mínima de 4.5:1 para texto normal y 3:1 para texto grande, frente al fondo.
Antipatrón Big Ball of Mud
Sistema sin estructura definida donde los módulos se acoplan sin control; surge de cambios rápidos sin diseño ni refactorización sostenida.
Patrón Circuit Breaker
Interrumpe llamadas a un servicio que falla repetidamente y pasa por estados cerrado, abierto y semiabierto para evitar fallos en cascada.
Inversión de control
El framework o contenedor controla el flujo y llama al código de la aplicación, invirtiendo la dirección tradicional de las llamadas.
Versionado semántico
Convención MAJOR.MINOR.PATCH: cambios incompatibles suben MAJOR, funcionalidad compatible sube MINOR y correcciones compatibles suben PATCH.