INTRODUCCIÓN
La Ingeniería de Requisitos es la rama de la Ingeniería de Software que se ocupa de los objetivos del mundo real, las funciones y las limitaciones de los sistemas de software. También le preocupa la relación de estos factores con las especificaciones precisas del comportamiento del software y su evolución en el tiempo y entre las familias de software (Bennaceur, Tun, Yu, & Nuseibeh, 2018). Durante varias décadas, esta disciplina fue relegada por la poca atención que recibía por parte de los desarrolladores e ingenieros de software y ni siquiera se tomaba en cuenta como un área independiente.
Fue a partir de la década de los 80 del pasado siglo cuando varios autores se percataron de la importancia de realizar correcta y eficientemente una Ingeniería de Requisitos (IR) para influir directamente en la calidad y la exitosa terminación de un producto de software. Un ejemplo de esto lo constituye Brooks al expresar que: “Lo más difícil en la construcción de un sistema software es decidir precisamente qué construir… No existe tarea con mayor capacidad de lesionar al sistema, cuando se hace mal... Ninguna otra tarea es tan difícil de rectificar a posteriori...” (Brooks, 1987). A partir de esta publicación, la IR se comenzó a considerarse por los investigadores como un campo independiente de conocimiento.
Varios han sido los autores que han determinado que un manejo inadecuado de los requisitos puede causar, en un alto por ciento, el fracaso o terminación cuestionada de un proyecto de software (Leffingwell & Widrig, 2003; Wiegers, 2005; Md Sarif, Ramly, Yusof, Fadzillah, & Sulaiman, 2018; Rosato, 2018). A partir de estas investigaciones se hizo evidente la importancia de la correcta formalización de los requisitos, de forma tal que la Especificación de Requerimientos de Software proporcione las propiedades básicas del sistema de requisitos.
Para desarrollar correctamente esta actividad se han propuesto diferentes enfoques, que recaen mayormente en el campo de la Inteligencia Artificial. De esta forma se ve que las propuestas van desde el enfoque basado en conocimiento y razonamiento basado en casos (Noll & Ribeiro, 2007) hasta el enfoque basado en ontologías (Assawamekin, Sunetnanta, & Pluempitiwiriyawej, 2010; Kayed, Nizar, & Alfayoumi, 2010; Farfeleder et al., 2011; Siegemund, Thomas, Zhao, & Pan, 2011; Siegemund et al., 2013).
Como resultado de una revisión de la bibliografía relacionada con el uso de ontologías en la Ingeniería de Software y más específicamente dentro de la Ingeniería de Requisitos, se puede observar un creciente interés en esta área en los últimos tiempos. En consecuencia, el objetivo de esta investigación es analizar más a fondo esta tendencia, identificando los principales espacios de publicación, autores destacados, regiones geográficas más activas y enfoques más abordados.
Este artículo presenta los resultados de una revisión bibliográfica de documentos publicados desde el 2013 hasta la actualidad y se realizó siguiendo un protocolo de revisión predefinido, como se explicará más adelante.
MÉTODOS O METODOLOGÍA COMPUTACIONAL
Se realizó una revisión bibliográfica utilizando la metodología propuesta por (Gómez-Luna, Fernando-Navas, Aponte-Mayor, & Betancourt-Buitrago, 2014) la cual facilita la adquisición de la información disponible, la identificación de los principales autores, el número de publicaciones por año, las principales áreas de trabajo y las tendencias en el área objeto de investigación, en este caso el uso de las ontologías como apoyo en la IR. Las bases de datos consultadas fueron: ScienceDirect, Scopus, SpringerLink, ACM Digital Library, IEEE Xplore. Se seleccionaron artículos, libros, disertaciones doctorales, presentaciones y revisiones sistemáticas de la literatura publicadas entre el 2007 y el 2018 para garantizar la actualidad del tema estudiado.
Ingeniería de Requisitos
Se puede definir IR como el proceso de descubrir, analizar, documentar y verificar los servicios proporcionados por el sistema y sus restricciones operativas (Sommerville, 2011). Por otra parte (Pressman, 2005) plantea que la IR proporciona el mecanismo apropiado para entender lo que el cliente quiere, analizar las necesidades, evaluar la factibilidad, negociar una solución razonable, especificar la solución sin ambigüedades, validar la especificación, y administrar los requisitos conforme éstos se transforman en un sistema operacional. La IR se entiende como una subtarea o disciplina de la Ingeniería de Software, que propone métodos y herramientas para facilitar la definición de todos los objetivos y funcionalidades deseados del software.
Los principales autores de esta área han identificado las actividades que se realizan en la IR. Entre los diferentes puntos de vista se tiene que (Pressman, 2005) identifica 7 actividades: inicio, obtención, elaboración, negociación, especificación, validación y gestión. (Sommerville, 2011) la subdivide en cuatro subprocesos de alto nivel: estudio de la viabilidad, obtención y análisis, y validación; actividades con las que coincide (Dermeval et al., 2014). En el caso del SWEBOK (Society, Bourque, & Fairley, 2014) se definen como actividades: elicitación, análisis, especificación y validación. Y por último se tiene a (Bennaceur et al., 2018) que plantean como actividades: elicitación, modelado y análisis, aseguramiento y gestión y evolución. Todas estas actividades generan diversos resultados para documentar los resultados obtenidos a lo largo del proceso de IR. Específicamente en la fase de especificación (obtención y análisis o modelado y análisis en el caso de los demás autores) es donde más documentación es generada producto de la descripción o Especificación de Requisitos. Estas especificaciones son generalmente complementarias y muy difíciles de definir. Por lo tanto, los ingenieros de software a menudo se enfrentan a la necesidad de rediseñar e iterar debido a la falta de información y las diferencias en la interpretación (Castañeda, Ballejos, Caliusco, & Galli, 2014). Para el desarrollo exitoso de un software es necesario prestar especial atención a las actividades de la IR, ya que de aquí se obtienen requisitos consistentes y completos que serán la base de las fases siguientes de desarrollo. Por lo tanto, se deben proporcionar herramientas efectivas para lograr un análisis completo, teniendo en cuenta las necesidades particulares y generales, y para gestionar los requisitos como un proceso completo de colaboración (Castañeda et al., 2014).
Ontologías en la IR
La palabra ontología denota la ciencia del ser y las descripciones para la organización, designación y categorización de la existencia (Gruber, 1993). Moviéndose a la informática, específicamente en el campo de la inteligencia artificial y las tecnologías de la información, una ontología se entiende como un artefacto representacional para especificar la semántica o el significado sobre la información o el conocimiento en un dominio determinado en una forma estructurada (Castañeda, Ballejos, Caliusco, & Galli, 2014). En la gestión del conocimiento, la ontología es una herramienta formal para describir el conocimiento o los elementos en forma explícita. La información transformada en ontología será más precisa, completa, visualizada, compartible y reutilizable (Sitthithanasakul & Choosri, 2016).
Existen varios autores que han investigado el uso de las ontologías en la ISW y específicamente en la IR, (Assawamekin, Sunetnanta, & Pluempitiwiriyawej, 2010; Kayed, Nizar, & Alfayoumi, 2010; Farfeleder et al., 2011; Siegemund, Thomas, Zhao, & Pan, 2011; Siegemund et al., 2013; Dermeval et al., 2014; Castañeda et al., 2014; Parreira & Penteado, 2015; Sitthithanasakul & Choosri, 2016; Sitthithanasakul, 2017; Trokanas, Koo, & Cecelja, 2018), por solo citar algunos.
En cuanto al uso de ontologías en las actividades de la IR, se puede decir que la mayor incidencia está en la actividad de Especificación, que es donde se genera la mayor cantidad de documentación. Según los estudios de (Castañeda et al., 2014) y (Dermeval et al., 2016) esta actividad sobrepasa el 80% con respecto a las otras en el uso de ontologías, tanto para describir los requisitos y manejar adecuadamente la reusabilidad, como para el uso de plantillas que permiten capturar conocimiento. Uno de los enfoques del uso de plantillas propuesto por (Groza, Schutz, & Handschuh, 2007) y retomado por (Poggi, 2015), describe una solución para generar diferentes representaciones del mismo documento, conocidas como plantillas, basadas en los metadatos creados mediante el uso de un marco de autoría y anotación particular. Propuestas como esta pueden ser de gran ayuda para representar especificaciones de requisitos, promoviendo la reutilización de contenido relacionado con la especificación de requisitos, utilizando representaciones de estructuras diversas.
De los lenguajes más utilizados relacionados con las ontologías en la IR se encuentran: Web Ontology Language (OWL) el lenguaje de consulta SPARQL, la Descripción Lógica y el lenguaje de reglas SWRL como lo más utilizados y recomendados por el World Wide Web Consortium (W3C) (“W3C Data Activity - Building the Web of Data,” 2013) según (Dermeval et al., 2014). Tomando como base la investigación realizada por los autores anteriores, se puede decir que existe una preocupación por utilizar los lenguajes recomendados por el W3C para especificar y manipular ontologías. Sin embargo, se debe destacar que, según este estudio, aunque OWL es el lenguaje de ontología más expresivo y ampliamente aceptado, solo fue utilizado por el 50% de los artículos incluidos en la revisión que se realizó. Por lo tanto, se puede afirmar que muchos estudios que proponen utilizar ontologías en el proceso de IR no están utilizando las tecnologías estándar para especificar y manejar ontologías formales. De hecho, se evidenció la propuesta de nuevos enfoques basados en ontologías, como el caso de (Avdeenko & Pustovalova, 2016) que proponen un enfoque híbrido que combina el mecanismo de ontología y reglas de producción. Este permite reducir el número de formulaciones diferentes de los términos utilizados para describir conceptos similares o idénticos, amplía el alcance de los conceptos, herramientas y modelos existentes debido a su combinación y uso compartido, permite moverse rápidamente y con menos costo de un tipo de documento estándar de la Especificación de Requisitos de Software a otro tipo, y permite el proceso de selección del tipo de especificaciones de requisitos, los parámetros adecuados del proyecto y el equipo de desarrollo, y por lo tanto los métodos de trabajo con los requisitos.
En cuanto a los beneficios que para la IR representa el uso de ontologías se pueden citar los siguientes (Castañeda et al., 2014), (Dermeval et al., 2016), (Wang, 2017):
Es muy útil para estandarizar y comprender los requisitos (reducir la ambigüedad) y para la comprobación automática de errores y el análisis de conflictos de los requisitos (verificando la inconsistencia e incompletitud de los requisitos con menos esfuerzo).
Las ontologías son útiles para representar el conocimiento del dominio, guiar la obtención de requisitos y, por lo tanto, para producir especificaciones de requisitos con mejor calidad.
El uso de ontologías es eficaz para gestionar los cambios de los requisitos en general, tanto funcionales como no funcionales.
El uso de ontologías puede facilitar la comunicación entre las partes interesadas (por ejemplo, cliente, equipo de desarrollo, etc) durante el proceso de IR.
RESULTADOS Y DISCUSIÓN
De los documentos consultados al respecto se puede decir que los años de más actividad científica en el área son el 2014 y del 2016 a la actualidad con una tendencia al aumento en el 2017 y 2018. En la Figura 1 se ilustra mejor esta conducta.
Fuente: Resultado de la investigación.
Este comportamiento denota interés por parte de los investigadores en el uso de las ontologías en las diferentes actividades de la IR, centrándose en los últimos años fundamentalmente, en mejorar los documentos de Especificación de Requisitos (Avdeenko & Pustovalova, 2016), (Mallya & Kothari, 2017), (Trokanas et al., 2018), (Kuchta & Padhiyar, 2018) y las propiedades básicas de los requisitos: corrección, integridad, consistencia, inequidad, trazabilidad (Avdeenko & Pustovalova, 2016).
Respecto a la distribución geográfica, el foco de la investigación se centra en Europa, encontrándose un 49 % de los investigadores que han publicado trabajos relacionados con la temática concentrados en esta área. Como consecuencia, los países con más publicaciones son Alemania y Reino Unido con 10 y 9 investigadores respectivamente, seguidos por Brasil con 9 igualmente. Cabe destacar que este es el país que más sobresale en el área de América, con líderes investigativos a nivel mundial. En las figura 2 y figura 3 se puede apreciar este comportamiento.
De los 65 autores que se encontraron, los principales se ubican en Alemania (Uwe Assmann y Katja Siegemund), Argentina (Verónica Castañeda y Luciana C. Ballejos), Brasil (Diego Dermeval), Tailandia (Noppon Choosri y Supavas Sitthithanasakul) y Reino Unido (Pericles Loucopoulos), coincidiendo con las áreas donde se aprecian los focos de investigación en la temática. Según el estudio realizado se evidenció la relación entre varios de estos autores y la influencia que han ejercido sobre ellos alguno de los otros, o la que han ejercido ellos sobre los demás. En la tabla 1 se relacionan los autores que fueron consultados y la cantidad de artículos publicados relacionados con el uso de ontologías en la IR.
Fuente: Resultado de la investigación.
Fuente: Resultado de la Investigación.
CONCLUSIONES
En este trabajo, nuestro objetivo fue analizar el uso de las ontologías en la ingeniería de requisitos a través de la realización de una revisión bibliográfica. Más específicamente, recopilar investigaciones que hablan del tema tratado que permitieron concluir que las ontologías son beneficiosas para mejorar los documentos sobre especificaciones de requisitos, mejorar la comunicación y gestionar cambios a los requisitos. Además, se lograron identificar los principales espacios de publicación, autores destacados, regiones geográficas más activas y enfoques más abordados.
Sesenta artículos sobre el tema de revisión fueron revisados, en los que se identificaron cinco fases principales del proceso de IR y de ellas, la que ha sido objeto de mayor atención por parte de los investigadores, los principales idiomas relacionados con la ontología y usados en la IR, los principales enfoques que se siguen, así como las áreas geográficas donde recae el foco de la investigación, los principales autores y los beneficios del uso de las ontologías en la IR. En cuanto a los resultados que se persiguen los mismos están relacionados con algunos de los beneficios que han sido documentados. Específicamente se puede identificar la mejora de los documentos de Especificación de Requisitos y de las propiedades básicas de los requisitos: corrección, integridad, consistencia, inequidad, trazabilidad.
Entre las regiones geográficas donde se centra el foco de la investigación se tiene a Europa, liderado por investigadores pertenecientes a la Universidad de Dresden en Alemania y a la Universidad de Manchester en Reino Unido. Lo sigue Asia con la Universidad de Chiang Mai de Tailandia y América con la Universidad Federal de Campiña Grande en Brasil y la Universidad Tecnológica Nacional de Argentina. Además, se encontró que casi la mitad de los documentos utilizan idiomas recomendados por el W3C, siendo OWL el más significativo.
Como trabajo futuro, se tiene la intención de continuar la revisión para explorar el uso de las ontologías en otras fases del proceso de desarrollo de software.