## 2 Fundamentals  
The Internet of Things (IoT) is a broad-spectrum concept referring to the ability of network apparatus, gadgets, or devicescollecting and sharing information from our ecosystem for distinct purposes, such as (i) notification systems for supermarket discounts triggered when the customer is passing by the supermarket, (ii) day-to-day food ordering applications, (iii) the monitoring of automobile fluid levels, and (iv) heart monitoring with a holder monitor, among other devices. It is essential to mention that IoT differs from traditional computing and monitoring, mainly due to the size of the files used, which can be small and frequently transmitted. However, the number of devices that connect to the system in the IoT is more significant.  
The IoT broadcasts data to users and systems/software. For example, for users, the IoT can transmit information regarding health through software that collect data from sensors monitoring vital signs. In several cases, a business or user can also manipulate a device remotely to execute tasks such as turning on the garage light or programming an office air conditioning system to refresh at 8:00 a.m. for the arrival of employees.  
The application of RE phases is crucial in affecting the achievement of development projects in most software factories. RE is a method of finding, studying, detailing, and validating the services that a software should offer, as well as its operational limitations. There are countless methods to describe the phases of RE, such as those suggested in [17; 18]. Of course, the phases differ for different situations, such as the application domain and the team developing the requirements. Nevertheless, some universal phases generally emerge, such as elicitation, analysis, specification, validation, and management.  
* Elicitation aims to find what issues need to be solved [18], identifying the goals that a software needs to achieve. To achieve this, it is necessary to apply techniques [19] such as questionnaires, brainstorming, prototyping design, and conceptual modeling approaches such as goal-oriented languages [20; 21];
* The analysis activity refers to creating models or prototypes satisfying the requirements. Moreover, this activity allows for an understanding of the organizational goals, considering the analysis of the relevant information, rules, and stakeholder communication to represent the software's functionality more accurately [21];
* The specification activity involves a description of the system's behavior. It is applied using techniques such as templates, scenarios, use cases, modeling, and natural language [22];
* Validation is performed in order to establish whether or not the software requirements are a truthful exemplification of the stakeholder requirements. To validate this, reviews and requirement traceability techniques can be used [22; 23];
* The management stage involves identifying the variations in requirements that may occur during the project's development at the stakeholders' request. Among the techniques used in this stage are configuration management and version control [23];
* Non-functional requirements are aspects that a system should ensure to guarantee quality. Some of these are related to usability, privacy, availability, interoperability, and accessibility.  
This classification of requirements is used throughout this SMS to provide a better understanding and ensure completeness in this research.