also been used. Whereas FRs can be determined using
these, special provision must be made for determining
the sensing/actuating capacity of things as well as
communication among devices.
(Meacham, 2016) use a combination of use case
diagrams for system functionality and Requirements
Diagrams of SySML for things and thing-interaction.
There are two levels of analysis, a high level and low
level. Each high-level use case is expressed as blocks
in RD and the action they perform is expressed in text
in these RD blocks. Low-level use case diagrams are
for representing low-level functions comprising the
high-level functions. Again, the action carried out by
these is expressed as text in structural blocks of RD.
Movement to system design starts off from the high-
level RD by postulating system blocks for each RD
block. However, the manner in which this is to be
done is not elaborated in (Meacham, 2016).
(Mezghani, 2017) organize their requirements
engineering approach in two parts, requirements
identification and requirements formalization. In the
former the elicited FRs are expressed as use cases.
The latter is organized in a number of design patterns
in multiple levels. This proposal aims to assist system
architects rather than system developers per se.
Reggio (Reggio 2018) builds a goal hierarchy of
strategic and operational goals. Goals are then
expressed in UML. Operational goals are associated
to technological goals that express communication
and device needs. However, the technological aspect
is not elaborated in (Reggio, 2018) who state that it is
“preliminary”.
The approach of (Takai, 2019) is to use the translate
GQM
+
approach. Business goals become requirement
nodes, questions become text of the requirement node
and metrics become stereotyped requirement nodes,
stereotyped as performance requirements. These are
then converted into Requirements Diagram of
SySML. The manner in which things and thing
interaction is represented is not articulated in (Takai,
2019).
From the foregoing, we conclude that there are
two parts to Requirements Engineering in the IoT
domain (a) determining function is to be performed
or what is to be done by a thing and (b) what is to be
sensed and interaction among things. The former is
de-emphasized in (Costa 2017, Kotnis, 2018)
whereas the latter is of subordinate concern in
(Meacham, 2016, Mezghani, 2017, Reggio, 2018).
Yet, we believe that thing functionality, its
sensing/actuating capacity and thing interaction form
one integrated whole. By separating these, either
thing functionality is not articulated as in (Costa
2017, Kotnis, 2018) or the sensing/interaction aspect
is not fully elaborated.
It is with a view to obviate this, that we present
our integrated approach to IoT requirements
Engineering. Broadly speaking, our proposal is as
follows. We base our proposal in goal-orientation and
refer to GOals of IoT as GOT. We say that a GOT is
achieved when the functional intention behind it is
fulfilled and communicated. Goal fulfilment is for
the function/processing to be performed by a thing
and goal communication is for the sensing/actuating
and thing interaction part. Goal reduction results in
the usual AND/OR hierarchy.
The layout of this paper is as follows. In the next
section, we elaborate on the notion of a requirement
in the IoT domain and define our notion of a goal. In
section 3, the GOT model is described. The GOT
requirements engineering process and the various
drives are presented in section 4. In section 5, we
apply our ideas to the car accident IoT. Thereafter, in
section 6, we compare the proposals of (Meacham,
2016) and (Reggio, 2018) with ours. Section 7
concludes the paper.
2 GOALS IN IoT
A requirement has been variously defined and we
adopt the definition as in IEEE standard 730-2014 as
“A condition or capability that must be met or
possessed by a system or system element to satisfy an
agreement, standard, specification, or other formally
imposed documents.” When applied to the IoT
domain, a thing is the system component of interest
and a collection of communicating things delivers the
service required by an IoT application. The
“condition or capability” of a thing is that it may
obtain data, optionally process it, and communicate it
to another thing. Data may be obtained by sensing the
environment or as a communication from another
thing. There are terminator things like the cloud or
users, that consume data that they receive. Thus, we
can define a requirement in the IoT domain as a
statement about processing and communicating
data. For example, consider the requirement, “the life
of the battery must be monitored and low-life
batteries must be replaced before they die.” The
processing is “Estimate battery life” and the
communication need is to send the message, “Low
battery” to the user.
Now, let us consider how to represent an IoT
requirement as a GOal Of Things, GOT. A goal has
been variously defined. (Lamsweerde, 2000) defines
a goal as an objective that the system should achieve