2.2.2 Reusabilidad, Cohesión y Acoplamiento Flashcards
(16 cards)
¿Qué es la reusabilidad?
La capacidad de un módulo o componente para ser usado en diferentes aplicaciones o contextos sin modificaciones significativas.
¿Por qué es deseable tener alta cohesión?
Porque un módulo con alta cohesión tiene funciones bien relacionadas, lo que mejora la comprensión y mantenimiento.
¿Qué tipo de acoplamiento se debe evitar?
El acoplamiento fuerte o estrecho.
Da un ejemplo de alta cohesión.
Un módulo que solo se encarga de gestionar usuarios: registrar, editar y eliminar.
Da un ejemplo de bajo acoplamiento.
Dos módulos que se comunican solo a través de una interfaz bien definida.
¿Cómo se relacionan la cohesión y el acoplamiento con la calidad del software?
Alta cohesión y bajo acoplamiento permiten mayor mantenibilidad, escalabilidad y testeo.
¿Qué pasa si hay acoplamiento alto entre módulos?
Cualquier cambio en un módulo puede afectar a muchos otros, haciendo difícil el mantenimiento.
¿Qué tipo de cohesión ocurre cuando las funciones de un módulo están agrupadas por temporalidad y no por propósito?
Cohesión temporal.
¿Qué tipo de acoplamiento se presenta cuando un módulo accede directamente a las variables internas de otro?
Acoplamiento de contenido.
¿Cómo afecta el uso excesivo de variables globales al acoplamiento?
Aumenta el acoplamiento entre módulos.
¿Qué tipo de cohesión es más deseable en un módulo?
Cohesión funcional.
¿Qué tipo de acoplamiento es más deseable en una arquitectura limpia?
Acoplamiento por datos o mensaje.
¿Cuál es una práctica común para reducir el acoplamiento entre módulos?
Usar interfaces o contratos.
¿Qué consecuencias tiene una cohesión lógica en lugar de una cohesión funcional?
Las funciones del módulo están agrupadas por tema pero no están directamente relacionadas, lo que complica la comprensión y mantenimiento.
¿Por qué un acoplamiento implícito (como variables globales) es más peligroso que uno explícito?
Porque no se ve claramente en el diseño, pero introduce dependencias ocultas difíciles de controlar y testear.
¿Cómo se puede mejorar la cohesión de un módulo sin aumentar el acoplamiento?
Dividiendo el módulo en componentes más específicos y comunicándolos mediante interfaces bien definidas.