Material docente: Desarrollo de Software - Patrones, Arquitectura, Pruebas, Desarrollo Dirigido por Modelos y Mantenimiento. Talleres de Git, Ruby, Rails, Dart y Flutter (Grado en Ingeniería Informática, UGR)
Authors: Alberto Durán-López
Type: Lesson
Published: 2026-07-31

<p>Este conjunto de materiales y presentaciones conforma el recurso docente de la asignatura "Desarrollo de Software" (Especialidad en Ingeniería del Software), impartida en el Grado en Ingeniería Informática de la Universidad de Granada (UGR) durante los cursos académicos  2023-2024 / 2024-25 / 2025-26.</p>
<p>El material está diseñado para dotar al estudiantado de competencias avanzadas en el diseño, arquitectura, patrones y garantía de calidad de sistemas software complejos, estructurándose en los cinco temas oficiales de la parte teórica de la asignatura:</p>
<p>Tema 1: Desarrollo utilizando patrones software. Aborda la clasificación e implementación práctica de patrones de diseño orientados a objetos (creacionales, estructurales y de comportamiento) para resolver problemas recurrentes de software favoreciendo la reutilización y el desacoplamiento del código.</p>
<p>Tema 2: Arquitectura Software. Centrado en los estilos y patrones arquitectónicos (monolíticos, por capas, orientados a servicios y microservicios), la especificación de vistas arquitectónicas y los principios de diseño para la construcción de sistemas software mantenibles y escalables.</p>
<p>Tema 3: Pruebas Software. Se enfoca en las técnicas de verificación y validación de sistemas software, cubriendo los distintos niveles de prueba (unitarias, de integración y de sistema), análisis de cobertura y diseño de pruebas funcionales y estructurales.</p>
<p>Tema 4: Desarrollo dirigido por modelos. Introduce la ingeniería de software basada en modelos (MDE/MDA), el uso de metamodelos y transformaciones de modelos (PIM, PSM) para la generación y abstracción de código a partir de especificaciones de alto nivel.</p>
<p>Tema 5: Mantenimiento y evolución del software. Aborda las técnicas de refactorización, ingeniería inversa, análisis de trazabilidad y gestión de la deuda técnica para garantizar la sostenibilidad y evolución continua de sistemas software existentes.</p>
<p>Seminario Práctico: Caso de Estudio en Sistemas Inteligentes de Movilidad e IoT. Aplicación práctica sobre el análisis, diseño e implementación de un sistema software completo aplicado a la gestión de datos en entornos inteligentes y movilidad rural, integrando evaluación de calidad y métricas de rendimiento.</p>
<p>__________________________________________________________________________________________________</p>
<p>Asimismo, el material docente incluye los siguientes talleres prácticos especializados:</p>
<p>Taller de Git y GitHub: Enfocado en el control de versiones distribuido, autenticación moderna con tokens de acceso personal, flujos de trabajo en local y remoto, gestión de ramas y resolución de conflictos en proyectos colaborativos.</p>
<p>Taller de Ruby: Orientado a los fundamentos sintácticos del lenguaje, programación orientada a objetos avanzada, uso de módulos como interfaces y mixins, y la implementación en Ruby del patrón de diseño Strategy.</p>
<p>Taller de Ruby on Rails: Centrado en el desarrollo de aplicaciones web backend mediante la arquitectura Modelo-Vista-Controlador (MVC), generadores automáticos, migraciones de base de datos y diseño de APIs RESTful.</p>
<p>Taller de Dart: Enfocado en la programación orientada a objetos en Dart, uso de mixins para herencia múltiple, gestión de estado y la implementación práctica de los patrones de diseño Strategy y Composite.</p>
<p>Taller de Flutter y Android Studio: Orientado al desarrollo de aplicaciones móviles multiplataforma, diseño de interfaces gráficas mediante widgets reactivos (StatefulWidgets y StatelessWidgets), integración en Android Studio y separación de la lógica de negocio de la interfaz de usuario.</p>