Sunday, June 18, 2017

Requerimientos, Criterios de Aceptación y Escenarios

¿Qué son?, ¿En qué difieren?, ¿Cómo están relacionados?

Contexto

Estamos construyendo una calculadora básica, la cual solo soporta las cuatro operaciones básicas: Adición, Sustracción, Multiplicación y División.

Requerimientos

(tomado del SWEBOKv3 @ http://www4.ncsu.edu/~tjmenzie/cs510/pdf/SWEBOKv3.pdf)

¿Qué son?

- En su forma mas básica, un requisito de software es una propiedad la cual debe ser exhibida por algo (componente / modulo / sistema / etc), con el objetivo de resolver un problema del mundo real.

¿Que hacen?

- Expresan las necesidades y limitaciones colocadas sobre el producto de software, el cual contribuye a la solución de un problema del mundo real.

Propiedades:
  • Una propiedad esencial de todos los requerimientos de software es que deben ser verificables como una característica individual como requisito funcional, o a nivel de sistema como un requisito no funcional.
  • Deben ser estar priorizados.
  • Deben estar identificados de manera única.

Tipos (Categorías) de Requerimientos

  • de Producto: un requerimiento de producto es una necesidad o constreñimiento en el software a ser desarrollado (ejemplo, "El software debe verificar que el estudiante cumpla con todos los pre-requisitos antes de que el o ella se registre para un curso").
  • Proceso: un requerimiento de proceso es esencialmente un constreñimiento en el proceso de desarrollo de software (ejemplo: "El software sera desarrollado utilizando el proceso RUP").
  • Funcional: los requerimientos funcionales describen las funciones que el software debe ejecutar; ejemplo: formatear un texto o modular una señal. A veces son conocidos como capacidades o características. un requerimiento funcional puede ser descrito como uno para el se puede escribir un conjunto de pasos de pruebas finito, a ser utilizado para validar su funcionamiento.
  • No-funcional: los requerimientos no-funcionales son los que restringen la solución. Muchas veces se les conoce como constreñimientos o requisitos de calidad.

Ejemplos

Vamos a tomar cada una de las operaciones aritméticas básicas como un único requerimiento, así que tendremos:
  • Req-1: La calculadora debe soportar la operación Adición.
  • Req-2: La calculadora debe soportar la operación Sustracción.
  • Req-3: La calculadora debe soportar la operación Multiplicación.
  • Req-4: La calculadora debe soportar la operación División.

Criterios de Aceptación

Conjunto de sentencias las cuales indican como sera juzgado (evaluado) un componente de software dado para ver si satisface o no un requerimiento. Cada elemento, criterio, es una sentencia especifica.

Ejemplos

Nosotros, como expertos en matemáticas, sabemos que las operaciones aritméticas básicas tienen ciertas "propiedades". Podemos pensar en esas propiedades como reglas o sentencias las cuales definen en mayor detalle algún aspecto del requerimiento (operación aritmética). Así que ahora tomaremos la operación (requerimiento) Adición como el sujeto de nuestros ejemplos. Tendremos un Criterio por cada una de las propiedades de la operación Adición.
  • Cri-1-1: La calculadora debe cumplir con la propiedad Conmutativa para la operación Adición.
  • Cri-1-2: La calculadora debe cumplir con la propiedad Asociativa para la operación Adición.
  • Cri-1-3: La calculadora debe cumplir con la propiedad Elemento Neutro para la operación Adición.
  • Cri-1-4: La calculadora debe cumplir con la propiedad Distributiva, respecto a la multiplicación, para la operación Adición.

Escenarios

Conjunto de ejemplos concretos utilizados para validar un único Criterio de Aceptación.

Ejemplos

Ahora tomaremos la propiedad Conmutativa para la operación Adición, como nuestro sujeto. Lo que necesitamos son ejemplos concretos de expresiones de suma los cuales validen la "presencia", o "implementación correcta" de la propiedad Conmutativa (Criterio de Aceptación), para la operación Adición (Requerimiento).
  • Sce-1-1-1: 4 + 2 = 2 + 4
  • Sce-1-1-2: 10 + 5 = 5 + 10
  • Sce-1-1-3: 1 + 2 + 3 = 3 + 2 + 1

Una imagen vale mas que mil palabras

Aquí tenemos un desglose de los tres conceptos::

Desglose de Requerimientos, Criterios de Aceptación y Escenarios



Resumen

¿Qué son? ver definiciones anteriores.

¿En que se diferencias? 
Son descripciones de alto nivel de características de un sistema. Los Criterios de Aceptación son elementos utilizados para cumplir con la característica "verificable" de los requerimientos. Los criterios deben especificar como determinar si el sistema de software ha implementado correctamente el requerimiento.

Con frecuencia, los criterios de aceptación no tienen el detalle suficiente para ser útiles en la practica, así que tenemos que utilizar ejemplos concretos como Entrada-Salida, Entrada-Tiempo de Respuesta, etc.; estos son los Escenarios.

¿Como se relacionan?
De las descripciones anteriores, usted podrá inferir que son tres niveles de detalle de la misma cosa: que se espera que el sistema haga.

Y ¿Cual es el asunto de todo esto?
  • Todos los actores del proceso de desarrollo de software deben entender que son, en que se diferencian y porque son necesarios los tres niveles.
  • Los Requerimientos / Historias de Usuario, sin sus Criterios de Aceptación y Escenarios serian muy subjetivos para ser verificables.
  • Los Criterios y Escenarios solos serian muy difíciles de manejar, sin un elemento de agrupación (requerimiento padre).
El uso de los tres niveles trae muchos beneficios, como mejores estimaciones de esfuerzo requerido para las Historias de Usuario, Criterios y Tareas. También traen algunos retos interesantes sobre como documentar o expresar automatizar todos estas esas validaciones. Podríamos revisar eso en otro articulo, aquí solo quise resaltar sus diferencias y dar algunos ejemplos simples de cada uno.

No comments:

Post a Comment

enter your comments here...

Subscribe to our mailing list

* indicates required
Email Format