¿Qué tecnologías existen para estimar requisitos no funcionales (NFR) de manera formal, consistente y repetible?  

¿Cómo puedo acceder a esas tecnologías?

Las anteriores son interrogantes que surgen generalmente por los responsables de hacer las estimaciones de desarrollo de proyectos de software y que además tienen conocimiento de la existencia de métricas para medir y posteriormente estimar los requisitos funcionales de usuario y que también saben o han escuchado que la parte de los NFR si es posible estimarlos con modelos formales.

En este blog hablaremos con más detalle acerca de una tecnología llamada EPCU [1] (Estimación de proyectos en contextos de incertidumbre). El modelo EPCU permite contextualizar y formalizar cualquier proceso humano que implique la toma de decisiones a partir ciertas entradas y de un proceso de razonamiento determinado para proporcionarnos una o varias variables de salida continuas (no binarias).

El formalismo matemático atrás del modelo EPCU es lo que se conoce como lógica difusa, la cual es una rama de la inteligencia artificial que le permite a una computadora analizar información del mundo real en una escala continua entre lo falso y lo verdadero (0,1), permitiendo manipular conceptos humanos imprecisos, como “caliente” o “húmedo”, y permite a los ingenieros construir dispositivos que juzgan la información difícil de definir de manera consistente.

Debido a la naturaleza del formalismo matemático de lógica difusa que está atrás del modelo EPCU, es que este modelo es idóneo para poder modelar contextos que permitan estimar NFR, primero porque son requerimientos que no se pueden medir con un estándar de medición y segundo porque representan requisitos bastante imprecisos y difíciles de definir; pero que sin embargo se pueden contextualizar de forma muy natural con lógica difusa.

El modelo EPCU implica 6 pasos para modelar un componente formal (contexto) que permita la toma de decisiones en un determinado ambiente de decisiones, como es el caso de la estimación de requerimientos no funcionales. Los pasos del modelo son los siguientes:

  1. Identificación de las variables de entrada: El objetivo de este paso es obtener las variables más significativas para un determinado problema de toma de decisiones.
  2. Identificación de las variables de salida: El objetivo de este paso es obtener la o las variables de salida que representan la acción de la toma de decisión a través de un valor continuo; por ejemplo, en el caso de los NFR es el valor que se está estimando, muy probablemente en horas hombre.
  3. Fuzificación:  El objetivo de este paso es transformar los valores de las variables de entrada, a través de funciones de membresía, al dominio del mundo difuso para poder trabajar con ellas.
  4. Generación de las reglas de inferencia: Es la combinación de las variables de entrada para tomar las diversas decisiones necesarias; es aquí donde se modela la inteligencia del fenómeno o proceso que se requiere formalizar.
  5. Evaluación de las reglas de inferencia: Es aquí donde existe el motor de lógica difusa que permite calcular una inferencia a partir de ciertas reglas.
  6.  Defuzificación: En este paso se transforma el resultado generado por el motor de inferencia y las reglas de inferencia, el cual aún está en el dominio difuso, hacia el dominio del mundo real del problema, es decir a un valor útil de la variable de salida, por ejemplo, en el caso de los NFR un valor de horas hombre estimadas.

De manera gráfica podemos visualizarlo como se muestra en la siguiente figura:

En consecuencia, con esta tecnología entre muchas otras cosas es posible estimar el esfuerzo y/o costo de los NFR de manera formal usando modelos matemáticos consistentes; más aún si trabaja de la mano con estándares que hacen una adecuada clasificación de los NFR como por ejemplo el “ISO/IEC 25010:2011 System/Software Product Quality model” [2], que agrupa en 9 categorías la forma en que se compone la calidad del producto de software.

Existen otros estándares y manuales como: IEEE Std 830-1998: Software Requirements Specifications; IFPUG Software Non-functional Assessment Process (SNAP) Asse Release 2.2ssment Practices Manual; COSMIC Guideline on Non-Functional & Project Requirements. Version 1.0; European standard ECSS-E-ST-40C – Software general requirements, etc.; que nos pueden ayudar a identificar las variables de entrada para un determinado contexto de estimación usando el modelo EPCU.

Los estándares y manuales citados anteriormente nos permiten disponer de un listado y una clasificación bastante bien definido de NFR que son comunes en los desarrollos de software; sin embargo, no son ni métodos ni modelos para estimar NFR; sin embargo, EPCU es un modelo que permite generar contextos flexibles para estimar en entornos de incertidumbre, como en el caso de los NFR, de forma tal que EPCU se puede convertir en un elemento esencial para llevar a la práctica las estimaciones formales del esfuerzo requerido por los NFR, al menos en lo que se definen estándares para esto.

La plataforma tecnológica MENSURA® desarrollada por SPINGERE; permite la habilitación de cualquier modelo EPCU (contexto) para poder estimar cualquier tipo de NFR; para más información consultar https://mensura.com.mx/.

[1] Design of A Fuzzy Logic Estimation Process for Software Projects: Estimation of Projects in a Context of Uncertainty EPCU Model by Francisco Valdés Souto (Aug 23, 2012), ISBN: 978-3-659-19774-1, Lap Lambert Pub.

[2] ISO/IEC 25010:2011, Systems and software engineering – Systems and software Quality Requirements and Evaluation (SquaRE) – System and software quality models.

Jorge Valeriano Assem.

Francisco Valdés Souto.

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *