Requerimientos no funcionales para sistemas basados en el Internet de las cosas (IoT): Una revisión

Non-functional requirements for Internet of Things (IoT) based systems: A review

Karina Ojo-Gonzalez1 y Belén Bonilla-Morales2*

1Maestría TICS-Senacyt, Facultad de Ingeniería de Sistemas Computacionales, Panamá, Universidad Tecnológica de Panamá, Panamá
2Departamento de Ingeniería de Software, Facultad de Ingeniería de Sistemas Computacionales, Universidad Tecnológica de Panamá, Panamá

*Autor de correspondencia: [email protected]

Tipo de artículo: Original.
Recibido: 28 de agosto de 2020.
Aceptado: 10 de marzo de 2021.

DOI. https://doi.org/10.33412/idt.v17.2.3303

RESUMEN– El análisis de los requerimientos es una fase crucial que determina las funcionalidades y propiedades que debe poseer un sistema a desarrollar, realidad a la que no escapan los sistemas que involucran el paradigma del Internet de las cosas (IoT). Este paradigma permite incrementar los niveles de automatización y autonomía de los sistemas y servicios tradicionales, lo que lo ha llevado a ganar presencia rápidamente en diversidad de dominios de aplicación. En este documento se realiza una revisión literaria apoyada con la norma ISO/IEC 25010, para identificar los requerimientos no funcionales prioritarios para cuatro dominios de aplicación: ciudad, hogar, agricultura y fábricas inteligentes; señalando para cada uno los aspectos asociados y atendidos de acuerdo con las características de calidad del producto.

Palabras clave– Atributos de calidad, agricultura inteligente, ciudad inteligente, fábrica inteligente, hogar inteligente, Internet de las cosas, requerimientos no funcionales.

ABSTRACT– The requirements analysis is a fundamental stage for software development projects where all functions and properties that must be addressed by a system are determined, this condition applies for every system including those that integrates Internet of things’ technologies in their implementations. Internet of things paradigm allows increasing automation levels and systems’ autonomy of the conventional services that already exists, becoming those benefits in the main reasons whereby the paradigm is present in different application domains. In this paper a systematic literature review is presented, in order to identify the most relevant non-functional requirements in four application domain: smart city, smart home, smart agriculture and smart factory; showing up their associated aspects and how there are currently being treated in base to ISO/IEC 25010 for software quality products.

Keywords– Internet of things, non-functional requirements, quality attributes, smart agriculture, smart city, smart factory, smart home.

1. Introducción

El desarrollo tecnológico en el que se vive en la actualidad queda evidenciado con la gama de dispositivos electrónicos existentes en el mercado que permiten el acceso a diversos servicios desde la palma de la mano, como es el caso de los teléfonos inteligentes. Cada uno de estos dispositivos, indistintamente de su propósito, requiere de un software que administre su funcionamiento.

El campo de la ingeniería de software ha tenido que evolucionar para adecuarse a las nuevas necesidades y tecnologías presentes al momento de iniciar un proyecto de desarrollo de software [1], no solo a nivel de metodologías, sino al punto de requerir modificaciones en los patrones arquitectónicos existentes, a raíz de los nuevos requerimientos que se deben satisfacer para el correcto funcionamiento de los sistemas. Un ejemplo de estas nuevas tendencias es el paradigma de Internet de las cosas (IoT, por sus siglas en inglés para Internet of Things).

El Internet de las cosas [2], en forma general, consiste en una red de sensores y dispositivos que tiene la tarea de recolectar datos de su entorno con el propósito de tomar decisiones y posteriormente ejecutar acciones que mejoren dicho entorno. Una de sus principales características es la interacción entre los dispositivos de la red sin la intervención humana, siendo esta una de las razones que ha llevado a adecuar el enfoque tradicional de desarrollo de software y tomar en consideración requerimientos específicos y característicos para estos sistemas.

Todo software se define por un conjunto de requerimientos funcionales y no funcionales [3], donde estos últimos se consideran los responsables de la calidad del producto final, por lo cual, en el presente documento se identifican a través de una revisión literaria, los requerimientos no funcionales que reciben mayor atención al momento del diseño de un sistema de IoT de acuerdo con su dominio de aplicación, tomando como referencia la norma ISO/IEC 25010 [4] utilizada para la evaluación de las propiedades de los productos de software IoT [5].

El documento se encuentra estructurado de la siguiente manera: la sección 2 presenta las generalidades de los sistemas de IoT, la sección 3 trata la metodología utilizada para revisión literaria, la sección 4 detalla la ejecución de la revisión, la sección 5 desglosa los resultados de la revisión y finalmente la sección 6 presenta la discusión de los hallazgos.

2. Antecedentes

El término de Internet de las cosas (IoT) se refiere a una estructura compuesta por dispositivos físicos o “things”, cuya comunicación e interacción es controlada por una infraestructura de software [6] y que tiene como objetivo recolectar datos de su entorno permitiendo el posterior tratamiento analítico de estos con vistas a generar información relevante para la toma de decisiones de las acciones a realizar sobre ese entorno [7], proceso que requiere un nivel de autonomía e inteligencia por parte del sistema [8].

Los sistemas de IoT se encuentran sujetos al dominio en el que se implementan, motivo por el que en [9] se propone un método para ejecutar el análisis de los requerimientos del sistema. Este método establece que lo primero a realizar es la definición formal del propósito del sistema, para entonces estudiar a detalle los elementos del entorno en el que se colocará el sistema y los dispositivos que mejor se adapten para recolectar los datos bajo las condiciones del entorno; razón que soporta lo expresado por [10] en referencia al uso de microcontroladores para elevar la calidad de funcionamiento de los sistemas de IoT.

El levantamiento de los requerimientos persiste como una actividad crucial para la construcción de cualquier sistema y por lo que en muchos casos es necesario modificar o establecer nuevos lineamientos que permitan el adecuado análisis de los mismos, como lo detalla [1], donde se propone un conjunto de subprocesos a realizar para la definición de los requerimientos de sistemas IoT; sin embargo, estudios como [11], [12] demuestran que existe tendencia en darle mayor importancia a los requerimientos funcionales (FRs) que a los no funcionales (NFRs).

Los FRs representan las tareas o necesidades que se espera que el sistema satisfaga, mientras que los NFRs, definen los atributos de calidad que el producto final debe ofrecer, por lo tanto, no son percibidos a simple vista por los usuarios finales; sin embargo juegan un rol relevante durante el proceso de selección de las tecnologías con las que se implementará el sistema [13].

Algunos autores afirman la necesidad de contemplar aspectos referentes a los NFRs al momento de diseñar las arquitecturas destinadas a soportar sistemas IoT [14]– [16], no obstante, abordar todos los NFRs es una tarea compleja como lo indican [16] debido a que es común que existan conflictos entre los requerimientos [17], [18], lo que en otras palabras se refiere a que el solo hecho de alcanzar la totalidad de uno de los NFRs impacte negativamente sobre otro requerimiento que también es de interés en el producto final.

En base a lo anterior, se identifica el dominio (propósito y entorno) en el que se implementa el sistema IoT, como un factor determinante para los NFRs a contemplar durante el diseño y construcción del sistema. Actualmente los sistemas de IoT se pueden encontrar en distintos dominios como salud, ciudades inteligentes, agricultura e incluso en el sector industrial con las fábricas inteligentes [14], [19], [20].

Con el objetivo de identificar los NFRs característicos de los sistemas IoT para un determinado dominio de aplicación, en la siguiente sección se detalla la metodología utilizada para realizar la revisión literaria que soporta este trabajo.

3. Metodología de la investigación

La metodología seleccionada para la realización de la revisión sistemática literaria es la propuesta por Barbara Kitchenham [21] para investigaciones relacionadas al campo de la ingeniería de software. En esta sección se desarrollan los puntos concernientes a la preparación de la investigación.

3.1 Preguntas de investigación

Se definen las preguntas claves que servirán de guía para la recopilación de la información que será analizada posteriormente, basadas en lo expuesto en la sección de antecedentes.

RQ1- ¿Cuáles son los requerimientos no funcionales en un sistema IoT?: Esta pregunta tiene como propósito identificar los NFRs y las razones particulares por las cuales se hacen indispensables para un determinado dominio de aplicación.

RQ2- ¿Qué aspectos del sistema IoT se encuentran asociados a estos requerimientos no funcionales en cada dominio?: Esta interrogante tiene por objetivo identificar posibles diferencias en la perspectiva de la misma característica de calidad desde cada uno de los dominios estudiados.

3.2 Estrategia de búsqueda

En este punto se especifica cómo se realizará el proceso de búsqueda de los documentos que sean representativos para los objetivos de estudio en el presente documento.

3.2.1 Palabras claves

Tomando como referencia las preguntas de investigación, se procede a la selección de las palabras claves que permitan obtener los documentos más relevantes para los propósitos de la investigación. Es importante señalar que debido a que la mayor parte de las publicaciones en las librerías electrónicas se encuentran escritas en inglés, las palabras claves seleccionadas se encuentran en este idioma.

Las palabras seleccionadas son las siguientes: Internet of things, software, non-functional requirements, quality atributes, non-functional properties, requirements, smart city, smart agriculture, smart home, smart manufacturing, smart factory; además, para efectos de su inserción en los motores de búsqueda, se elaboró la siguiente cadena de búsqueda.

(“Internet of things” OR “IoT”) AND (“requirements” OR “non-functional requirements” OR “quality attributes” OR “non-functional properties”) Adicionalmente, la cadena fue sometida a adecuaciones de acuerdo con los motores de búsqueda utilizados, además de las variaciones derivadas de la especificación de cada dominio de aplicación objeto de estudio de la presente investigación.

3.2.2 Recursos literarios

Siendo esencial para la investigación contemplar los documentos con mayor relevancia y afines al área de la ingeniería de software, se han seleccionado como fuentes ScienceDirect, IEEE Xplore, ACM y SpringerLink.

3.2.3 Procedimiento de búsqueda

El procedimiento de búsqueda inicia con la introducción de la cadena de búsqueda en los motores de cada una de las librerías seleccionadas. Durante la primera fase se aplica un proceso de filtrado en base a los criterios de selección establecidos, considerando solo los títulos y resúmenes de los artículos. La segunda fase, es una revisión del contenido completo de los documentos resultantes de la primera fase. En caso de obtener pocos documentos, se procederá con la técnica de bola de nieve para encontrar más documentos relevantes para la investigación.

3.2.4 Criterios de selección

A pesar de los esfuerzos que se han realizado para garantizar la calidad de los sistemas IoT, tal como expresa [22] y siendo los NFRs factores determinantes en las propiedades de calidad, es fundamental analizar las variaciones de los NFRs de acuerdo con el contexto, por lo cual, este estudio se centra en cuatro dominios de aplicación: ciudad, hogar, agricultura y fábricas inteligentes.

En el caso de las ciudades y hogares inteligentes, la diferencia de escalas de ambos contextos se considera un elemento clave en la definición de los NFRs, motivando su selección en este primer estudio; por otra parte, se analizan los sistemas para entornos agrícolas e industriales, puesto que, son contextos que contrastan tanto en condiciones ambientales como en los sujetos o cosas que se encuentran en ellos, permitiendo evidenciar con mayor claridad los aspectos de calidad predominantes.

De igual manera, para la obtención de los estudios primarios se aplicaron los siguientes criterios de exclusión:

- E1: Documentos no publicados en el rango de años 2010-2020.
- E2: Documentos no publicados en revistas o conferencias.
- E3: Documentos fuera del contexto de ingeniería de software.
- E4: Documentos que no ofrezcan información relacionada a las preguntas de investigación.

3.2.5 Extracción de datos

El objetivo de la investigación es ofrecer una visión concreta de los requerimientos no funcionales y los métodos para alcanzarlos en sistemas IoT, por lo tanto, los documentos seleccionados deben ofrecer información como la siguiente:

- ¿El documento presenta definiciones y conceptos para las palabras claves?
- ¿El documento presenta los objetivos de los requerimientos no funcionales dentro de un dominio?
- ¿El documento reporta alguna carencia en lo referente al tratamiento de los requerimientos no funcionales para sistemas IoT en algún dominio en particular?

3.3 Ejecución de la revisión

En esta sección se detalla el proceso de ejecución de la revisión. En la primera fase solo se contemplan los títulos y resúmenes de los documentos para su selección, mientras que en la segunda fase se realiza una revisión del texto completo para validar la relevancia del documento para la investigación.

image015

Figura 1. Selección de los estudios primarios.

3.3.1 Primera fase

El resumen de esta fase se muestra en la figura 1. El proceso de selección descarta aquellos documentos escritos en un idioma distinto al inglés. En la Figura 1 también se presenta la cantidad de documentos descartados en base a cada criterio de exclusión.

3.3.2 Segunda fase

Esta fase constituye el proceso de análisis del texto completo de los artículos seleccionados en la primera fase. Debido a que solo se obtuvieron 28 documentos relevantes, se recurre a la aplicación de la técnica de bola de nieve para obtener más documentos, ejecutando una nueva búsqueda por cada dominio de aplicación de interés en esta investigación. Al finalizar la segunda fase se obtuvieron 23 documentos adicionales haciendo un total de 51 artículos para análisis.

4. Resultados de la revisión

En esta sección se presentan los resultados de la revisión.

4.1 Publicaciones relevantes por año

image016

Figura 2. Distribución de publicaciones por año.

En la figura 2 se aprecia la distribución de publicaciones en el período 2010-2020. El gráfico al momento demuestra que a partir del año 2017 se presentó un incremento en los estudios que tenían relación a la identificación de los requerimientos no funcionales en sistemas de IoT.

Tabla 1. Requerimientos no funcionales comunes en los sistemas IoT.

image017

4.2 Requerimientos no funcionales por dominio de aplicación

En la tabla 1 se listan los NFRs que todo sistema de IoT debe contemplar al momento de su diseño. La interoperabilidad se refiere a la capacidad de interacción y comunicación entre dispositivos físicos mediante una infraestructura, de manera independiente a los proveedores; la escalabilidad, relacionada al número de dispositivos o entidades que maneje el sistema sin disminuir su rendimiento [23]; seguridad, mayormente orientado a la protección de los datos recolectados por los sensores o dispositivos físicos y finalmente, sensibilidad al entorno, capacidad del sistema para recolectar los datos generados por el cambio de condiciones en el contexto en el que se ha implementado.

Los NFRs en la tabla 1, no son los únicos que deben ser tomados en consideración para los sistemas de IoT, motivo por el que en los siguientes puntos se procede a identificar aquellos NFRs adicionales que reciben mayor atención de acuerdo con el dominio de aplicación en el que se planean implementar, utilizando como referencia la norma ISO 25010 [4] para atributos de calidad de los productos de software.

4.2.1 Ciudad inteligente

El concepto de ciudad inteligente se encuentra fundado en el uso de las nuevas tecnologías para el mejoramiento de los servicios tradicionales en entornos urbanos que debido a sus características económicas, políticas, sociales y ambientales; presentan condiciones complejas que dificultan su progreso y afecta su sostenibilidad [34], [35]. Estas tecnologías consisten en una infraestructura de sensores [36] encargados de la recolección inteligente de datos que al ser analizados y evaluados permitan la creación de estrategias que automaticen y optimicen los procesos urbanos [37], [38].

Tabla 2. Requerimientos no funcionales para una plataforma IoT en el dominio de Ciudad Inteligente

image019

Los procesos urbanos objeto de interés dentro de una ciudad inteligente varían desde la monitorización del consumo de servicios eléctricos, suministro de agua y transporte; hasta la prevención de desastres naturales, así como la identificación de efectos degradación sobre estructuras de concreto como puentes y edificios, son aspectos de seguridad que también se analizan a través de las tecnologías IoT en una ciudad inteligente [37]–[39].

La naturaleza crítica de los procesos urbanos señalados reitera la importancia en garantizar la calidad del producto de software que administrará la infraestructura de la ciudad inteligente, impulsando estudios como [28], [40], donde el primero se centra en los requerimientos específicos para un sistema de control de tráfico inteligente; el segundo, aborda los requisitos generales para una plataforma de ciudad inteligente. Ambos trabajos coinciden en la necesidad de crear sistemas con alta interoperabilidad, escalabilidad y sensibilidad al contexto; no obstante, también mencionan los NFRs en la tabla 2.

En la tabla 2 se percibe que las características de eficiencia de desempeño, seguridad y portabilidad son las que se han reportado con mayor frecuencia en los estudios relacionados al diseño de plataformas de software para ciudades inteligentes.

4.2.2 Hogar inteligente

Un hogar inteligente también es conocido como una solución de domótica, que tiene por objetivo que las personas que en él residen mejoren su calidad de vida al poder llevar un mayor control sobre aspectos cotidianos como seguridad, comodidad y ahorro energético [39], [41], [42], al integrar sensores y servicios dentro de una aplicación que puede ser configurada y monitorizada remotamente por los habitantes del hogar desde un teléfono inteligente o tableta, de acuerdo con sus necesidades individuales [41], [43].

Tabla 3. Requerimientos no funcionales para una plataforma IoT en el dominio de hogares Inteligentes

image018

Esto implica que la instalación, configuración y administración del sistema de hogar inteligente no necesariamente será realizado por una persona que posea conocimientos de programación o tenga experiencia previa con este tipo de sistemas, propiedad que se utiliza como base en [41] donde se identifican dos categorías de hogares inteligentes, la primera, cuyo levantamiento es realizado por personal experto; mientras que la segunda es aquella que la ejecutan los usuarios finales del sistema.

Un sistema IoT para hogar inteligente consta de un Un sistema IoT para hogar inteligente consta de un conjunto de herramientas de desarrollo, despliegue y de un software de gestión de los dispositivos que se encuentren conectados dentro de la red, elementos que varían de acuerdo con los fabricantes, generando un gran número de opciones de plataformas de software y hardware, lo que causa la carencia de estandarización en las tecnologías, y genera como resultado una gama de soluciones aisladas, incompatibles, de propósitos específicos y no reutilizables [44].

Por otra parte, el manejo de las interacciones entre los dispositivos sin afectar los servicios llaman a la necesidad de modernas prácticas de ingeniería de software para el diseño de las plataformas de software [44].

En el caso de los NFRs para un sistema de hogar inteligente, listados en la tabla 3, destacan las características de eficiencia de desempeño, usabilidad y seguridad; sin embargo, este último no representa la importancia debida para los usuarios finales, quienes despreocupadamente conectan y comparten cualquier dispositivo que contenga información sensitiva, ignorando los datos que pueden estar siendo transmitidos [41].

4.2.3 Agricultura inteligente

El sector agrícola no ha quedado indiferente ante la modernización de los procesos con el uso de tecnologías de IoT. Este hecho se debe principalmente a la necesidad de incrementar la eficiencia en la productividad, mediante la adecuada utilización de los recursos y mitigando el impacto ambiental asociado a las actividades agropecuarias [47], [50]. Una técnica conocida es la agricultura de precisión [47] que se enfoca en la optimización y mejoramiento de los procesos agropecuarios a través de una monitorización en tiempo real de las condiciones ambientales y del suelo.

Tabla 4. Requerimientos no funcionales para una plataforma IoT en el dominio de agricultura Inteligente

image020

El conocimiento de las condiciones de los cultivos es posible gracias a los sensores y actuadores que conforman el sistema IoT. Los sensores se mantienen transmitiendo datos que al ser analizados, proveen la base para la toma de decisiones de las acciones que ejecutarán los actuadores del sistema [54], y además permite crear un historial que facilite la trazabilidad de los productos y cadenas de suministros añadiendo valor para el negocio a los datos recolectados [48].

Las soluciones de IoT en el sector agrícola no se limitan a las plantas, seres vivientes; incluye todas las estructuras, equipos, maquinarias y vehículos que estarán conectados entre sí mediante dispositivos heterogéneos [53] dentro de una red, facilitando la visualización del estado del negocio, reduciendo costos y riesgos de producción, añadiendo un nivel de automatización en los procesos mejorando así la calidad y cantidad de los productos [39]. En la tabla 4 se listan los NFRs con mayor prioridad para sistemas dentro de este dominio.

En este dominio se le da mayor atención a la eficiencia de desempeño y confiabilidad del sistema, al tratarse de un contexto en el que se tratan seres vivientes, que dependen del suministro de nutrientes, agua y algunos químicos para el control de plagas, sin excesos que puedan afectar el ambiente. A pesar de que solo un documento hace referencia a la usabilidad y mantenibilidad, el diseño de interfaces de baja complejidad es deseable con el objetivo de que cualquier persona con pocos o ningún conocimiento de programación pueda modificar y añadir funciones, debido a que estos sistemas generalmente se encuentran en zonas rurales en donde no se cuenta con personal experto que pueda solucionar problemas técnicos en el momento que se presente alguna eventualidad.

4.2.4 Fábrica inteligente

La clave de la industria inteligente está centrada en la idea crear sistemas adaptables a las condiciones cambiantes del entorno [55], apoyados en tecnologías innovadoras capaces de ajustar automáticamente las líneas de producción de manera eficiente, incrementando la producción y al mismo tiempo reduciendo los costos de los procesos sin afectar la calidad de los productos finales [56]–[58]. La automatización de los procesos dentro de las fábricas se logra con la integración de dispositivos inteligentes, entre los que incluyen aquellos de naturaleza robótica [55], que den paso a una mayor precisión en la ejecución y monitorización de las tareas, lo que reduce la intervención humana.

Tabla 5. Requerimientos no funcionales para una plataforma IoT en el dominio de Fábricas Inteligentes.

image021

Estos dispositivos no solo ejecutan tareas específicas, también son responsables de recolectar datos que brinden información acerca del estado de las maquinarias, identificando posibles fallas de manera temprana, aportando en el ahorro de tiempo y presupuesto, además de la sostenibilidad y calidad del sistema, los cuales son factores de vital importancia a la hora de realizar análisis predictivos de las operaciones del negocio para futuras inversiones [39], [58], [59].

Los autores de [20], [30] hacen énfasis que dentro de este dominio, los sistemas de IoT se enfrentan a los NFRs señalados en la tabla 5.

En el dominio de fábricas inteligentes resaltan como propiedades deseables la eficiencia de desempeño en términos de consumo de ancho de banda, tiempos de respuesta y precisión en la ejecución de las tareas; con vistas a mitigar errores durante la producción y poder realizar los arreglos necesarios sin desperdiciar recursos.

La seguridad es deseable; sin embargo, es la mantenibilidad la que genera mayor interés en el sentido de que este contexto se presta para implementaciones a gran escala, lo que resalta la importancia de componentes reutilizables. Estos componentes deben tener propósitos bien definidos y ser de fácil configuración, de manera que al realizar las modificaciones al sistema no sea necesario la prolongación de los tiempos fuera de servicio, los cuales afectarían negativamente la cadena de producción derivando en pérdidas frente a condiciones de alta competitividad, propias de la actualidad.

5. Discusión

Los NFRs definen las propiedades de calidad que se esperan del producto de software. En la Tabla 1, fueron presentados los NFRs que poseen en común los sistemas de IoT, evidenciando que la mayoría de los esfuerzos de diseño se han centrado en garantizar la escalabilidad del sistema de acuerdo con las necesidades actuales y futuras, sin afectar su desempeño, manteniendo especial atención en la comunicación entre todos los dispositivos y disponibilidad de los servicios involucrados; fortaleciendo las medidas de seguridad para salvaguardar la información que procesa el sistema.

Los sistemas de IoT, independientemente de su dominio, presentan la propiedad de sensibilidad al entorno o al contexto, relacionada a la capacidad del sistema de recolectar datos de las condiciones de su entorno mediante múltiples sensores y transmitirlos para su procesamiento con el fin de obtener información relevante para la toma de decisiones del sistema.

En las tablas 2, 3, 4 y 5; se listan las características de calidad reportadas como prioritarias en cada dominio, tomando como referencia la norma ISO/IEC 25010; no obstante, es el dominio el que define qué aspectos del sistema se contemplan para cada una de ellas, como se detalla a continuación:

5.1 Eficiencia de desempeño

La eficiencia de desempeño, relacionada al comportamiento, capacidad y utilización de recursos del sistema; figura como esencial en cada dominio.

En el caso de la ciudad inteligente, esta característica es definida por la factibilidad de la inversión y mantenimiento de un servicio de este tipo; es decir, el interés reside en el costo-beneficio que se percibe de la solución de IoT; pero también envuelve un factor crítico para la adecuada monitorización del entorno con vistas a la prevención de desastres. Para los hogares inteligentes y el sector agrícola surge como fundamental el factor de consumo energético en el que se prefieren soluciones que garanticen mayor tiempo de vida a los dispositivos que generalmente utilizan baterías como fuente de poder.

Para la agricultura inteligente aspectos técnicos como la ubicación de los sensores y topología de red, influyen en el alcance y eficiencia del sistema.

En el dominio de las fábricas inteligentes, esta característica está determinada por el consumo del ancho de banda y tiempos de respuesta del sistema. El sector industrial se caracteriza por poseer infraestructuras de gran escala, con variedad de maquinarias con propósitos específicos que generan enormes volúmenes de datos que al ser transmitidos para su procesamiento pueden saturar la red y causar tiempos muertos en la producción.

Un factor común para todos los dominios es el nivel de autonomía del sistema, puesto que las soluciones IoT buscan reducir la intervención del humano en la ejecución de los procesos, es preferible que estos sistemas posean un nivel de inteligencia para ejecutar acciones al momento de darse situaciones que lo ameriten.

El nivel de inteligencia va a depender de la naturaleza de los algoritmos de toma de decisiones que en ellos se utilicen. Estos pueden variar desde un simple conjunto de reglas para ejecutar determinada acción hasta complejos algoritmos de aprendizaje de máquina que son capaces de identificar patrones de comportamiento para ajustar el sistema.

5.2 Usabilidad

Los dominios de hogares y agricultura inteligente a menudo son instalados y configurados por usuarios comunes que no poseen conocimientos técnicos especializados en la manipulación de este tipo de sistemas. Esto hace imprescindible el diseño de interfaces sencillas que permitan una fácil programación o configuración del software y hardware de las soluciones IoT.

También se hace necesaria la transparencia, es decir, proveer retroalimentación entendible sobre el estado del sistema, de modo, que sea sencillo para los usuarios conocer si las configuraciones se han realizado correctamente y que todo está funcionando de acuerdo con lo esperado.

5.3 Confiabilidad

La confiabilidad en los dominios agrícola y de hogares inteligentes es vista principalmente desde la tolerancia a fallos, así como a la disponibilidad de los datos recolectados y servicios asociados.

Para la agricultura inteligente, un sistema confiable es vital debido a la naturaleza de los objetos con los que trabaja, plantas, seres vivientes que requieren constante monitorización para garantizar su adecuado desarrollo.

5.4 Seguridad

La seguridad, una característica común, presenta niveles de fortaleza de acuerdo con el dominio.

En las ciudades inteligentes se requieren técnicas de autenticación, identificación, integridad y privacidad de los datos que transitan en la red, debido al carácter sensitivo que estos pueden tener y que no deben ser alterados por terceros sin autorización en ninguna circunstancia; mientras que, para las fábricas y sector agrícola, aplicar administración de privilegios y mecanismos de control de acceso a los dispositivos es primordial.

En el ámbito de los hogares inteligentes, va ligado a la privacidad en términos de que los usuarios indican que se desconoce qué terceros pueden ver sus datos sobre todo aquellos que involucran aspectos de su rutina diaria, como los horarios en los que usualmente no se encuentran en casa.

5.5 Mantenibilidad

La mantenibilidad es la propiedad que permite a los sistemas ser modificados, analizados y reutilizados sin complicaciones. El sector de las fábricas inteligentes destaca mayor interés en esta propiedad por la naturaleza de las dimensiones de un entorno industrial en el que los equipos y maquinarias deben ser reemplazados cada determinado tiempo, por motivos de desgaste; y ser insertados sin afectar el funcionamiento global del sistema, lo que deriva en reducción de costos.

Para una solución de agricultura u hogar inteligente, esta característica va de la mano con la usabilidad, pues se debe tener una interfaz integral en la que los usuarios pueden crear nuevas funciones o modificar las existentes de acuerdo con sus necesidades individuales, sobre todo si se está en un lugar donde no es posible obtener ayuda de personal técnico en caso de urgencia.

5.6 Portabilidad

La portabilidad está asociada directamente con la movilidad o cualidad de los dispositivos que integran el sistema de migrar de una red a otra, sin perder su identidad. Es un aspecto deseable en los dominios de ciudades y hogares inteligentes, donde existen una gama de puntos a través de los que los dispositivos pueden acceder a internet; sin embargo, en el dominio de la agricultura inteligente no tiene mayor relevancia ya que el contexto de aplicación está generalmente ubicado en zonas alejadas a los centros urbanos donde no se cuenta con muchas opciones de infraestructuras comerciales. Por su parte, en una fábrica inteligente, los procesos de producción se dan dentro de un espacio definido, limitando las interacciones de los dispositivos con los elementos que son relevantes para la ejecución de sus tareas, sin necesidad de movilizarse a otro punto o utilizar puntos de conexión a red externos.

6. Conclusión

En este documento se realizó una revisión literaria en la que se identificaron los requerimientos no funcionales comunes para los sistemas basados en IoT, definiendo luego los aspectos específicos o de interés para dominios de aplicación como ciudades, hogares, agricultura y fábricas inteligentes.

En el proceso se utilizó la norma ISO/IEC 25010 como referencia para la identificación de los requerimientos no funcionales, evidenciando que para una misma característica se presentan diversas perspectivas dependiendo del dominio de aplicación o contexto para el cual se va a diseñar la solución IoT.

La información recabada en este documento tiene el propósito de ofrecer una guía rápida de los principales requerimientos no funcionales y condiciones a considerar al momento de diseñar un sistema para alguno de los dominios estudiados.

7. Agradecimiento

Los autores desean agradecer a la Secretaría Nacional de Ciencias, Tecnología e Innovación (SENACYT) y la Universidad Tecnológica de Panamá, por la beca para ingresar al programa de Maestría en Ciencias de Tecnologías de Información y Comunicación.

8. Referencias

[1] D. Silva, T. G. Gonçalves, and A. R. C. da Rocha, “A requirements engineering process for IoT systems,” ACM Int. Conf. Proceeding Ser., 2019.

[2] Kevin Asthon, “That ’ Internet of Things ’ Thing,” RFID J., p. 4986, 2010.

[3] B. Meyer, J.-M. Bruel, S. Ebersold, F. Galinier, and A. Naumchev, “Towards an Anatomy of Software Requirements,” in 51st International Conference, TOOLS 2019, 2019, pp. 10–40.

[4] ISO/IEC, “ISO/IEC 25010:2011 - Systems and software engineering -- Systems and software Quality Requirements and Evaluation (SQuaRE) -- System and software quality models,” 2011.

[5] H. Muccini and M. T. Moghaddam, “IoT Architectural Styles,” in Beethoven: An Event-Driven Lightweight Platform for Microservice Orchestration, vol. 1, no. September, Springer International Publishing, 2018, pp. 68–85.

[6] F. Zambonelli, “Key Abstractions for IoT-Oriented Software Engineering,” IEEE Softw., vol. 34, no. 1, pp. 38–45, 2017.

[7] J. H. Nord, A. Koohang, and J. Paliszkiewicz, “The Internet of Things: Review and theoretical framework,” Expert Syst. Appl., vol. 133, pp. 97–108, 2019.

[8] B. P. de Souza, R. C. Motta, and G. H. Travassos, “Towards the Description and Representation of Smartness in IoT Scenarios Specification,” in Proceedings of the XXXIII Brazilian Symposium on Software Engineering - SBES 2019, 2019, pp. 511–516.

[9] M. Kirsch-Pinheiro, R. Mazo, C. Souveyet, and D. Sprovieri, “Requirements Analysis for Context-oriented Systems,” Procedia Comput. Sci., vol. 83, no. Ant, pp. 253–261, 2016.

[10] J. F. Mendoza, H. Ordóñez, A. Ordóñez, and J. L. Jurado, “Architecture for embedded software in microcontrollers for Internet of Things (IoT) in fog water collection,” Procedia Comput. Sci., vol. 109, no. 2016, pp. 1092–1097, 2017.

[11] Nurbojatmiko, E. K. Budiardjo, and W. C. Wibowo, “SLR on identification & classification of non-functional requirements attributes, and its representation in functional requirements,” ACM Int. Conf. Proceeding Ser., pp. 151–157, 2018.

[12] L. Sun and J. Park, “A Process-Oriented Conceptual Framework on Non-Functional Requirements,” Commun. Comput. Inf. Sci., vol. 432 CCIS, pp. 1–15, 2014.

[13] G. Reggio, “A UML-based proposal for IoT system requirements specification,” Proc. - Int. Conf. Softw. Eng., pp. 9–16, 2018.

[14] A. Giri, S. Dutta, S. Neogy, K. Dahal, and Z. Pervez, “Internet of things (IoT),” in Proceedings of the 1st International Conference on Internet of Things and Machine Learning - IML ’17, 2017, pp. 1–12.

[15] H. Muccini, R. Spalazzese, M. T. Moghaddam, and M. Sharaf, “Self-adaptive IoT architectures: An emergency handling case study,” ACM Int. Conf. Proceeding Ser., 2018.

[16] P. M. Jacob and P. Mani, “Software architecture pattern selection model for internet of things based systems,” IET Softw., vol. 12, no. 5, pp. 390–396, 2018.

[17] R. M. Carvalho, “Dealing with Conflicts Between Non- functional Requirements of UbiComp and IoT Applications,” in 2017 IEEE 25th International Requirements Engineering Conference (RE), 2017, pp. 544–549.

[18] D. Mairiza and D. Zowghi, “Constructing a Catalogue of Conflicts among Non-functional Requirements,” Commun. Comput. Inf. Sci., vol. 230, pp. 31–44, 2011.

[19] P. Asghari, A. M. Rahmani, and H. H. S. Javadi, “Internet of Things applications: A systematic review,” Comput. Networks, vol. 148, pp. 241–261, Jan. 2019.

[20] C. Puliafito, E. Mingozzi, F. Longo, A. Puliafito, and O. Rana, “Fog computing for the Internet of Things: A survey,” ACM Trans. Internet Technol., vol. 19, no. 2, 2019.

[21] B. Kitchenham, O. Pearl Brereton, D. Budgen, M. Turner, J. Bailey, and S. Linkman, “Systematic literature reviews in software engineering – A systematic literature review,” Inf. Softw. Technol., vol. 51, no. 1, pp. 7–15, Jan. 2009.

[22] G. White, V. Nallur, and S. Clarke, “Quality of service approaches in IoT: A systematic mapping,” J. Syst. Softw., vol. 132, pp. 186–203, 2017.

[23] X. Thang Nguyen, H. Tam Tran, H. Baraki, and K. Geihs, “Optimization of non-functional properties in Internet of Things applications,” J. Netw. Comput. Appl., vol. 89, pp. 120–129, 2017.

[24] E. Cavalcante, M. P. Alves, T. Batista, F. C. Delicato, and P. F. Pires, “An Analysis of Reference Architectures for the Internet of Things,” in Proceedings of the 1st International Workshop on Exploring Component-based Techniques for Constructing Reference Architectures - CobRA ’15, 2015, pp. 13–16.

[25] P. Pace, G. Aloi, R. Gravina, G. Fortino, G. Larini, and M. Gulino, “Towards interoperability of IoT-based health care platforms: The INTER-health use case,” BodyNets Int. Conf. Body Area Networks, pp. 12–18, 2016.

[26] C. Cabrera, A. Palade, and S. Clarke, “An evaluation of service discovery protocols in the internet of things,” in Proceedings of the Symposium on Applied Computing - SAC ’17, 2017, vol. Part F1280, pp. 469–476.

[27] M. P. Alves, F. C. Delicato, and P. F. Pires, “IoTA-MD,” in Proceedings of the Symposium on Applied Computing - SAC ’17, 2017, vol. Part F1280, pp. 1773–1780.

[28] E. F. Z. Santana, A. P. Chaves, M. A. Gerosa, F. Kon, and D. S. Milojicic, “Software platforms for smart cities: Concepts, requirements, challenges, and a unified reference architecture,” ACM Comput. Surv., vol. 50, no. 6, 2017.

[29] H. Jita and V. Pieterse, “A Framework to Apply the Internet of Things for Medical Care in a Home Environment,” in Proceedings of the 2018 International Conference on Cloud Computing and Internet of Things - CCIOT 2018, 2018, pp. 45–54.

[30] M. Brinkschulte, C. Becker, and C. Krupitzer, “Towards a QoS-aware Cyber Physical Networking Middleware Architecture,” in Proceedings of the 1st International Workshop on Middleware for Lightweight, Spontaneous Environments - MISE ’19, 2019, pp. 7–12.

[31] L. Santos, E. Silva, T. Batista, E. Cavalcante, J. Leite, and F. Oquendo, “An architectural style for internet of things systems,” Proc. ACM Symp. Appl. Comput., pp. 1488–1497, 2020.

[32] V. Sachidananda, J. Toh, S. Siboni, S. Bhairav, A. Shabtai, and Y. Elovici, “Let the cat out of the bag: A holistic approach towards security analysis of the internet of things,” IoTPTS 2017 - Proc. 3rd ACM Int. Work. IoT Privacy, Trust. Secur. co- located with ASIA CCS 2017, pp. 3–10, 2017.

[33] M. Kassab, V. V. G. Neto, and A. Allian, “Investigating quality requirements from a human perspective in IoT-based software architectures for education,” in Proceedings of the 13th European Conference on Software Architecture - ECSA ’19 - volume 2, 2019, vol. 2, pp. 241–244.

[34] S. Cohen and W. Money, “Establishing Smart City Technical Standards and Guidance,” in Proceedings of the 26th International Conference on World Wide Web Companion - WWW ’17 Companion, 2017, pp. 1161–1166.

[35] S. Benyahia, H. Houmani, and A. Namir, “MARSC,” in Proceedings of the 2018 2nd High Performance Computing and Cluster Technologies Conference on ZZZ - HPCCT 2018, 2018, pp. 90–97.

[36] J. Li and N. Chen, “Geospatial sensor web resource management system for Smart City: Design and implementation,” Proc. - 14th IEEE/ACM Int. Symp. Clust. Cloud, Grid Comput. CCGrid 2014, pp. 819–827, 2014.

[37] W. M. da Silva, A. Alvaro, G. H. R. P. Tomas, R. A. Afonso,K. L. Dias, and V. C. Garcia, “Smart cities software architectures,” in Proceedings of the 28th Annual ACM Symposium on Applied Computing - SAC ’13, 2013, p. 1722.

[38] M. Witti and D. Konstantas, “A secure and privacy-preserving internet of things framework for smart city,” ACM Int. Conf. Proceeding Ser., pp. 145–150, 2018.

[39] S. Munirathinam, Industry 4.0: Industrial Internet of Things (IIOT), 1st ed., vol. 117, no. 1. Elsevier Inc., 2020

[40] S. N. Mahalank, K. B. Malagund, and R. M. Banakar, “Non functional requirement analysis in IoT based smart traffic management system,” Proc. - 2nd Int. Conf. Comput. Commun. Control Autom. ICCUBEA 2016, 2017.

[41] T. Jakobi et al., “Evolving Needs in IoT Control and Accountability,” Proc. ACM Interactive, Mobile, Wearable Ubiquitous Technol., vol. 2, no. 4, pp. 1–28, Dec. 2018.

[42] S. Balakrishnan, H. Vasudavan, and R. K. Murugesan, “Smart Home Technologies,” in Proceedings of the 6th International Conference on Information Technology: IoT and Smart City - ICIT 2018, 2018, pp. 120–127.

[43] H. Liu, C. Li, X. Jin, J. Li, Y. Zhang, and D. Gu, “Smart solution, poor protection: An empirical study of security and privacy issues in developing and deploying smart home devices,” IoT S P 2017 - Proc. 2017 Work. Internet Things Secur. Privacy, co-located with CCS 2017, no. I, pp. 13–18, 2017.

[44] P. Arcaini et al., “Smart home platform supporting decentralized adaptive automation control,” in Proceedings of the 35th Annual ACM Symposium on Applied Computing, 2020, pp. 1893–1900.

[45] T. Perumal, M. N. Sulaiman, N. Mustapha, A. Shahi, and R. Thinaharan, “Proactive architecture for Internet of Things (IoTs) management in smart homes,” 2014 IEEE 3rd Glob. Conf. Consum. Electron. GCCE 2014, pp. 16–17, 2014.

[46] A. Elsts, G. Oikonomou, X. Fafoutis, and R. Piechocki, “Internet of Things for smart homes: Lessons learned from the SPHERE case study,” GIoTS 2017 - Glob. Internet Things Summit, Proc., 2017.

[47] Tzounis, N. Katsoulas, T. Bartzanas, and C. Kittas, “Internet of Things in agriculture, recent advances and future challenges,” Biosyst. Eng., vol. 164, pp. 31–48, 2017.

[48] Villa-Henriksen, G. T. C. Edwards, L. A. Pesonen, O. Green, and C. A. G. Sørensen, “Internet of Things in arable farming: Implementation, applications, challenges and potential,” Biosyst. Eng., vol. 191, pp. 60–84, 2020.

[49] X. Li et al., “Internet of Things to network smart devices for ecosystem monitoring,” Sci. Bull., vol. 64, no. 17, pp. 1234– 1245, 2019.

[50] F. Al-Turjman and H. Altiparmak, “Smart agriculture framework using UAVs in the Internet of Things era,” in Drones in Smart-Cities, Elsevier, 2020, pp. 107–122.

[51] Verdouw, H. Sundmaeker, B. Tekinerdogan, D. Conzon and T. Montanaro, “Architecture framework of IoT-based food and farm systems: A multiple case study,” Comput. Electron. Agric., vol. 165, no. July, p. 104939, 2019.

[52] K. Gunasekera, A. N. Borrero, F. Vasuian, and K. P. Bryceson, “Experiences in building an IoT infrastructure for agriculture education,” Procedia Comput. Sci., vol. 135, pp. 155–162, 2018.

[53] R. S. Alonso, I. Sittón-Candanedo, Ó. García, J. Prieto, and S. Rodríguez-González, “An intelligent Edge-IoT platform for monitoring livestock and crops in a dairy farming scenario,” Ad Hoc Networks, vol. 98, p. 102047, Mar. 2020.

[54] A. Sinha, G. Shrivastava, and P. Kumar, “Architecting user- centric internet of things for smart agriculture,” Sustain. Comput. Informatics Syst., vol. 23, pp. 88–102, 2019.

[55] G. Frank, L. S. Dalenogare, and N. F. Ayala, “Industry 4.0 technologies: Implementation patterns in manufacturing companies,” Int. J. Prod. Econ., vol. 210, no. September 2018, pp. 15–26, Apr. 2019.

[56] J. Cadavid, M. Alférez, S. Gérard, and P. Tessier, “Conceiving the model-driven smart factory,” in Proceedings of the 2015 International Conference on Software and System Process - ICSSP 2015, 2015, vol. 24-26-Augu, pp. 72–76.

[57] Dhungana, A. Falkner, A. Haselböck, and H. Schreiner, “Smart factory product lines,” in Proceedings of the 19th International Conference on Software Product Line - SPLC ’15, 2015, pp. 201–210.

[58] J. Al-Jaroodi, N. Mohamed, and I. Jawhar, “A service-oriented middleware framework for manufacturing industry 4.0,” ACM SIGBED Rev., vol. 15, no. 5, pp. 29–36, Nov. 2018.

[59] T. Kramp, R. van Kranenburg, and S. Lange, Introduction to the internet of things. 2013.