An Architectural Style Based on the ISO/IEC 30141 Standard for the Internet of Things Systems
Internet of Things, Software Architecture, Architectural Style, Architecture Description Languages
The Internet of Things (IoT) has been contributing to a new technological revolution, promoting a significant social impact. The basic idea of IoT is to enable connectivity, interaction, and integration of uniquely addressable intelligent objects that collaborate with each other to achieve common goals. Although IoT is a promising paradigm for the integration of communication devices and technologies, it is necessary to review the traditional methods of software development considering the particularities required by IoT systems. Given the fundamental role of software architecture in the development of intensive software systems, the challenges related to the development of IoT systems must be considered since the architectural level. A software architecture allows stakeholders to reason about project decisions prior to implementation, define constraints, analyze quality attributes, and be better oriented in terms of system maintenance and evolution. In the context of software architecture, architectural styles have a key role since they specify the architectural elements commonly used by a particular class of systems, along with a set of constraints on how these elements are to be used. Therefore, an architectural style provides a starting point for a coherent modeling of the software architecture, allowing the reuse of elements and a set of previously defined and validated architectural decisions, thus facilitating the architecture modeling process. The literature has much information about IoT and architectural styles, but there is a gap in their integration. The advantages offered by the use of architectural styles can benefit the architectural specification of IoT systems, but there is still no specific architectural style for this type of system in the literature. In the context of software architecture for IoT systems, the ISO/IEC 30141 standard proposes a reference model and a reference architecture for IoT systems, and represents an international consensus on software architecture for IoT. However, such a standard does not define an architectural style. Aiming to fill this gap, the main goal of this work is proposing an architectural style that offers guidelines for modeling the software architecture of IoT systems, in accordance with the ISO/IEC 30141 standard. The style is specified using the SysADL language, an Architectural Description Language (ADL) focused on the modeling of intensive software systems. This work also presents evaluations of the proposed style, performed through: (i) an evaluation of expressiveness of the style using the framework proposed by PATIG (2004), (ii) a usability evaluation of the style using the Cognitive Dimensions of Notation (CDN) framework (BLACKWELL; GREEN, 2003) and (iii) an experimental evaluation using two controlled experiments to evaluate the effects provided by the use of style.