Professional Documents
Culture Documents
An Internet of Things Visual Domain Specific Modeling Language Based On UML
An Internet of Things Visual Domain Specific Modeling Language Based On UML
/ŶĨŽƌŵĂƚŝŽŶ͕ŽŵŵƵŶŝĐĂƚŝŽŶĂŶĚƵƚŽŵĂƚŝŽŶdĞĐŚŶŽůŽŐŝĞƐ;/dͿ
KĐƚŽďĞƌϮϵʹKĐƚŽďĞƌϯϭ͕ϮϬϭϱ͕^ĂƌĂũĞǀŽ͕ŽƐŶŝĂĂŶĚ,ĞƌnjĞŐŽǀŝŶĂ
Abstract— Although there are many attempts to engineer a Activity diagrams for communication flows as well as
domain specific language for the Internet of Things, most of them component diagrams for describing the interfaces between the
forget the fact that with the evolving of the Internet of Things, devices and how they interact. Although not a language
the end user will probably be a common person without an variation, a more formal UML approach has been described in
engineering or software development background. The designers [11] where they use standard UML to describe the
of the UML had the same problem: how to make a language dependencies between individual elements. For example, a
powerful enough for the professionals, but at the same time class diagram is used to model the IoT resource Metamodel
simple enough to be understood by a non-technical end user that integration and Business Process Model and Notation - BPMN
gives the requirements. Inspired by this idea a Visual Domain
to model the processes. A similar approach has been suggested
Specific Modeling Language was developed for the IoT and
in [12] where Uckelmann et al. suggest that standard
proved that it is powerful enough for the professional and at the
same time simple enough to be used by non-technical users. UML/BPMN could be used for modeling some segments of the
IoT but isn’t specifying details how to use it. On the other
Keywords—Internet of Things, Domain Specific Modeling hand, in [14] O'Leary describes Node-RED, an informal but
Language, UML, Usability, Human computer interaction very powerful visual tool for flow based IoT modeling. The
visual language is a custom but very user friendly flow
diagram.
I. INTRODUCTION III. THE LANGUAGE
One of the open problems of the Internet of Things is how Although there had been attempts to use standard UML or
to simplify the complex system to the point that the end user informal notations to model IoT systems, the perfect blend that
can easily configure and use it [1][2][3]. The real trick is how suits the technical and non-technical user has not been proven.
to make the configuration language powerful to be used by a The problem with standard UML is that it’s too complicated
professional and at the same time to hide all the complexities for non-technical users when used in a IoT system context
and technical details from the amateur, non-developer end user because a lot of advanced UML expressions have to be used.
who will also use it to configure his personal IoThings. The On the other hand, the informal modeling languages are
designers of UML had the same problem - how to make a reinventing the wheel, although, they are not practical or not
language that is powerful and modular enough for the powerful enough for technical users.
engineers when it needs to be, and at the same time simple and
descriptive to be understood by the end user that specified the Therefore, a blended approach has been designed with
requirements. The good thing about UML is that a lot of UML, IoT systems and technical/non-technical end users in
advanced notations can be left out so that the end user can mind. The biggest challenge in designing the language was
easily read and “write” it, on the other hand the professional is how to make a tradeoff between the variety/expression of the
able to use the advanced notations to engineer a more complex language in the IoT context and the simplicity for the non-
and detailed system. developer - end user.
ϵϳϴͲϭͲϰϲϳϯͲϴϭϰϲͲϴͬϭϱͬΨϯϭ͘ϬϬΞϮϬϭϱ/
E. Items
One thing can contain zero or more items. The items can
be divided in three groups: inputs (sensors,…), outputs
(switches, sending an SMS, ...) and components (log services,
software components). The items are shown as nested UML
Fig. 1. Two types of things a real and a virtual thing classes that are annotated as inputs <<input>> and outputs
<<output>>. Components <<component>> are similar to other
It’s important for the things to be loosely connected with
items except they don’t exist physically (for example real time
the rest of the system so that a change on one thing doesn’t
affect the rest of the system. For this reason, interfaces are log, SNMP, web services....) as shown in figure 4.
introduced as a way to decouple the behavior from the The inner labels of the items - the properties are used to
implementation. describe the configuration of the item like the URL binding,
some item specific parameters and so on.
B. Specification
The thing is represented as a Rectangle labeled with the
name of the device that matches the domain of the thing.
C. Annotation
There are two types of things that are composed of several
items (inputs, outputs and components).
Besides a normal thing that matches a real device there is
also a second type of thing with the stereotype <<virtual>> that
doesn’t exist in the real world and it’s just a virtual collection
of items that are distributed in the system as shown in figure 1.
D. Encapsulation and subsystems - groups
Besides the <<virtual>> stereotype, a <<subsystem>> Fig. 4. A thing that encapsulates varoiuse items into a logical IoT node
stereotype is available that specifies a collection of things on a
higher level. For example, a subsystem could be the living The items need to be loosely coupled so that they can
room that has a series of interfaces to other rooms. Besides be easily changed without affecting the rest of the system. In
being just a logical group the subsystem also encapsulates the order to achieve this, item interfaces are introduced. The items
things in the same room keeping the privacy/security of the are communicating with each other over provided and
system and exposing the things only through specified required interfaces. This enables the user to have a higher
interfaces. degree of control over the inter-item dependencies.
Another example would be the interaction between the The provided interface is the interface that the item is
subsystems Home and Work that need to communicate with implementing. The other items are able to communicate with
each other but in the same time they have to be encapsulated the item over the provided interfaces of the item.
to protect the privacy of the system. The required interface is the interface that the item needs
The subsystem element is represented as a UML subsystem in order to be operational. To be more precise, the item needs
block as shown in Figure 2. sometimes another item in order to be functional. In order to
achieve this an item could be loosely coupled.
There are three ways to show an interface: Circle,
Semicircle (ball and socket), stereotype notation and a text list.
Fig. 5. The required and provided interfaces of an item. ITime – semicircle is
the required itnerface and expects Time data while the IReal interface is the
provided interface and sends data to a required interface.
REFERENCES