Sofware Architecture Quality Attributes of a Layered
Sensor-Based IoT System
Zeljko Stojanov
1
, Dalibor Dobrilovic
1
1
University of Novi Sad, Technical Faculty "Mihajlo Pupin", Zrenjanin, Serbia
Abstract
Quality of complex technical systems is highly dependent on the quality of integrated software systems.
Software system quality is determined with their functionalities and quality attributes that describe
how the functionalities are performed. Although there exists a large list of software architecture quality
attributes that technical systems can satisfy, they do that to a greater or lesser extent. Internet of Things
(IoT) systems are complex socio-technical systems that include a variety of software elements distributed
on specifc hardware components and servers. Selecting and fulflling of the most suitable quality
attributes during system design is a challenging task. In this paper, we present our subjective experience
with scalability, maintainability, security, availability and portability quality attributes during design of a
layered sensor-based IoT system for monitoring industrial environmental conditions. Further research
directions are also presented.
Keywords
software architecture, system architecture, IoT system, quality attributes, layered architecture
1. Introduction
Production of high quality software products is challenging demand for software industry in
highly dynamic and competitive market [1]. This assumes continuous improvement software
characteristics in order to satisfy users and market demands. Software architecture is essential
for the design of efective and usable software systems, their integration into complex socio-
technical systems, and their easy and controllable evolution to adapt to changing business needs.
Since technical systems should respond to proposed business requirements and constraints,
software architecture should help in mapping them to specifc design of a system [2]. From the
technical point of view, software architecture refects fundamental organization of a software
system, its components and their relationships, as well as relations of a software system with its
environment. Creation of a loosely coupled architecture by minimizing dependencies between
components is the key point in architecture design. With this approach with minimized
dependencies, changes during software evolution are localized and do not propagate through
the architecture, which signifcantly reduces costs and complexity of maintenance.
Functionalities of software systems refect functional requirements and constraints derived
from business objectives. However, nonfunctional requirements defne how identifed func-
tionalities will be provided to system user, and should be considered together with functional
Workshop Information Technologies: Algorithms, Models, Systems (ITAMS), September, 2021, Irkutsk, Russia
zeljko.stojanov@uns.ac.rs (Z. Stojanov); dalibor.dobrilovic@uns.ac.rs (D. Dobrilovic)
0000-0001-6930-5337 (Z. Stojanov); 0000-0002-3083-5725 (D. Dobrilovic)
© 2021 Copyright for this paper by its authors. Use permitted under Creative Commons License Attribution 4.0 International (CC BY 4.0).
CEUR
Workshop
Proceedings
http://ceur-ws.org
ISSN 1613-0073 CEUR Workshop Proceedings (CEUR-WS.org)