Test-Driven Development Tool for IoT Systems
Abstract
Grant PID2022-139297OB-I00 funded by MICIU/AEI/10.13039/501100011033 and by ERDF/EU
Full text
58 IEEE SOFTWARE | PUBLISHED BY THE IEEE COMPUTER SOCIETY This work is licensed under a Creative Commons Attribution- NonCommercial-No Derivatives 4.0 License. For more information, see https://creativecommons.org/licenses/by-nc-nd/4.0/. FE ATU RE: IOT TEST-DRIVEN DEVELOPMENT RECOGNIZING THE TRANSFOR- mative potential of the Internet of Things (IoT) across various domains, it is worth noting that several challenges, such as a lack of standardization, system interoperability, and the high computational complexity of AI, hinder its adoption.1 Rapid technological progress demands accelerated IoT System (IoTS) development to stay aligned with current trends. Efficient IoTS development in sectors like health care, security, and energy can lead to significant improvements.2 Therefore, increased investment and commitment to developing robust IoT solutions are essential for effective digital transformation. IoTS development has advanced with the establishment of best practices and tools. Methodologies such as INTER-Meth, Servus, and TDDM4I- oTS have been developed1 with the latter aligning with system and software lifecycles3 and providing a systematic framework for IoTS development. However, no tool currently provides comprehensive support for both device and software development for IoTSs. Tools like Tinkercad Circuits and Arduino IDE enhance IoT device modeling, testing, and verification,4 but they lack alerts for the misuse of component input/outputs, which is particularly important for novice developers and can lead to device malfunctions. Additionally, Savio et al.5 analyzed 13 open source software tools for modeling systems using Unified Modeling Language (UML) diagrams, including ArgoUML, StarUML, UMLet, DiaUML, BOUML, Violet, UML Designer, Modelio, NClass, PlantUML, Umbrello, Open ModelSphere, and Papyrus. Their study concluded that StarUML and UML Designer are the most effective Digital Object Identifier 10.1109/MS.2024.3479880 Date of publication 17 October 2024; date of current version 10 June 2025. Test-Driven Development Tool for IoT Systems Gleiston Guerrero-Ulloa , State Technical University of Quevedo and University of Granada Du ´val Carvajal-Suárez , Metaenlace and University of Granada Paulo Novais , University of Minho Miguel J. Hornos and Carlos Rodríguez-Domínguez , University of Granada // Test-Driven Development Tool for Internet of Things (IoT) Systems is a comprehensive tool that streamlines IoT system development within a test-driven framework, enhancing reliability and efficiency. By addressing interoperability and standardization challenges, it enables scalable, robust applications. Usability evaluations and future enhancements, including AI-driven automation, underscore its contribution to IoT. // ©SHUTTERSTOCK.COM/PHOTON PHOTO
JULY/AUGUST 2025 | IEEE SOFTWARE 59 tools for creating modeling diagrams. However, these tools require developers to create each diagram separately, which risks a lack of logical consistency between different diagrams. To overcome these limitations, we introduce Test-Driven Development Tool for IoTSs (TDDT4IoTS). This tool enables the creation of behavioral models, such as use case diagrams (UCDs) and sequence diagrams (SDs), as well as structural models like class diagrams (CDs), which are automatically generated from requirements gathered through detailed use cases (DUCs). Requirement acquisition is critical in software development.1,3,6,7,8,9,10 Furthermore, TDDT4IoTS facilitates the generation of unit tests from DUCs. Related Work This section reviews various tools that can accelerate the development process of software applications, including modeling and code generation (CodGen), as well as tools for IoT hardware design and configuration. Node-RED’s graphical interface and visual programming facilitate IoTS development by enabling prototyping and application development through visual data flows and services. However, Node-RED is limited to hardware management and does not support the development of software applications for user interaction or data monitoring.11 ReqMIoT12 is an integrated modeling environment designed to facilitate the elicitation, analysis, and specification of IoTSs. It provides a domain-specific textual use case (UC) modeling environment and automated mapping support for generating UCDs, partial domain models, and summary tables. However, its scope is limited to the requirements analysis and specification stage of the IoTS development process. In contrast, RM2DM13 is a tool for generating object-oriented design models for enterprise information systems, using validated requirements models as input. By focusing on the transition from requirements to the design phase, RM2DM enables the generation of comprehensive CDs and SDs, capturing both the static structure and dynamic behavior of the system. The main advantage of RM2DM is its ability to automate the design process; however, it is not specifically focused on IoTSs. Various software modeling (Soft- Mod) tools (e.g., ArgoUML, StarUML, UMLet, and so on) allow for the creation of UML diagrams and CodGen. Some other similar tools (e.g., Violet, UML Designer, and so on) lack the latter functionality. The need to create separate diagrams in these tools leads to inefficiency when dealing with changes in system requirements.1,6 In terms of CD modeling, approaches have been explored for generating UCDs and CDs from natural language text using machine learning or heuristic rules.6 However, challenges arise due to different semantic meanings of the same text fragment, which hinders precise machine understanding. Complex infrastructure requirements also limit widespread adoption. Dawood and Sahraoui7 provide a review of CD generation using natural language processing, highlight merits and demerits of 13 different approaches. TDDT4IoTS stands out as a tool for IoTS development by integrating a systematic approach based on test-driven development (TDD), ensuring robustness and reliability through early error detection. This tool not only addresses key issues of interoperability and communication but also facilitates the automation of behavior modeling and structural diagrams, something that previous tools like Node-RED or ReqMIoT do not achieve comprehensively. The primary contribution of TDDT4IoTS lies in its ability to automatically generate unit tests from DUCs, setting it apart from the aforementioned tools, which primarily focus on graphical design or requirements specification. Unlike existing tools that tend to fragment the development process between hardware configuration and application development, TDDT4IoTS provides a comprehensive solution for both aspects, supporting both experienced and novice developers. This innovation adds significant value, particularly in educational contexts or for novice developers, surpassing the limitations of tools like UMLet and StarUML, which do not offer support for the integration of physical components with software. Furthermore, TDDT4IoTS innovates by offering customizable component configurations and data exchange methods, addressing the challenges faced by other tools in terms of component management and communication in IoTSs. TDDT4IoTS TDDT4IoTS is a web-based tool built using a layered architecture, designed with microservices and cloud computing for scalability and interoperability across various platforms.14 Optimized database and application code, along with efficient client-side resource usage, reduce server workload. This tool supports project planning, progress monitoring, and IoTS development, facilitating both the modeling and generation of software for user
60 IEEE SOFTWARE | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE FE ATU RE: IOT TEST-DRIVEN DEVELOPMENT interaction with IoT devices (IoTDs). It also enables IoTD design and generates configuration code.8,9,10 Its source code and user manual are available on GitHub at https:// github.com/dcarvajals/TddT4IoTs. User Management and Authentication User authentication and access control are essential components of TDDT4IoTS. Users are identified by their email addresses, which serve as unique usernames. Passwords are encrypted and securely stored in PostgreSQL. Forgotten passwords are reset via an emailed code.2 Project management features enable team members to share projects, facilitating collaboration and controlling access. Invitations are accessible through the user’s dashboard or, for nonusers, via email, ensuring streamlined access to shared resources. TDDT4IoTS Layered Architecture The architecture of the TDDT4IoTS application is shown in Figure 1. It follows a four-layer client/server architecture: the front-end layer (client), the middleware layer, the business layer or server, and the data management layer. Front-End Layer UML Modeling JsUml2 Armadillo IoT Device GoJs Login Process Apache Tomcat 10.1.23 Download the generated code from TDDT4IoTS and enable burning it onto the Arduino board. IoT Daemon Token Validate Application Programming Interface (APIs REST) Java App (Jakata EE) Apache Tomcat 10.1.23 Oracle Open JDK 19 PostgreSQL 14 Database (Data Users, Projects and Component) Layer Application Access Component Consume Security Module JSON Files (Class diagrams, Use case diagrams, IoT components, IoT diagrams) WebSocket Server Events: OnOpen() OnMessage() OnClose() CMD Commands Angular CLI 15.1.6 Spring CLI 2.7.3 HttpHttp Bussines Layer Data Layer REST REST Json Web Token (JWT) User Interaction Planning WebSocket Client Middleware Layer App TDDT4I0TS AngularJs - Bootstrap - Jquery Store2 - Sweetalert2 - Tosatr FIGURE 1. Architecture of the TDDT4IoTS application, structured as a four-layer client/server architecture: The client (front end) uses HTML5, CSS3, and JavaScript; the middleware is managed by Apache Tomcat and RESTful web services in JSON format; the server contains business logic developed in Java with JDK and Maven, and data access is handled through the Java Persistence API; and the data management layer utilizes PostgreSQL and JSON files. Additionally, various JavaScript frameworks and libraries, such as AngularJS, jsUML2, Bootstrap, jQuery, Store2, SweetAlert2, Toastr, and GoJS, enhance interactivity, styling, and data visualization in the user interface.
JULY/AUGUST 2025 | IEEE SOFTWARE 61 TDDT4IoTS is an open source and free tool under the MIT License, which permits use, modification, and distribution. It employs various open source technologies, including GoJS for data visualization, which offers free usage for open source projects under certain conditions. For more details on GoJS licensing, please refer to the documentation provided by Northwoods Software. Front-End Layer. The technologies used in the Front-End layer not only facilitate the creation of user-friendly interfaces but also accessibility across various devices. This layer leverages HTML5, CSS3, and JavaScript to enhance interactivity and functionality in web pages. Additional, frameworks and libraries such as AngularJS, jsUML2, Bootstrap, jQuery, Store2, SweetAlert2, Toastr, and GoJS streamline development by offering reusable components, UML modeling tools, responsive styles, DOM manipulation, notifications, and data visualization. Middleware Layer. Security is managed using JavaScript Object Notation (JSON) Web Token (JWT), which facilitates secure access to web services. Communication between client and server is handled through RESTful web services in JSON format. TDDT4IoTS allows developers to collaborate on the design of the same device, with real-time updates synchronized via WebSockets, which are also used to upload code to the Arduino board. Apache Tomcat is used to deploy and run the web application. Arduino, being the most popular platform for developing IoTSs, was prioritized in this initial version of TDDT4IoTS.8,9,10 As a result, the tool is equipped to work with Arduino boards and compatible devices. Business Layer. The business logic of the TDDT4IoTS application is developed in Java using Java Development Kit (JDK). Maven is utilized as a project management tool to organize the project and streamline its lifecycle, including building, compiling, and managing dependencies. Additionally, Java classes are used in conjunction with Angular CLI and Spring CLI to generate projects. Data Layer. The Java Persistence application programming interface (API) is used to access and manipulate data in relational databases, with Java Database Connectivity facilitating communication between the business and persistence layers. PostgreSQL is employed to manage user and project data, while component and diagram data are stored in JSON files. Together, these tools and technologies help build efficient, visually appealing, and feature-rich web applications. They provide a well-organized project structure, simplify dependency management, and enable seamless clientserver interaction. The application is designed modularly, with distinct modules for planning, modeling, and IoTD management. Modular Design of TDDT4IoTS The tool is modularly designed and consists of three main modules, explained in the following subsections. The latter two modules are dedicated to SoftMod and IoTD development, respectively. Planning Module. In this module, project members and their roles are defined. Project deliverables are outlined, each contributing to 100% of the project’s total scope. Deliverables are broken down into activities, each assigned a percentage of the overall deliverable. Tasks are then assigned to developers, including the project facilitator, with task percentages summing to 100% of the corresponding activity. Progress tracking is conducted to ensure the successful completion of each deliverable. UML Modeling Module. IoTS development is divided into two modules. In the UML modeling module, the process begins with creating a UCD, representing either high-level or detailed requirements. Each UC is documented using a symbol language (SymLan) to highlight key elements for generating the corresponding CD. The more detailed the UCs, the more effective the tool becomes. Once the UCs are detailed, the tool automatically generates the CD, followed by the creation of unit tests by specifying evaluation values for the IoTS. The project is then generated in Java for the back end (using PostgreSQL, SQL Server, or MySQL for the database) and Angular for the front end, following the Maven structure with Spring Boot. The generated code includes entity classes, data access classes, and RESTful web services or Spring Boot controllers. TDDT4IoTS also allows CDs to be created from scratch, with required elements stored in JSON files, ensuring compatibility and easy integration with other tools and platforms. IoT Module. The IoT module allows developers to add new components to their physical devices, specifying the necessary code, including configuration libraries. Developers can define pin types (analog or digital)
62 IEEE SOFTWARE | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE FE ATU RE: IOT TEST-DRIVEN DEVELOPMENT and functionality (input/output). TDDT4IoTS offers a wizard interface for configuring these components, including dual-function pins and setting parameters for edge processing or cloud transmission. For data transmission components like Wi-Fi or Bluetooth, developers can set parameters for data exchange via HTTP, web services, or custom protocols like WebSockets. Simple data entries enable input for specifications like URLs and credentials. Protocols such as Zigbee, WirelessHART, and Message Queuing Telemetry Transport (MQTT), among others, are also supported.14 The IoT daemon uploads control code to boards, interacts with the hardware, and is downloaded locally to the developer’s computer. Case Studies Several studies presented at prominent conferences and published in scientific journals have referenced the TDDT4IoTS tool for system development, including IdeAir,8 Ñawi,9 and P4L.10 TDDT4IoTS has been used for designing and configuring IoTDs and for developing the front end (Angular) and back end (Spring Boot with Java) of user applications. As a case study for this article, we present the P4L system, version 2.0, which provides information on plant status and environmental pollution levels. The development results using our tool are shown in Figure 2, illustrating key user interface (UI) screenshots: (a) displays the UI for creating and viewing UCs, actors, and their relationships (b) shows the list of the SymLan symbols and their meanings for use in DUCs (c) shows a DUC, where SymLan is used to specify details such as the description, preconditions, postconditions, and action sequences (d) displays a CD automatically generated from annotated UCs, depending on the detail and correct use of SymLan (e) allows developers to specify input data for methods to generate the tests required before refactoring, a common task in TDD (f) shows part of the back-end project structure edited in NetBeans 18. Developers can generate and download Java code using Spring Boot for the back-end and Angular for the front-end, packaged in a zip file with a test package, compatible with popular IDEs such as NetBeans, Eclipse, and IntelliJ IDEA. In projects developed using TDDT4IoTS, an average of 95% of the generated code is utilized, with discarded code generally pertaining to nonentity classes in UCs that do not require persistence management. Another notable advantage of TDDT4IoTS is its support for the design and CodGen of IoTDs. Figure 3 displays several UIs related to IoTD development. TDDT4IoTS allows developers to add new electronic components to their IoTDs. Adding a new device involves uploading the component’s vectorized image [see figure 3(a)], which will be used by the graphical UI for representation or preview. Developers must specify the names and types of the component’s input and output ports, along with the signal types they handle [see figure 3(b)]. An administrator must approve the component’s inclusion for use by the entire TDDT4IoTS community. For communication components, developers can specify the communication protocol (e.g., Wi-Fi, Bluetooth, and so on) and the data exchange protocol (e.g., REST, WebSockets, and so on) to generate code that reduces the time and effort required to write the complete program controlling the device, including classes, libraries, and functions. Figure 3(c) shows version 2.0 of P4L, illustrating the use of these new components in IoTD development. Evaluation of TDDT4IoTS The TDDT4IoTS tool was evaluated using the 10 questions from the system usability scale (SUS) questionnaire by Brooke,15 correlating the results with developers’ experiences. Additionally, the experience of developers who have extensively used TDDT4IoTS was also evaluated. Usability Evaluation Table 1 presents the statistics for each SUS question, reflecting developers’ perceptions of the usability of TDDT4IoTS. It includes central tendency measures, analysis of variance (ANOVA) data, and the correlation between “Experience in using the tool” and each question (1–10), with values rounded to two to four decimal places. The SUS questionnaire provides valuable insights into users’ perceptions of TDDT4IoTS. The survey targeted first- and second-year software engineering students to evaluate the tool’s intuitiveness and ease of use, minimizing potential biases from experienced users. The overall SUS score was 72.26%, indicating good usability, though there were significant variations in perceived complexity and the need for technical assistance.
JULY/AUGUST 2025 | IEEE SOFTWARE 63 FIGURE 2. Screenshots of various UIs from the SoftMod module in TDDT4IoTS, illustrating the basic workflow for modeling IoTS software: (a) creating a UC, (b) consulting SymLan symbols and their meanings, (c) DUC, (d) reviewing the CD, (e) generating unit tests, and (f) completing the code after downloading it. (a) (b) (c) (d) (e) (f)
64 IEEE SOFTWARE | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE FE ATU RE: IOT TEST-DRIVEN DEVELOPMENT These issues are linked to participants’ limited experience and knowledge of object-oriented design. The high standard deviation in responses indicates variability in user perceptions, with some finding the tool intuitive while others encountered challenges. Survey results indicate that usability issues are more pronounced among novice users, reflecting their initial difficulties with the tool. ANOVA analysis revealed notable differences in perceived inconsistency, highlighting the need to improve the tool’s coherence for novice users. Overall, the tool was well received, but improvements in complexity and technical assistance are needed to enhance usability and educational effectiveness. Evaluation of Developer Experience Since its development and through its latest improvements, TDDT4I- oTS has been used by all surveyed developers, including the authors of IdeAir,8 Ñawi,9 P4L,10 and other IoTs developed with this tool. A total of 21 developers were surveyed, all of whom were students or former students of systems engineering and software engineering, with experience ranging from one to nine years. The survey included questions about years of experience in IoTS development, agreement on the importance of UCDs for modeling system behavior, the role of CDs as crucial structural diagrams for system modeling (SysMod), and the appropriateness of using the SymLan language in DUCs for automatic model generation. All developers (100%) agreed that UCDs are essential for modeling system behavior and that CDs are vital (a) (b) (c) FIGURE 3. Screenshots of the IoTD development module UIs in TDDT4IoTS, illustrating the workflow: (a) adding a new device if it does not already exist, (b) specifying its characteristics, and (c) interconnecting hardware components and generating Arduino code.
JULY/AUGUST 2025 | IEEE SOFTWARE 65 Table 1. Central tendency measures and ANOVA and correlation analysis by experience and question. Measure Experience Q1 Q2 Q3 Q4 Q5 Q6 Q7 Q8 Q9 Q10 Mean First time 4.04 3.09 3.91 3.57 3.87 3.39 3.78 3.65 3.91 3.13 Less than 3 times 3.64 3.18 3.55 3.09 4.09 3.82 3.09 3.55 3.64 2.82 3–5 times 4.22 3.56 3.78 3.56 4.33 4.00 4.11 3.78 4.11 2.67 More than 5 times 4.13 3.63 3.63 3.13 4.13 3.38 3.25 3.25 3.75 3.38 General 4.00 3.27 3.76 3.39 4.04 3.59 3.61 3.59 3.86 3.02 Median First time 4.00 3.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 3.00 Less than 3 times 4.00 4.00 4.00 3.00 4.00 4.00 3.00 4.00 4.00 3.00 3–5 times 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 3.00 More than 5 times 4.00 4.00 4.00 3.00 4.00 3.50 3.00 3.00 4.00 3.50 General 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 3.00 Mode First time 4.00 2.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 2.00 Less than 3 times 4.00 4.00 4.00 4.00 4.00 4.00 3.00 4.00 4.00 3.00 3–5 times 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 3.00 More than 5 times 4.00 4.00 4.00 4.00 4.00 3.00 3.00 3.00 4.00 4.00 General 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 4.00 Std Dev First time 0.767 0.996 0.793 1.161 0.757 0.891 0.736 0.935 0.733 1.014 Less than 3 times 0.505 1.079 0.522 1.044 0.539 0.603 0.701 0.688 0.505 1.25 3–5 times 0.667 0.726 0.833 0.726 0.500 0.500 0.601 0.833 0.601 1.118 More than 5 times 0.641 0.518 0.744 0.835 0.354 0.744 0.707 0.707 0.463 1.061 General 0.693 0.918 0.737 1.021 0.631 0.779 0.777 0.829 0.633 1.086 ANOVA: Experience /Q1-10 Sum of Squares 2.067 2.597 1.192 2.498 1.528 3.363 6.945 1.353 1.278 2.860 Degrees of Freedom (df) 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.0 F-statistic 1.4768 1.0285 0.7190 0.7882 1.3021 0.9523 4.6882 0.6422 1.0679 0.7985 P-value associated with the F-statistic (PR>F) 0.2329 0.3885 0.5456 0.5065 0.2848 0.1341 0.0060 0.5917 0.3717 0.5009 Correlations Experience/Q1-10 0.0766 0.2398 –0.1327 –0.1175 0.2220 0.1095 –0.1188 –0.1105 –0.0203 –0.0006
66 IEEE SOFTWARE | WWW.COMPUTER.ORG/SOFTWARE | @IEEESOFTWARE FE ATU RE: IOT TEST-DRIVEN DEVELOPMENT for structural modeling. Regarding the appropriateness of SymLan, 96% of respondents agreed, while 4% were neutral. Additional questions explored the interest in automating SD creation in SysMod, the importance of state diagrams (StDs) in SysMod, and overall interest in TDDT4IoTS. With the exception of the question regarding StDs, all other questions received 100% responses indicating “Strongly important” or “Very important.” The StD question saw 9.5% of respondents express moderate importance opinion, while the rest rated it as “Strongly important” or “Very important.” In conclusion, TDDT4IoTS is a crucial tool for developing high-quality IoTSs, addressing common challenges and filling significant gaps in the field. Its TDD- based approach ensures the creation of robust and reliable systems through early error detection and requirement traceability, enabling rapid and efficient development. The architecture leverages a range of technologies to deliver feature-rich web applications and sophisticated IoT solutions. Case studies demonstrate that TDDT4IoTS enhances developer productivity. By automating the modeling and CodGen processes for device interaction and configuration, developers can focus on core functionalities. This addresses interoperability and communication challenges, ensuring that IoT systems meet the desired requirements and improve customer satisfaction. The SUS evaluation scored 72.26%, indicating good usability. Future enhancements may incorporate AI techniques for automatic keyword marking in generating CDs and the creation of SDs and StDs, which would add significant value. Currently, TDDT4IoTS supports web application development, IoTD design, and the configuration of Arduino boards and variants like ESP8266. Future work will expand support to additional platforms, including MediaTek LinkIt Smart 7688 Duo and the ROHM IoT Kit. Security is presently managed at the discretion of developers. Future versions will implement enhanced authentication services, such as multifactor authentication and digital certificates, to strengthen security. We plan a comprehensive evaluation of TDDT4IoTS, focusing on cost savings and fault-detection improvements, based on usage data and user feedback. Additionally, we will compare TDDT4IoTS with other IoT tools to better contextualize its advantages and limitations. Acknowledgment This work was supported in part by Grant PID2022-139297OB-I00, funded by MICIU/AEI/10.13039/501100011033 and by ERDF/EU, and in part by Universidad de Granada/CBUA. References 1. G. Guerrero-Ulloa, C. Rodríguez- Domínguez, and M. J. Hornos, “Agile methodologies applied to the development of Internet of Things (IoT)-based systems: A review,” Sensors, vol. 23, no. 2, pp. 790–824, Jan. 2023, doi: 10.3390/s23020790. 2. R. Sharma and N. Sharma, “Attacks on resource-constrained IoT devices and security solutions,” Int. J. Softw. Sci. Comput. Intell., vol. 14, no. 1, pp. 1–21, Oct. 2022, doi: 10.4018/ IJSSCI.310943. 3. G. Guerrero-Ulloa, M. J. Hornos, and C. Rodríguez-Domínguez, “TDDM4IoTS: A test-driven development methodology for Internet of Things (IoT)-based systems,” Commun. Comput. Inform. Sci., vol. 1193, pp. 41–55, Dec. 2020, doi: 10.1007/978-3-030-42517-3_4. 4. N. Y. Pérez Suárez and S. H. Ruiz Obando, “Characterization of electronic circuit simulation software as alternatives for use in higher education,” Ph.D. dissertation. Univ. of Santander, Medellin, Colombia, 2020. [Online]. Available: https:// repositorio.udes.edu.co/server/api/core/ bitstreams/79e61716-264b-4d64-8a04 -87a0575ab657/content 5. E. Sávio, S. Freire, G. C. Oliveira, M. Eurizene, S. Gomes, and M. E. D. Sousa, “Analysis of open-source case tools for supporting software modeling process with UML,” in Proc. ACM International Conference Proceeding Series, A. Malucelli and S. Reinehr, Eds. New York, USA: Association for Computing Machinery, Oct. 2018, pp. 51–60, doi: 10.1145/3275245.3275251. 6. M. Ramzan, G. S. Sadiqi, M. S. Bashir, S. Raza, and A. Batool, “A rule-based approach for automatic generation of class diagram from functional requirements using natural language processing and machine learning,” J. Comput. Biomed. Inform., vol. 7, no. 2, pp. 1–16, 2024, doi: 10.56979/702/2024. 7. O. S. Dawood and A.-E.-K. Sahraoui, “From requirements engineering to UML using natural language processing - survey study,” Eur. J. Eng. Technol. Res., vol. 2, no. 1, pp. 44–50, 2017, doi: 10.24018/ejers.2017.2.1.236. 8. G. Guerrero-Ulloa, A. Andrango- Catota, M. Abad-Alay, M. J. Hornos, and C. Rodríguez-Domínguez, “Development and assessment of an indoor air quality control IoT-based system,” Electronics, vol. 12, no. 3, Jan. 2023, Art no. 608, doi: 10.3390/ electronics12030608.