Acoplamiento, Cohesión y Principios del Diseño Orientado a Objetos para Interfaces Gráficas
Enviado por Programa Chuletas y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 5,75 KB
Niveles de acoplamiento ideales y ejemplos de cohesión
¿Cuáles son los niveles de acoplamiento ideales para un buen diseño orientado a objetos? Describa las ventajas que soporta el software. Dé ejemplos de una clase que tenga cohesión funcional y una clase que no tenga buen diseño de cohesión.
Los niveles de acoplamiento ideales para un diseño orientado a objetos son los más bajos posibles. Esto significa que debe existir entre clases la menor cantidad de dependencias y relaciones necesarias. El bajo acoplamiento es deseable porque:
- Hace el modelo más fácil de entender.
- Proporciona flexibilidad ante cambios futuros.
- Aumenta la independencia entre clases, facilitando pruebas y mantenimiento.
- Reduce el riesgo de que cambios en una parte del sistema afecten a otras partes.
Ejemplo de cohesión pobre: Una clase con poca cohesión es aquella cuyos elementos y operaciones no están completamente relacionados con el concepto central de la clase. Por ejemplo, una clase Empleado que calcula los ingresos totales de su área de trabajo en la empresa. Ese cálculo debería realizarse en la clase Área y no en Empleado, porque mezclar responsabilidades reduce la cohesión y complica la mantenibilidad.
Productos del diseño de interfaz externa para una interfaz gráfica de usuario
¿Cuáles son los productos del diseño de interfaz externa para una interfaz gráfica de usuario?
Los productos típicos del diseño de interfaz externa para una interfaz gráfica de usuario incluyen:
- Panorama del sistema: Una descripción escrita que orienta al lector sobre el objetivo y la función del sistema completo.
- Panorama de la aplicación: Una descripción escrita para cada aplicación contenida dentro del sistema, que define las características disponibles en dicha aplicación.
- Diagrama de navegación de ventanas: Para cada aplicación, un diagrama de navegación indica qué ventanas están disponibles y muestra las rutas de navegación posibles entre ellas.
- Disposición de ventanas: Para cada ventana del diagrama de navegación, una disposición muestra la manera en la que ésta aparecerá ante el usuario (layout, posición de controles, etc.).
- Descripción de la ventana: El texto que acompaña a cada disposición define claramente la función y características de la ventana, de forma que un usuario potencial pueda comprender el comportamiento del diseño.
- Mini-especificación de ventana: La especificación técnica de la ventana define el comportamiento para la apertura y cierre de la ventana y la activación y ejecución de cada botón, control y elemento de menú.
- Especificación de campo: Define los campos y ediciones asociadas para todos los datos que aparecen en la ventana. La especificación de campo debe incluir una mini-especificación sobre la manera en que se adquieren y validan los datos.
Principios que fundamentan un diseño orientado a objetos de calidad
Explique los principios que fundamentan un diseño orientado a objetos de calidad
Los principios clave incluyen:
- Correspondencia: Debe establecerse una correspondencia entre una clase y su almacenamiento persistente. Debe existir una correspondencia de esquemas entre ambos.
- Identidad de objeto: Los registros y los objetos deben tener un identificador único que permita relacionar fácilmente los registros con los objetos y evitar duplicados inapropiados.
- Conversor de base de datos: Un conversor de base de datos (o mapeador) es responsable de la materialización y desmaterialización de objetos desde y hacia el almacenamiento persistente.
- Materialización y desmaterialización: La materialización es el acto de transformar una representación de datos no orientada a objetos, almacenada de forma persistente, en objetos. La desmaterialización es la actividad opuesta.
- Cache: Los servicios persistentes suelen utilizar una caché para almacenar los objetos materializados por razones de rendimiento.
- Estado de transacción de los objetos: Es útil conocer el estado de los objetos en función de su relación con la transacción actual (p. ej., nuevo, modificado, persistido, eliminado).
- Operaciones de transacción de los objetos: Deben definirse claramente las operaciones relacionadas con transacciones sobre los objetos, como confirmar (commit) y deshacer (rollback), y cómo afectan al estado del objeto.
- Operaciones de transacción: Las operaciones típicas incluyen confirmar y deshacer, aplicadas de forma coherente a los objetos para mantener la integridad de los datos.
- Materialización perezosa (lazy loading): No todos los objetos deben materializarse de una vez; una instancia particular solo se materializa bajo demanda, cuando se necesita, para optimizar recursos.
- Proxies virtuales: La materialización perezosa puede implementarse mediante una referencia inteligente conocida como proxy virtual, que actúa como sustituto del objeto real hasta que se requiere su carga completa.
Notas adicionales
La aplicación coherente de estos principios mejora la calidad del diseño orientado a objetos, facilita la mantenibilidad, reduce el acoplamiento innecesario, incrementa la cohesión y mejora el rendimiento mediante técnicas como caché y materialización perezosa.