[en] The objective of this end-of-degree thesis is to develop a tool that allows generating source code for different applications with features from the domain of Digital Libraries. In order to achieve this goal, it was decided to perform the development of a Software Product Line (SPL) to implement the variability of Digital Libraries applications. To accomplish that, it was necessary, first of all, to perform an exhaustive analysis of the domain in order to define the requirements of the product and the generation tool, and to determine the variance of the SPL. The project began with the aforementioned analysis, which was employed as a basis to decide the most relevant features to our prototype. Thenceforth, the design, development and testing of a complete and functional application including the selected features. Finally, the corresponding variation was added to the code from the application so, among the SPL workframe, different applications can be generated. The last step was to create the application to manage the app generation tool. In the development, PostgreSQL was used for the storage of information, as well as Java, Spring and Hibernate for the implementation of the web server, and Vue.js for the web client. In the case of the software product line, spl-js-engine was used as a derivation engine for product generation, and Vue.js for the web interface designated for the generation tool. The end-of-degree thesis was managed following an iterative and incremental methodology for software development, therefore we split the development process into weekly iterations in each of which a different set of functionalities was carried out.

[es] El objetivo de este trabajo de fin de grado es desarrollar una herramienta que permita generar código fuente para diferentes aplicaciones con funcionalidades del dominio de las Bibliotecas Digitales. Para lograr este objetivo, se decidió realizar el desarrollo de una línea de productos de software (LPS) para implementar la variabilidad de las aplicaciones para Bibliotecas Digitales. Para lograr eso, primero fue necesario realizar un análisis exhaustivo del dominio para definir los requisitos del producto y la herramienta de generación, y para determinar la varianza del SPL. El proyecto comenzó con el análisis mencionado previamente, que sirvió de base para decidir las características más relevantes de nuestro prototipo. A continuación, el diseño, desarrollo y prueba de una aplicación completa y funcional que incluye las características seleccionadas. Finalmente, se agregó la variabilidad correspondiente al código desde la aplicación para que, en el marco de la LPS, se puedan generar diferentes aplicaciones. El último paso fue crear la aplicación para administrar la herramienta de generación de aplicaciones. En el desarrollo se empleó PostgreSQL para el almacenamiento de información, así como Java, Spring e Hibernate para la implementación del servidor web y Vue.js para el cliente web. En el caso de la línea de productos de software, se utilizó spl-js-engine como motor de derivación para la generación de productos, y Vue.js para la interfaz web designada a la herramienta de generación. El trabajo de fin de grado se gestionó siguiendo una metodología iterativa e incremental para el desarrollo de software, por lo tanto, dividimos el proceso de desarrollo en iteraciones semanales en cada una de las cuales se llevó a cabo un conjunto diferente de funcionalidades.