[en] Currently, we are in an environment of continuous data generation from various sources, such as IoT devices, social networks, commercial transactions, and more. This explosion of data has led to a scenario where a vast amount of information is produced every second. However, simply collecting data is not enough. The challenge relies in the analysis and understanding of this data. Data-intensive applications are now essential for businesses and organizations. These applications not only allow managing the vast amount of generated information, but also extracting valuable insights that drive informed decision-making and innovation in various sectors. From the field of medicine to marketing, data-intensive applications offer a competitive advantage by unraveling complex patterns, predicting future trends, and optimizing processes. In this context, the primary goal is to develop and deploy applications quickly that can efficiently manage the large volume and variety of data becomes. Therefore, it is imperative to find methods and tools that streamline the development and implementation of these applications. This involves eliminating entry barriers and empowering a diverse range of professionals to fully leverage the potential of data in their respective fields of work. The creation of data-intensive applications is not without challenges. One of the main problems is in the inherent complexity of development processes, which often require deep knowledge in various areas of computer science like data mining, machine learning, and distributed computing. This complexity can be decisive for non-technical professionals, thus limiting the adoption and use of these applications across a wide range of domains. Moreover, the complexity increases with the advanced configuration of data-intensive tools to address specific problems, along with the necessity of using numerous tools tailored to the requirements of each domain. Consequently, many organizations face the barrier of the learning curve, high implementation costs, and a lack of specialized resources, limiting their ability to take advantage of their data. The aim of this Ph.D. Thesis is to democratize the process of creating such applications by adopting a workflow-based approach, providing professionals with tools to design, visualize, and execute data analysis processes more simply and effectively. These data-intensive workflows allow the definition of a logical sequence of tasks and operations, from data acquisition and cleaning to report generation and visualizations. Thus, data-intensive workflows emerge as a key tool to simplify the development of data-driven applications, enabling a wide range of professionals to create innovative and efficient solutions in their respective domains. In this Ph.D. Thesis, a wide variety of approaches and techniques have been explored, such as model-driven software development, and low-code and no-code development platforms. Firstly, a domain-specific modeling language for data-intensive workflows has been proposed. This tool-agnostic language provides flexibility and ease of use to domain experts when defining data-intensive applications at a high level of abstraction. Furthermore, its abstract syntax has been formalized following the principles of model-driven software engineering, using model transformations to achieve interoperability between different workflow-based tools. Next, efforts have been focused on developing a tool to generate domain-specific data-intensive applications. This tool allows data scientists to semi-automatically generate domain-specific tools oriented to domain experts' requirements and needs, without the need for programming knowledge, or configuring and adapting data processing methods. This generator tool is based on the principle of separation of concerns, and makes use of model-driven software engineering techniques. Finally, the proposal's applicability is demonstrated by generating a tool for analyzing academic performance in the educational data mining domain. This tool enables teachers and academic managers to analyze their students' data, whether from learning management platforms (such as Moodle or Canvas) or from massive open online courses (MOOCs). The practicality of this tool is evaluated on a series of specific use cases, such as predicting passes and failures, or predicting dropout rates in early stages.

[es] En la actualidad estamos inmersos en un entorno de continua generación de datos provenientes de diversas fuentes, como dispositivos IoT, redes sociales, transacciones comerciales y más. Esta explosión de datos ha dado lugar a un escenario donde se produce una vasta cantidad de información cada segundo. Sin embargo, el simple hecho de recolectar datos no es suficiente. La verdadera riqueza se encuentra en el análisis y comprensión de estos datos. Las aplicaciones intensivas en datos se han convertido en una necesidad para empresas y organizaciones. Estas aplicaciones permiten no solo gestionar la vasta cantidad de información generada, sino también extraer conocimientos valiosos que impulsan la toma de decisiones informadas y la innovación en diversos sectores. Desde el ámbito de la medicina hasta el marketing, las aplicaciones intensivas en datos ofrecen una ventaja competitiva al desentrañar patrones complejos, prever tendencias futuras y optimizar procesos. En este contexto, la capacidad de desarrollar y desplegar rápidamente aplicaciones que sean capaces de procesar el gran volumen y variedad de datos de manera eficiente se convierte en un objetivo primordial. El reto aquí es encontrar métodos y herramientas que simplifiquen el desarrollo y la implementación de estas aplicaciones, eliminando las barreras de entrada y permitiendo que un amplio espectro de profesionales pueda aprovechar al máximo el potencial de los datos en sus respectivos campos de trabajo. La creación de aplicaciones intensivas en datos no está exenta de desafíos. Uno de los principales problemas radica en la complejidad inherente de los procesos de desarrollo, que a menudo requieren de conocimientos profundos en diversas áreas de la informática, como la minería de datos, el aprendizaje automático y la computación distribuida. Esta complejidad puede resultar determinante para profesionales no especializados en tecnología, limitando así la adopción y el uso de estas aplicaciones en un amplio espectro de dominios. Además, la configuración avanzada de herramientas intensivas en datos para adaptarlas a problemas específicos y la necesidad de utilizar un gran número de herramientas dependiendo de las necesidades de cada dominio a˜naden una capa adicional de dificultad. En consecuencia, muchas organizaciones se enfrentan a la barrera de la curva de aprendizaje, los altos costos de implementación y la falta de recursos especializados, lo que limita su capacidad para aprovechar al máximo el potencial de sus datos. Esta tesis busca la democratización del proceso de creación de este tipo de aplicaciones al adoptar un enfoque basado en flujos de trabajo, con el que los profesionales dispongan de herramientas con las que puedan diseñar, visualizar y ejecutar procesos de análisis de datos de manera más sencilla y efectiva. Estos flujos de trabajo permiten la definición de una secuencia lógica de tareas y operaciones, desde la adquisición y limpieza de datos hasta la generación de informes y visualizaciones. Así, los flujos de trabajo intensivos en datos se presentan como una herramienta clave para simplificar el desarrollo de aplicaciones basadas en datos, permitiendo que un amplio espectro de profesionales pueda crear soluciones innovadoras y eficientes en sus respectivos dominios. Durante el desarrollo de esta tesis doctoral se ha explorado el uso de una gran variedad de enfoques y técnicas, como el desarrollo de software dirigido por modelos y el desarrollo de plataformas de desarrollo low-code y no-code. En primer lugar, se ha propuesto un lenguaje de modelado específico del dominio de los flujos de trabajo intensivos en datos. Este lenguaje, agnóstico a cualquier herramienta, proporciona flexibilidad y practicidad a los expertos del dominio a la hora de definir aplicaciones intensivas en datos con un alto nivel de abstracción. Además, siguiendo los preceptos de la ingeniería del software dirigido por modelos, su sintaxis abstracta ha sido formalizada en términos de metamodelos, haciendo uso de transformaciones de modelos para alcanzar la interoperabilidad entre distintas herramientas basadas en flujos de trabajo. A continuación, se ha trabajado en una herramienta generadora de herramientas intensivas en datos específicas de dominio. Esta herramienta permite a los científicos de datos generar semiautomáticamente herramientas específicas de dominio orientadas a los requisitos y necesidades de los expertos de dominio, sin necesidad de conocimientos en programación o en la configuración y adaptación de métodos de procesamiento de datos. Esta herramienta generadora se basa en el principio de separación de responsabilidades y hace uso de técnicas de la ingeniería de software dirigida por modelos. Finalmente, se demuestra la aplicabilidad de la propuesta con la generación de una herramienta para el análisis del rendimiento académico en el dominio de la minería de datos educacional. Esta herramienta permite, a profesores y gestores académicos, el análisis de los datos que disponen sobre sus estudiantes, ya sea procedentes de plataformas de gestión del aprendizaje (como Moodle o Canva), como de cursos masivos en línea (MOOC por sus siglas en inglés). La practicidad de esta herramienta es evaluada sobre una serie de casos de uso especifico, como la predicción de aprobados y suspensos, o la predicción de la tasa de abandono en fases tempranas.