[en] This thesis proposes a methodology to support the development of quality Internet of Things (IoT)-based Systems (IoTSs). This methodology, called Test-Driven Development Methodology for IoT-based Systems (TDDM4IoTS), consists of a set of 11 stages that include tasks ranging from preliminary analysis to maintenance of an IoTS. Along the development process, models, tests and software components are expected to be automatically generated from system requirement specifications expressed as extended use cases and models designed in previous stages, as it is usually carried out in Model-Driven Engineering. In consequence, a companion Computer-Aided Software Engineering (CASE) tool for TDDM4IoTS has been designed. This tool, called Test-Driven Development Tool for IoT-based Systems (TDDT4IoTS), is able to automatically generate UML class diagrams from extended use cases annotated through a specifically designed marking language. Moreover, in case the IoTS to be developed requires customdesigned electronic devices, the tool also allows to design diagrams of the electronic components that may conform such devices. From those diagrams, the tool generates a list of materials to be acquired and a preliminary firmware to be uploaded to the device itself, so as to accomplish the requirements of the overall IoTS to be developed. Finally, the tool is able to automatically generate software components and tests to facilitate and improve end-user application development targeting mobile devices and/or Web deployments. The methodology and the tool have been designed following an extensive study of the state of the art regarding methodologies, tools, platforms and architectures supporting the development of IoTSs. The result of such study showed that the methodologies and tools used by other authors were either direct applications of existing methodologies or tools, lacking specific support towards developing IoTSs, or ad-hoc solutions that were only used by the authors themselves, and vastly undocumented. Consequently, both TDDM4IoTS and TDDT4IoTS are proposed in order to fill that scientific and technical gap. Both TDDM4IoTS and TDDT4IoTS have also been validated through their application to the development of several IoTSs for different domains: care for dependent elderly, smart medicine dispenser, classroom access control and resource management, indoor plant care, indoor air quality control and guiding visually impaired people. Moreover, a survey has been conducted to system engineering students who have used them to develop their academic projects. The results were overwhelmingly positive, with a high degree of satisfaction among the participants. Finally, it is important to highlight that the thesis presented herein is the result of a compendium of articles published by the candidate and his supervisors in several quality journals and international forums. Those publications demonstrate the quality of the proposals presented and their acceptance by the scientific community.

[es] Esta tesis propone una metodología para respaldar el desarrollo de Sistemas basados en Internet de las Cosas (IoT) de calidad. Esta metodología, llamada Metodología de Desarrollo Dirigido por Pruebas para Sistemas basados en IoT (TDDM4IoTS), consta de un conjunto de 11 etapas que incluyen tareas desde el análisis preliminar hasta el mantenimiento de un IoTS. A lo largo del proceso de desarrollo, se espera que se generen automáticamente modelos, pruebas y componentes de software a partir de las especificaciones de requisitos del sistema expresadas como casos de uso extendidos y modelos diseñados en etapas anteriores, como se hace comúnmente en Ingeniería Dirigida por Modelos. En consecuencia, se ha diseñado una herramienta de Ingeniería de Software Asistida por Computadora (CASE) para TDDM4IoTS. Esta herramienta, llamada Herramienta de Desarrollo Dirigido por Pruebas para Sistemas basados en IoT (TDDT4IoTS), puede generar automáticamente diagramas de clases UML a partir de casos de uso extendidos anotados a través de un lenguaje de marcado diseñado específicamente. Además, en caso de que el IoTS a desarrollar requiera dispositivos electrónicos diseñados a medida, la herramienta también permite diseñar diagramas de los componentes electrónicos que pueden conformar dichos dispositivos. A partir de esos diagramas, la herramienta genera una lista de materiales a adquirir y un firmware preliminar para cargar en el dispositivo mismo, para cumplir con los requisitos del IoTS global a desarrollar. Finalmente, la herramienta es capaz de generar automáticamente componentes de software y pruebas para facilitar y mejorar el desarrollo de aplicaciones dirigidas a dispositivos móviles y/o implementaciones web por parte del usuario final. La metodología y la herramienta se han disenado tras un extenso estudio del estado del arte en metodologías, herramientas, plataformas y arquitecturas que respaldan el desarrollo de IoTS. El resultado de dicho estudio mostró que las metodologías y herramientas utilizadas por otros autores eran aplicaciones directas de metodologías o herramientas existentes, careciendo de un respaldo específico para el desarrollo de IoTS, o soluciones ad-hoc utilizadas únicamente por los propios autores y ampliamente no documentadas. En consecuencia, tanto TDDM4IoTS como TDDT4IoTS se proponen para llenar ese vacío científico y técnico. Ambas TDDM4IoTS y TDDT4IoTS también se han validado mediante su aplicación al desarrollo de varios IoTS para diferentes dominios: cuidado de personas mayores dependientes, dispensador de medicamentos inteligente, control de acceso y gestión de recursos en aulas, cuidado de plantas de interior, control de calidad del aire interior y guía para personas con discapacidad visual. Además, se realizo una encuesta a estudiantes de ingeniería de sistemas que las utilizaron para desarrollar sus proyectos académicos. Los resultados fueron abrumadoramente positivos, con un alto grado de satisfacción entre los participantes. Finalmente, es importante destacar que la tesis presentada aquí es el resultado de un compendio de artículos publicados por el candidato y sus supervisores en varias revistas de calidad y foros internacionales. Estas publicaciones demuestran la calidad de las propuestas presentadas y su aceptación por parte de la comunidad científica.