Framework Quality in Use

Procedimiento de verificación de la Calidad en Uso en el proceso de desarrollo de software

El proyecto “Diseño de un procedimiento de la verificación de la calidad en uso en el proceso de desarrollo de software de Axpe Consulting”, es desarrollado por AXPE Consulting Cantabria en colaboración con la Universidad de Cantabria, y cuenta con financiación de la Sociedad para el Desarrollo Regional de Cantabria (SODERCAN) dentro del programa “I+C=+C 2019 – APOYO A PROYECTOS DE I+D EN EL ÁMBITO DE LAS TIC”, con número de expediente ID19-XX-030.

Introducción

Este proyecto tiene como meta principal el diseño de un procedimiento software que permita verificar la calidad en uso durante los procesos de desarrollo software de Axpe Consulting. El concepto de calidad en uso (o Quality in Use, QinU) se define como “la visión de calidad de los usuarios en un contexto que integra software, y es medida sobre los resultados de usar el software en ese contexto, antes que sobre las propiedades del software en sí mismo”. Esto se diferencia del concepto tradicional de calidad del producto, que se mide sobre las propiedades estáticas de un software según su desarrollo e implementación (como el diseño, las funcionalidades o el funcionamiento de este). De esta forma, la calidad en uso guarda fuerte relación con la experiencia del usuario al interactuar con un sistema software, al referirse a la percepción de calidad que tiene el usuario. La norma ISO/IEC 25000:2011 SQuaRE (System and Software Quality Requirements and Evaluation) recoge en su modelo la calidad en uso y la compone por cinco características principales (efectividad, eficiencia, libertad de riesgos, satisfacción y adecuación al contexto). En este caso, entendemos contexto como la información, elementos y condiciones, que rodean y caracterizan la interacción entre el usuario y un sistema informático, ambos incluidos. Todas estas características se establecen sobre el resultado de la interacción del usuario. Este modelo considera la posible influencia del contexto de uso en la interacción y puede ser aplicado a cualquier sistema interactivo.

En la actualidad, la evaluación de la calidad en uso de un sistema no está presente en el proceso de desarrollo software como sí lo está la evaluación de la calidad del producto. Además, los métodos de evaluación de la experiencia del usuario se basan en la participación explícita del usuario a través de encuestas o entrevistas. El procedimiento resultante de este proyecto tiene como propósito permitir la evaluación de la calidad en uso que establece el modelo de la norma SQuaRE, de forma semiautomática y prescindiendo de mecanismos más costosos y complejos que impliquen activamente al usuario. Para ello, este entorno se apoya en los datos de uso (repositorios de log, o simplemente logs) de la comunidad de usuarios en una aplicación software para estimar y analizar las características de calidad en uso. A través de mecanismos basados en técnicas de aprendizaje automático y modelos probabilísticos se extraen resultados cuantitativos y cualitativos para el aseguramiento de la calidad en uso. La integración del procedimiento diseñado en el proceso de desarrollo software de Axpe Consulting tiene como finalidad permitir la consideración de la calidad en uso dentro de los análisis y evaluaciones de calidad del producto ya existentes y conocidos. Esto permitiría una mayor adaptación de los servicios software a la mejora de la experiencia del usuario de forma automática, basándose en los datos de interacción y patrones de actividad del usuario.

 

Objetivos del proyecto

El objetivo general del proyecto consiste en “el diseño de un procedimiento para asegurar la calidad en uso de los sistemas software y su integración en el proceso de desarrollo de Axpe Consulting”. Este objetivo se divide en seis objetivos específicos que se indican a continuación.

  1. Diseñar un procedimiento para evaluar la calidad en uso a partir de trazas de log.
  2. Definir un metamodelo de las tareas que soporta el sistema para evaluar características y subcaracterísticas de mitigación de riesgos y cobertura del contexto.
  3. Construir una herramienta software que automatice el procedimiento diseñado.
  4. Integrar el procedimiento en el proceso de desarrollo de Axpe Consulting.
  5. Realizar una prueba de concepto.

En el proyecto se han cumplido exitosamente estos objetivos planteados en la planificación y sus resultados se detallarán en las secciones siguientes de contenido y conclusiones del proyecto.

 

Metodología utilizada

En este proyecto se emplean diversas técnicas computacionales, estadísticas y de inteligencia artificial dirigida por datos (aprendizaje automático o aprendizaje de máquinas). De estos métodos, destacamos:

  • Preprocesado de datos: dado el enfoque dirigido por datos en el que trabaja el proyecto, se emplean técnicas típicas para el tratamiento y procesado de datos (datos de interacción de repositorios de log).
  • Aprendizaje por observación y modelos probabilísticos: empleamos técnicas típicas del aprendizaje por observación para el modelado del comportamiento de usuarios y la obtención de patrones de actividad. Este es el caso de modelos probabilistas como cadenas de Markov y autómatas probabilísticos, ambas representaciones particulares de Redes Bayesianas Dinámicas.
  • Aprendizaje no-supervisado: utilizamos métodos de aprendizaje no-supervisado, más concretamente algoritmos de segmentación o clustering (KMeans, Gaussian Mixture Models, clustering jerárquico), con el fin de agrupar los usuarios en perfiles de calidad en uso.
  • Aprendizaje supervisado: empleamos métodos del aprendizaje supervisado (clasificación y metapredictores basados en árboles decisionales) para identificar causas en las variaciones de calidad en uso según características del entorno o los usuarios.
  • Visualización de datos: para la generación de resultados, se utilizan técnicas de visualización de datos con las que facilitar el análisis de los resultados obtenidos.

Además, la definición de las métricas para estimar la calidad en uso se apoya en la norma ISO/IEC 25000:2011 SQuaRE, la cual describe un modelo de calidad software que contempla la calidad en uso y su división en características y subcaracterísticas a considerar para su evaluación.

En cuanto al ciclo de vida del software, el desarrollo sigue una metodología de tipo iterativo-incremental con la implementación de diseños, prototipos y posteriormente mejoras. Así, la construcción de un primer prototipo nos sirve de prueba de concepto sobre el que continuar aplicando los avances y mecanismos que se desarrollan en el proyecto con el objetivo de componer el entorno final. Al final de cada iteración se lleva a cabo pruebas de verificación del entorno desarrollado.

Finalmente, en el proyecto se hace uso de diversas tecnologías, lenguajes de programación y frameworks, ajustadas para cada etapa del desarrollo. Entre estas, se destaca Python, Pandas, Numpy, Scikit learn, HTML, CSS, Javascript y Vue.JS.

El proyecto “Diseño de un procedimiento de la verificación de la calidad en uso en el proceso de desarrollo de software de Axpe Consulting”, es desarrollado por AXPE Consulting Cantabria en colaboración con la Universidad de Cantabria, y cuenta con financiación de la Sociedad para el Desarrollo Regional de Cantabria (SODERCAN) dentro del programa “I+C=+C 2019 – APOYO A PROYECTOS DE I+D EN EL ÁMBITO DE LAS TIC”, con número de expediente ID19-XX-030.

Introducción

Este proyecto tiene como meta principal el diseño de un procedimiento software que permita verificar la calidad en uso durante los procesos de desarrollo software de Axpe Consulting. El concepto de calidad en uso (o Quality in Use, QinU) se define como “la visión de calidad de los usuarios en un contexto que integra software, y es medida sobre los resultados de usar el software en ese contexto, antes que sobre las propiedades del software en sí mismo”. Esto se diferencia del concepto tradicional de calidad del producto, que se mide sobre las propiedades estáticas de un software según su desarrollo e implementación (como el diseño, las funcionalidades o el funcionamiento de este). De esta forma, la calidad en uso guarda fuerte relación con la experiencia del usuario al interactuar con un sistema software, al referirse a la percepción de calidad que tiene el usuario. La norma ISO/IEC 25000:2011 SQuaRE (System and Software Quality Requirements and Evaluation) recoge en su modelo la calidad en uso y la compone por cinco características principales (efectividad, eficiencia, libertad de riesgos, satisfacción y adecuación al contexto). En este caso, entendemos contexto como la información, elementos y condiciones, que rodean y caracterizan la interacción entre el usuario y un sistema informático, ambos incluidos. Todas estas características se establecen sobre el resultado de la interacción del usuario. Este modelo considera la posible influencia del contexto de uso en la interacción y puede ser aplicado a cualquier sistema interactivo.

En la actualidad, la evaluación de la calidad en uso de un sistema no está presente en el proceso de desarrollo software como sí lo está la evaluación de la calidad del producto. Además, los métodos de evaluación de la experiencia del usuario se basan en la participación explícita del usuario a través de encuestas o entrevistas. El procedimiento resultante de este proyecto tiene como propósito permitir la evaluación de la calidad en uso que establece el modelo de la norma SQuaRE, de forma semiautomática y prescindiendo de mecanismos más costosos y complejos que impliquen activamente al usuario. Para ello, este entorno se apoya en los datos de uso (repositorios de log, o simplemente logs) de la comunidad de usuarios en una aplicación software para estimar y analizar las características de calidad en uso. A través de mecanismos basados en técnicas de aprendizaje automático y modelos probabilísticos se extraen resultados cuantitativos y cualitativos para el aseguramiento de la calidad en uso. La integración del procedimiento diseñado en el proceso de desarrollo software de Axpe Consulting tiene como finalidad permitir la consideración de la calidad en uso dentro de los análisis y evaluaciones de calidad del producto ya existentes y conocidos. Esto permitiría una mayor adaptación de los servicios software a la mejora de la experiencia del usuario de forma automática, basándose en los datos de interacción y patrones de actividad del usuario.

 

Objetivos del proyecto

El objetivo general del proyecto consiste en “el diseño de un procedimiento para asegurar la calidad en uso de los sistemas software y su integración en el proceso de desarrollo de Axpe Consulting”. Este objetivo se divide en seis objetivos específicos que se indican a continuación.

  1. Diseñar un procedimiento para evaluar la calidad en uso a partir de trazas de log.
  2. Definir un metamodelo de las tareas que soporta el sistema para evaluar características y subcaracterísticas de mitigación de riesgos y cobertura del contexto.
  3. Construir una herramienta software que automatice el procedimiento diseñado.
  4. Integrar el procedimiento en el proceso de desarrollo de Axpe Consulting.
  5. Realizar una prueba de concepto.

En el proyecto se han cumplido exitosamente estos objetivos planteados en la planificación y sus resultados se detallarán en las secciones siguientes de contenido y conclusiones del proyecto.

 

Metodología utilizada

En este proyecto se emplean diversas técnicas computacionales, estadísticas y de inteligencia artificial dirigida por datos (aprendizaje automático o aprendizaje de máquinas). De estos métodos, destacamos:

  • Preprocesado de datos: dado el enfoque dirigido por datos en el que trabaja el proyecto, se emplean técnicas típicas para el tratamiento y procesado de datos (datos de interacción de repositorios de log).
  • Aprendizaje por observación y modelos probabilísticos: empleamos técnicas típicas del aprendizaje por observación para el modelado del comportamiento de usuarios y la obtención de patrones de actividad. Este es el caso de modelos probabilistas como cadenas de Markov y autómatas probabilísticos, ambas representaciones particulares de Redes Bayesianas Dinámicas.
  • Aprendizaje no-supervisado: utilizamos métodos de aprendizaje no-supervisado, más concretamente algoritmos de segmentación o clustering (KMeans, Gaussian Mixture Models, clustering jerárquico), con el fin de agrupar los usuarios en perfiles de calidad en uso.
  • Aprendizaje supervisado: empleamos métodos del aprendizaje supervisado (clasificación y metapredictores basados en árboles decisionales) para identificar causas en las variaciones de calidad en uso según características del entorno o los usuarios.
  • Visualización de datos: para la generación de resultados, se utilizan técnicas de visualización de datos con las que facilitar el análisis de los resultados obtenidos.

Además, la definición de las métricas para estimar la calidad en uso se apoya en la norma ISO/IEC 25000:2011 SQuaRE, la cual describe un modelo de calidad software que contempla la calidad en uso y su división en características y subcaracterísticas a considerar para su evaluación.

En cuanto al ciclo de vida del software, el desarrollo sigue una metodología de tipo iterativo-incremental con la implementación de diseños, prototipos y posteriormente mejoras. Así, la construcción de un primer prototipo nos sirve de prueba de concepto sobre el que continuar aplicando los avances y mecanismos que se desarrollan en el proyecto con el objetivo de componer el entorno final. Al final de cada iteración se lleva a cabo pruebas de verificación del entorno desarrollado.

Finalmente, en el proyecto se hace uso de diversas tecnologías, lenguajes de programación y frameworks, ajustadas para cada etapa del desarrollo. Entre estas, se destaca Python, Pandas, Numpy, Scikit learn, HTML, CSS, Javascript y Vue.JS.