TRABAJOS FIN DE GRADO curso: 2017-18
Desarrollo basado en DevOps de una aplicación para la gestión de incidencias de aerogeneradores |
Tecnologías Específicas
Ingeniería del Software
Descripcion y Objetivos
El objetivo principal del TFG es desarrollar bajo el marco de DevOps una aplicación que gestione la asignación de recursos humanos a la resolución de incidencias en aerogeneradores. DevOps es una filosofía de desarrollo que promueve la integración y despliegue continuos, rompiendo el muro que suele existir entre desarrollo y producción.
En cuanto a la aplicación, el objetivo es permitir a un gestor asignar técnicos que resuelvan las incidencias en un conjunto de aerogeneradores. La aplicación se inicia a partir de una lista de incidencias. Se trata de una aplicación Web que utilizará una base de datos MySQL, y utilizará comunicación en tiempo real.
Al tratarse de un TFG de la intensificación de Ingeniería del Software, se enfatizarán las competencias específicas de la intensificación. Otros objetivos del TFG serán: realizar un estudio previo de infraestructura para soportar DevOps, evaluar distintas tecnologías con las que implementar la arquitectura de la solución, adquirir destreza en la utilización de un proceso de desarrollo ágil que implica la gestión del cambio, así como implementar y evaluar la solución.
Metodología y Competencias
Para realizar el TFG se va a emplear una metodología ágil por lo que, a partir de una idea básica inicial, el proyecto evoluciona según avanza su desarrollo y se van resolviendo las necesidades mínimas (infraestructura para la integración, prueba y despliegue continuos, asignación de incidencias, gestión de técnicos). La gestión del cambio es un elemento importante de un proyecto creativo, lo que justifica la utilización de una metodología ágil.
El Plan de Trabajo incluye las etapas generales que vienen marcadas por la metodología ágil: reuniones periódicas al inicio y al final de cada sprint, realización de los objetivos de cada sprint (estudio previo, realización de pruebas de concepto, desarrollo de la arquitectura base, priorización de la funcionalidad, desarrollo de la funcionalidad priorizada, realización de pruebas, evaluación final).
Competencias de la intensificación que se pretenden cubrir:
- Capacidad para desarrollar, mantener y evaluar servicios y sistemas software que satisfagan todos los requisitos del usuario y se comporten de forma fiable y eficiente, sean asequibles de desarrollar y mantener y cumplan normas de calidad, aplicando las teorías, principios, métodos y prácticas de la Ingeniería del Software
- Capacidad para valorar las necesidades del cliente y especificar los requisitos software para satisfacer estas necesidades, reconciliando objetivos en conflicto mediante la búsqueda de compromisos aceptables dentro de las limitaciones derivadas del coste, del tiempo, de la existencia de sistemas ya desarrollados y de las propias organizaciones
- Capacidad de identificar y analizar problemas y diseñar, desarrollar, implementar, verificar y documentar soluciones software sobre la base de un conocimiento adecuado de las teorías, modelos y técnicas actuales.
- Capacidad de dar solución a problemas de integración en función de las estrategias, estándares y tecnologías disponibles
Medios a utilizar
Bibliografía sobre el proceso de desarrollo ágil (DevOps)
Herramientas de gestión del proyecto (GitHub)
Herramientas de modelado (StarUML)
Herramientas y librerías de desarrollo y test
Bibliografía
The DevOps Handbook: How to Create World-Class Agility, Reliability, and Security in Technology Organizations. Gene Kim et al. IT Revolution Press (2016)
Continuous Delivery: Reliable Software Releases through Build, Test, and Deployment Automation. Jez Humble et al. Addison-Wesley (2010)
Tutor BERMEJO LOPEZ, PABLO | Alumno SÁNCHEZ CIFO, MIGUEL ÁNGEL |
|