Requerimientos No Funcionales: Porque son importantes

Todos los Servicios de Tecnología de Información (TI) en algún punto de su ciclo de vida, necesitan considerar los requerimientos no funcionales y las pruebas asociadas a los mismos. Para algunos proyectos, estos requerimientos implican una cantidad considerable de trabajo y esfuerzos, mientras que para otros no.

Con frecuencia, los requerimientos no funcionales son ignorados o subestimados en la fase de análisis. El error, termina identificándose en la fase de implementación cuando remediarlos implica más trabajo y costo, pudiendo ocasionar que no sean adoptados por los usuarios y clientes.

En este artículo se presenta una definición de que son los requerimientos no funcionales de un servicio de tecnología de información o un sistema, se describen las categorías en las que pueden clasificarse, las posibles consecuencias de no definirlos en la fase de Diseño y algunos ejemplos de requerimientos no funcionales.

Que son los Requerimientos No Funcionales

Los requerimientos no funcionales son los que especifican criterios para evaluar la operación de un servicio de tecnología de información, en contraste con los requerimientos funcionales que especifican los comportamientos específicos. Por lo general, el Plan para implementarlos requerimientos no funcionales se detalla en la Arquitectura del Sistema, mientras que el de los requerimientos funcionales se especifica en el Diseño.

Fuente: Wikipedia

Los Requerimientos funcionales definen los criterios que este debe cumplir para que este sea adecuado para su propósito (Fitness-for-purpose), mientras que los requerimientos no funcionales especifican los criterios que debe cumplir para que sea adecuado para su uso (Fitness-for-use).

Otros términos usados para los requerimientos no funcionales pueden ser: Restricciones, Atributos de calidad, objetivos de calidad, requerimientos de calidad de servicio.

Categorías en las que pueden clasificarse

Se pueden clasificar en dos categorías:

  • Cualidades observables en tiempo de ejecución, como por ejemplo la usabilidad y la seguridad.
  • Cualidades relacionadas con la evolución del sistema, como por ejemplo Mantenibilidad, Comprobabilidad, Extensibilidad y Escalabilidad, las cuales están inmersas en la estructura del sistema de software.

Algunos Requerimientos No Funcionales

Algunos ejemplos de requerimientos no funcionales son:

  • Comprobabilidad: Grado en que un sistema, software o servicio de TI permite y facilita que sea probado en un determinado contexto.
  • Disponibilidad: Corresponde al tiempo total en que un sistema puede ser usado en un período determinado. También puede definirse el grado en que un sistema está en un estado operable definido cada vez que se necesite.
  • Extensibilidad: Grado en que la implementación del sistema toma en consideración y facilita su crecimiento en el futuro.
  • Escalabilidad: Capacidad de un sistema o servicio de TI de manejar una creciente carga de trabajo, por ejemplo mayor número de conexiones o usuarios. No debe confundirse con extensibilidad, que mide la capacidad del sistema de crecer en funcionalidades.
  • Mantenibilidad: Mide la facilidad con que puede darse mantenimiento al producto (en este caso al software o servicio de TI), con la finalidad de: Desarrollar nuevos requerimientos, Aislar los defectos y sus causas, corregir estos defectos y atender las demandas del entorno cambiante. 
  • Seguridad: Grado de protección de los datos, software y plataforma de tecnología de posibles pérdidas, actividades no permitidas o uso para propósitos no establecidos previamente.
  • Usabilidad: Definido como la facilidad de uso y aprendizaje de un Sistema, Software o Servicio de Tecnología de Información.

Necesidad de definir los requerimientos no funcionales en términos precisos y que puedan medirse

Para todo proyecto de TI, es crítico que los requerimientos no funcionales sean definidos con los usuarios, clientes y otros interesados en términos precisos y medibles en la etapa de análisis del proyecto. No hacerlo puede poner en riesgo el éxito de un proyecto.

Por ejemplo, tomando el caso de los tiempos de respuesta de un sistema, lo cual podría clasificarse en disponibilidad, ¿que sucedería si no se definiera el tiempo de respuesta deseado en la fase de análisis?, o si se definiera en términos imprecisos, como por ejemplo indicado, “Se necesita un tiempo de respuesta aceptable”.

Al llegar a la fase de implementación, quizás en sistema tendría un tiempo de respuesta, digamos de 15 segundos(debido a muchas plataformas remotas y bases de datos involucradas), pero el usuario lo necesitaba en menos de 5 segundos, para por ejemplo, evitar que se forme una fila muy larga para atender a clientes.

Errores como esto pudieran ocasionar inclusive que el usuario final decidiera no usar el nuevo sistema, haciendo fracasar el proyecto.

Por ende, es importante definir los requerimientos con métricas que puedan establecer sin lugar a duda que el sistema o servicio de TI desarrollado cumple los parámetros no funcionales solicitados.

Otros requerimientos no funcionales:

Otros requerimientos no funcionales pueden ser: Accesibilidad, Capacidad, Cumplimiento, Documentación, Requerimientos de despliegue, Efectividad, Eficiencia, Tolerancia a fallos, Modificabilidad, Operabilidad, Portabilidad, Confiabilidad, entre otros.

En en artículo de Wikipedia se listan más ejemplos de requerimientos no funcionales.

Vía | pmoinformatica.com

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s


A %d blogueros les gusta esto: