Objetivos de la sesión
- Aprender a generar código Java a partir de un diagrama de clases.
- Comprender el proceso de transformación de un diseño UML en una implementación de software.
- Practicar la implementación de relaciones (herencia, composición y agregación) mediante ejercicios guiados.
Estructura de la sesión
1. Introducción teórica (30 minutos)
Del diagrama al código: Pasos básicos
Análisis del diagrama de clases
- Identificar clases, atributos, métodos y relaciones.
- Determinar cuál relación corresponde a herencia, composición o agregación.
Creación de las clases en código:
- Traducir cada clase del diagrama en una clase Java.
- Implementar los atributos y métodos según se detalla en el diagrama.
Implementación de las relaciones:
- Herencia: Usar
extends
. - Composición: Crear instancias dentro de la clase contenedora.
- Agregación: Recibir las instancias desde fuera (por parámetros o setters).
- Herencia: Usar
Pruebas y uso:
- Crear un programa principal (main) que permita instanciar y probar las clases.
Herramientas que facilitan la generación automática de código (opcional, breve mención)
Si el entorno de desarrollo tiene herramientas de modelado UML, se puede usar la función de "generar código". Algunos ejemplos:
- Eclipse UML Generator
- IntelliJ IDEA con el plugin UML Designer
- Visual Paradigm
Esto se explorará más adelante en sesiones avanzadas.
2. Ejercicio guiado 1: Implementar un sistema basado en un diagrama (45 minutos)
Descripción:
Diseñar e implementar un sistema de gestión de biblioteca.
- Una Biblioteca contiene Libros (composición).
- Cada Libro tiene un Autor (agregación).
- Autor y Libro comparten un método para mostrar su información.
Tareas para los estudiantes:
- Estudiar el diagrama de clases proporcionado.
- Implementar las clases en Java.
- Crear un programa principal que:
- Cree una biblioteca con varios libros.
- Asocie autores con libros.
- Imprima la información de la biblioteca.
Diagrama de clases (proporcionado a los alumnos):
Solución para el profesor:
- Código en Java:
3. Ejercicio guiado 2: Relaciones avanzadas (1 hora)
Descripción:
Implementar un sistema para gestionar una tienda de videojuegos.
- Una Tienda tiene una lista de Videojuegos (composición).
- Cada Videojuego pertenece a una Categoría (agregación).
- Implementar métodos para mostrar los videojuegos de una categoría específica.
Tareas para los estudiantes:
- Diseñar el diagrama de clases (guiado por el profesor).
- Implementar el código Java.
- Crear un programa que:
- Cree una tienda con varios videojuegos.
- Permita buscar videojuegos por categoría.
Diagrama de clases: (Se construye colaborativamente con los alumnos durante la clase)
Solución para el profesor:
- Código en Java:
4. Resumen y preguntas finales (15 minutos)
Preguntas clave:
- ¿Cómo diferenciar entre composición y agregación en un problema?
- ¿Qué pasos seguirías para convertir un diagrama de clases en código?
Avance para la siguiente sesión:
- Generación inversa: crear diagramas de clases a partir de código existente.
Apuntes para el profesor
- Supervisar el diseño del diagrama en el Ejercicio 2 y asegurarse de que los estudiantes incluyan correctamente las relaciones y métodos.
- Priorizar la correcta implementación de los constructores y el uso de los métodos
mostrarInfo()
para respetar la encapsulación y claridad del código.
Comentarios
Publicar un comentario