Framework Quality in Use

Quality in Use verification procedure in the software development process

The project “Design of a quality verification procedure in use in the Axpe Consulting software development process“, is developed by AXPE Consulting Cantabria in collaboration with the University of Cantabria, and has funding from the Society for the Regional Development of Cantabria (SODERCAN) within the program “I+C=+C 2019 – SUPPORT FOR R&D PROJECTS IN THE FIELD OF ICT”, with file number ID19-XX-030.

Introduction

The main goal of this project is the design of a software procedure that allows verifying the quality in use during the software development processes of Axpe Consulting. The concept of quality in use (or Quality in Use, QinU) is defined as “the quality vision of users in a context that integrates software, and is measured on the results of using the software in that context, rather than on the properties of the software itself. This differs from the traditional concept of product quality, which is measured on the static properties of a software according to its development and implementation (such as its design, functionalities or operation). In this way, quality in use is strongly related to the user experience when interacting with a software system, referring to the user’s perception of quality. The ISO/IEC 25000:2011 SQuaRE (System and Software Quality Requirements and Evaluation) standard includes quality in use in its model and comprises five main characteristics (effectiveness, efficiency, risk freedom, satisfaction and adaptation to the context). In this case, we understand context as the information, elements and conditions that surround and characterize the interaction between the user and a computer system, both included. All of these features are set on the result of user interaction. This model considers the possible influence of the context of use on the interaction and can be applied to any interactive system.

Currently, the evaluation of the quality in use of a system is not present in the software development process as the evaluation of the product quality is. In addition, user experience evaluation methods are based on explicit user participation through surveys or interviews. The procedure resulting from this project is intended to allow the evaluation of quality in use established by the model of the SQuaRE standard, in a semi-automatic way and without more expensive and complex mechanisms that actively involve the user. To do this, this environment is based on the usage data (log repositories, or simply logs) of the user community in a software application to estimate and analyze the quality characteristics in use. Through mechanisms based on automatic learning techniques and probabilistic models, quantitative and qualitative results are extracted for quality assurance in use. The integration of the designed procedure in the software development process of Axpe Consulting has the purpose of allowing the consideration of the quality in use within the analyzes and evaluations of the quality of the already existing and known product. This would allow a greater adaptation of software services to improve the user experience automatically, based on interaction data and user activity patterns.

 

 

Project Objectives

The general objective of the project consists of “the design of a procedure to ensure the quality in use of the software systems and their integration in the development process of Axpe Consulting”. This objective is divided into six specific objectives that are indicated below.

  1. Design a procedure to assess quality in use from log traces.
  2. Define a metamodel of the tasks supported by the system to evaluate characteristics and sub-characteristics of risk mitigation and context coverage.
  3. Build a software tool that automates the designed procedure.
  4. Integrate the procedure in the development process of Axpe Consulting.
  5. Carry out a proof of concept.

In the project, these objectives set out in the planning have been successfully fulfilled and their results will be detailed in the following sections of content and conclusions of the project.

 

Methodology used

Various computational, statistical and data-driven artificial intelligence (machine learning) techniques are used in this project. Of these methods, we highlight:

  • Data pre-processing: given the data-driven approach in which the project works, typical techniques are used for the treatment and processing of data (interaction data from log repositories).
  • Observational learning and probabilistic models: we use typical observational learning techniques to model user behavior and obtain activity patterns. This is the case of probabilistic models such as Markov chains and probabilistic automata, both particular representations of Dynamic Bayesian Networks.
  • Unsupervised learning: we use unsupervised learning methods, more specifically segmentation or clustering algorithms (KMeans, Gaussian Mixture Models, hierarchical clustering), in order to group users into quality-in-use profiles.
  • Supervised learning: we use supervised learning methods (classification and metapredictors based on decision trees) to identify causes of variations in quality in use according to characteristics of the environment or users.
  • Data visualization: for the generation of results, data visualization techniques are used to facilitate the analysis of the results obtained.

In addition, the definition of the metrics to estimate quality in use is supported by the ISO/IEC 25000:2011 SQuaRE standard, which describes a software quality model that contemplates quality in use and its division into characteristics and sub-characteristics to be considered for your evaluation.

Regarding the software life cycle, the development follows an iterative-incremental methodology with the implementation of designs, prototypes and later improvements. Thus, the construction of a first prototype serves as proof of concept on which to continue applying the advances and mechanisms that are developed in the project with the aim of composing the final environment. At the end of each iteration, verification tests of the developed environment are carried out.

Finally, the project makes use of various technologies, programming languages and frameworks, adjusted for each stage of development. Among these, Python, Pandas, Numpy, Scikit learn, HTML, CSS, Javascript and Vue.JS stand out.

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.