Entornos de Desarrollo - Unidad 5 - Sesión 5: Generación de Diagramas de Clases a partir de Código (Ingeniería Inversa)
Objetivos de la sesión
- Comprender el concepto de ingeniería inversa en programación orientada a objetos.
- Utilizar herramientas para generar diagramas de clases a partir de código existente.
- Interpretar y validar los diagramas generados automáticamente.
- Practicar el análisis de código y diagramas de clases para asegurar la correspondencia entre ambos.
Estructura de la sesión
1. Introducción teórica (20 minutos)
¿Qué es la ingeniería inversa?
- Definición:
Es el proceso de analizar el código fuente para reconstruir el diseño del sistema en forma de diagramas o modelos, como los diagramas de clases UML. - ¿Por qué es útil?
- Para comprender sistemas existentes sin documentación.
- Para identificar problemas o inconsistencias en el diseño.
- Para generar documentación técnica automáticamente.
Herramientas que soportan ingeniería inversa:
- Eclipse con el plugin ObjectAid UML Explorer.
- IntelliJ IDEA con UML plugin.
- Visual Paradigm.
- NetBeans con soporte UML.
2. Ejercicio guiado: Ingeniería inversa con código proporcionado (45 minutos)
Descripción:
Los alumnos utilizarán un conjunto de clases en Java y generarán un diagrama de clases a partir de este código.
Pasos para los estudiantes:
- Revisar el código base proporcionado por el profesor.
- Utilizar herramientas UML para generar automáticamente el diagrama de clases.
- Comparar el diagrama generado con el código para identificar correspondencias e inconsistencias.
Código base para los estudiantes:
Instrucciones del ejercicio:
- Instalar y configurar ObjectAid UML Explorer (si se usa Eclipse) o cualquier herramienta UML sugerida.
- Importar el proyecto en el entorno de desarrollo.
- Generar el diagrama de clases automáticamente.
- Responder a las siguientes preguntas:
- ¿Qué relaciones aparecen en el diagrama?
- ¿El diagrama refleja correctamente la herencia, composición y asociaciones?
- ¿Qué cambios harías en el diseño de estas clases?
3. Ejercicio de análisis de diagramas (45 minutos)
Descripción:
Analizar diagramas generados automáticamente y corregir posibles inconsistencias en el diseño del código.
Diagrama de clases proporcionado:
El profesor debe preparar un diagrama generado a partir del siguiente código (o un equivalente).
Ejemplo:
Tareas para los estudiantes:
- Identificar elementos clave en el diagrama:
- Clases, atributos y métodos.
- Relaciones (herencia, composición, agregación).
- Responder preguntas de análisis:
- ¿Qué clase tiene la relación de herencia?
- ¿Dónde se encuentra la relación de composición?
- ¿Cómo se representa la asociación entre Empleado y Empresa?
- Proponer mejoras al diseño del código base, si corresponde.
4. Resolución y discusión grupal (30 minutos)
Preguntas para debate:
- ¿El diagrama generado automáticamente representa todo el diseño del sistema?
- ¿Qué elementos del diagrama podrían mejorarse o ajustarse?
- ¿Qué aprendiste al comparar el diagrama con el código base?
Demostración:
El profesor puede realizar el ejercicio en vivo, generando un diagrama de clases y corrigiendo cualquier inconsistencia en el diseño.
Apuntes para el profesor
Solución del ejercicio guiado:
Diagrama esperado:
Elementos clave:
- La herencia entre
Persona
yEmpleado
aparece correctamente representada con una flecha. - La relación de composición entre
Empresa
yEmpleado
se refleja con un rombo negro (composición).
Posibles inconsistencias a corregir:
- Los modificadores de acceso: En el código base, algunos atributos están públicos cuando deberían ser privados o protegidos.
- El uso de arrays: Podría mejorarse utilizando colecciones en el futuro.
Material necesario:
- Diagrama de clases predefinido para análisis.
- Código fuente preparado.
- Software de generación de diagramas (configurado previamente).
Comentarios
Publicar un comentario