Entornos de Desarrollo - Unidad 5 - Sesión 6: Diseño de Sistemas Complejos Usando Diagramas de Clases
Objetivos de la sesión
- Diseñar sistemas más complejos combinando conceptos de herencia, composición, y agregación.
- Trabajar en un ejercicio integrador para crear un sistema completo a partir de requisitos.
- Desarrollar un diagrama de clases desde cero, implementarlo en código y validarlo con un programa principal.
Estructura de la sesión
1. Introducción teórica (20 minutos)
Construcción de sistemas complejos: claves de diseño
Identificar entidades clave:
- Determinar las clases principales a partir del enunciado del problema.
- Identificar atributos y métodos básicos de cada entidad.
Establecer relaciones entre clases:
- Analizar cómo interactúan las entidades.
- Decidir si las relaciones son de herencia, composición o agregación.
Crear el diagrama de clases:
- Representar las entidades y sus relaciones gráficamente.
Validar el diseño:
- Revisar si el diagrama es consistente con los requisitos planteados.
Mejores prácticas:
- Cada clase debe tener una responsabilidad clara (Principio de Responsabilidad Única).
- Reducir la dependencia entre clases (bajo acoplamiento).
- Preferir composición sobre herencia cuando sea posible.
2. Ejercicio guiado: Diseño de un sistema de gestión de cursos (45 minutos)
Descripción:
Diseñar un sistema de gestión de cursos para una academia.
- Los Cursos tienen un nombre, una duración y un listado de Estudiantes.
- Cada Estudiante tiene un nombre, una edad y un correo electrónico.
- Los Profesores imparten uno o más cursos.
- La academia tiene una lista de profesores y cursos.
Paso 1: Diseñar el diagrama de clases
El profesor guía a los estudiantes para construir el diagrama de clases en la pizarra o en herramientas UML.
Diagrama esperado:
Paso 2: Implementar el código en Java
Los estudiantes convierten el diagrama de clases en código siguiendo las relaciones y métodos definidos.
Código base para el profesor:
3. Actividad en grupo: Diseño colaborativo de un sistema (45 minutos)
Descripción:
Los estudiantes trabajarán en grupos para diseñar un sistema desde cero.
Problema:
Diseñar un sistema para gestionar una tienda de música:
- Los Clientes pueden alquilar Instrumentos.
- La Tienda tiene un listado de instrumentos y clientes registrados.
- Los Instrumentos tienen un tipo (cuerda, viento, percusión).
- Los Clientes pueden devolver los instrumentos después de usarlos.
Tareas del grupo:
- Crear el diagrama de clases con las entidades y relaciones necesarias.
- Validar el diseño con el profesor.
- Implementar el código en Java.
4. Resolución y cierre (15 minutos)
Debate:
- ¿Qué desafíos enfrentaron al diseñar sistemas más complejos?
- ¿Qué aprenderían de los diagramas generados automáticamente en sistemas grandes?
Avance para la siguiente sesión:
- Conceptos básicos de pruebas en programación orientada a objetos.
Apuntes para el profesor
Supervisión:
- Asegurarse de que los estudiantes distingan entre composición y agregación correctamente en sus diseños.
- Ayudar a los grupos a organizar correctamente los atributos y métodos de las clases.
Material necesario:
- Herramientas de diagramación UML (papel o software).
- Código base para ejercicios.
Comentarios
Publicar un comentario