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.