Arquitectura de Fault Tolerance System distribuido entre UAVs 6. Conclusiones y desarrollo futuro La idea original que motivó el presente Proyecto Fin de Carrera, es crear una arquitectura para los sistemas de tolerancia de fallos, para ello no solo se ha creado nuevo software si no que se ha reutilizado de manera eficiente software ya implementado. Para refutar la buena arquitectura del proyecto se ha modificado y se ha hecho uso de una aplicación de simulación. Además se ha implementado un modelo en capas. Para este proyecto, ha sido necesario fortalecer las habilidades de investigación, enfocada en el mundo aeronáutico, y más especialmente en los sistemas de control de vuelo en los UAV. Este conocimiento al no ser adquirido en la carrera, ha sido asimilado y absorbido durante la comprensión y desarrollo del actual proyecto. El diseño base del proyecto ha sido llevado a cabo sentando las bases del conocimiento adquirido durante la carrera. Este diseño se basa en los diagramas de clases, de estados y de comunicación. Este conocimiento está encuadrado en la ingeniería del software, en el cual se ha llevado a cabo un análisis de requisitos, diseño de la arquitectura e implementación. Aunque el diseño base dista del diseño final debido a la filosofía TDD de arquitectura emergente, ha sido necesario partir de tal diseño base. Este diseño es de alto nivel, de manera que es desarrollado bajo una perspectiva top-to-bottom. Este diseño se lleva a cabo para tener una idea de que es lo que se necesita y luego, como ya se ha dicho previamente, se hace uso de TDD con una perspectiva bottom-to-top para que vaya emergiendo la arquitectura real del sistema. En cuanto al desarrollo software, el uso de metodologías ágiles ha permitido entrar en contacto con una faceta desconocida anteriormente y que ha cambiado el enfoque de trabajo de una manera positiva. Herramientas tales como Test Driven Development, integración continua, revisión de versiones, Scrum, historias de usuario, etcétera, todas relacionadas entre sí, introducen en los sistemas desarrollados flexibilidad, adaptabilidad, productividad, mayor rapidez y calidad en el código, etc. Por otra parte, el TDD tiene una estrecha relación con el buen diseño orientado a objetos y por tanto, con los principios S.O.L.I.D. Estos principios y algunos patrones de diseño también se han ido conociendo durante la realización del proyecto, tomando en consideración lo complicado de llevar a cabo el TDD y el buen diseño. No obstante, los mayores beneficios de este proyecto han sido tanto los nuevos conocimientos adquiridos sobre el desarrollo software ágil y el desarrollo de sistemas librería-servicio en tiempo real así como los vinculados a la comprensión del funcionamiento de la monitorización de entidades móviles. 144 Arquitectura de Fault Tolerance System distribuido entre UAVs Además del desarrollo software de la arquitectura, se ha aplicado ciertas garantías de calidad y de normativa ISO. Se ha llevado a cabo la vigilancia tecnológica correspondiente y se ha desarrollado el DAFO respectivo tanto del proyecto como del equipo. Para un mayor rendimiento del trabajo y del tiempo, la gestión de proyecto se encarga de la eficiencia de este, y del control en general. Este proyecto provee la arquitectura para el sistema de tolerancia de fallos que es implementado por los colaboradores de la Universidad de Sevilla. En este sentido este proyecto abre la puerta para el subproyecto Fault Tolerance System que se encuadra dentro del gran proyecto europeo EC-SAFEMOBIL, siendo esta arquitectura en cierta medida reutilizable tanto dentro de EC-SAFEMOBIL como en el departamento de Simulación y Software. Por último, se quiere mencionar que este proyecto no habría sido posible sin la infraestructura proporcionada por el Centro Avanzado de Tecnologías Aeroespaciales. Desarrollo futuro En este capítulo, se describen de forma breve las posibles líneas de trabajo futuras o desarrollo futuro de la arquitectura de sistema de tolerancia de fallos. Estas mejoras ya vislumbraban a lo largo de este documento. 1. Como primera línea de trabajo es el propio desarrollo del algoritmo de detección y corrección de errores para que pueda llegar a funcionar enmarcado en la arquitectura desarrollada. Esta arquitectura en si carece de sentido sin el sistema Fault Tolerance sin desarrollar. 2. Otra posible línea de trabajo se refiere a la ampliación de la arquitectura para que pueda admitir más entidades, tanto móviles como posibles estaciones. 3. Aunque, como ya es dicho previamente, se ha conseguido una alta escalabilidad, un posible desarrollo futuro puede ceñirse a la reestructuración de la arquitectura para que llegue a ser 100 % escalable. 145 Arquitectura de Fault Tolerance System distribuido entre UAVs 146