# Enhancing Sustainable IoT Systems Through a Goal-Oriented Requirements Analysis Framework
## 4 Goal-Oriented Requirements Analysis Approach for IoT Software Systems
### Application Example: IoT System for Monitoring Air Quality
#### 4.2.4 I* Requirements Analysis Model  
The i* RA model detailed in Figure 1 illustrates the example presented in Section 4.2, where the i * hybrid view integrates SD/SR perspectives for the IoT environment in the application example. The requirements analysis model comprises three actors: The user, representing the end user in the User Story, which has the goal of \"home air quality monitoring\". The second actor is the Mobile App, the software through which the user can access real-time information on pollutant air levels in their house. The third actor, central to this example and further explained, is the IoT System, which serves as the core of the IoT of the User Story introduced in Section 4.2.1. According to Section 4.1.1, the i* 2.0 language element representing the IoT system is the actor element labeled \"IoT\". The goal of the system is \"to obtain air information\" and remember that a goal serves as an articulation of the intended outcome or accomplishment that a system or software is designed to achieve. These goals encapsulate the overarching objectives that stakeholders strive to attain by utilizing a system. In this case, the goal was defined according to the User Story from Section 4.2.1, which states that the end user in the \"I Want\" from the User Story wants to integrate IoT devices to monitor indoor air quality. This is the main goal; if this goal is satisfied, it will help to \"improve air quality\" since it will help the end user to make a decision support. To be fulfilled, it is necessary to satisfy two other goals: \"establishing network connection\" and \"calculating sensor values\". The goal \"establish network connection\" can be achieved in two forms (goals): \"establish wired connection\" or \"establish wireless connection\". This is represented by the connectors \"OR Refinement\". In this context, the goal \"establish wired connection\" allows for a reliable connection, as indicated by the quality element and the connection named contribution type \"make\" (expressing that \"the source provides...\"), which also affects \"easy connection\" since it is more complicated for the end user to establish a wired connection than a wireless one. In contrast, the goal of \"establishing wireless connection\" is the opposite. To fulfill the goal \"calculate sensor values\" (linked to the main goal by means of a refinement link, where the fulfillment of at least one child makes the parent fulfill), it is necessary to obtain the ID of the sensor (thing) through the service \"get sensor identifier.\" This, in turn, requires fulfilling one of the two options: the service \"read ID sensor\" or \"read another sensor identifier.\" These two services are connected through the \"NeededBy\" relationship, which links a service (task) with a thing (resource) and indicates that the actor IoT system needs the thing (resource) to execute the service (task). The things in this example are \"humidity sensor\", \"CO\({}_{2}\) Sensor\", and \"temperature sensor,\" each of which have attributes such as \"turn on\", \"off\", and \"restart\" (which can be personalized as they are labels).