. 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 de requerimientos. 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.
.Los requerimientos no funcionales representan características generales y restricciones de la
aplicación o sistema que se esté desarrollando.
¿Que son los requerimientos no funcionales y como
se clasifican?
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 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.
Eficiencia
. El sistema debe ser capaz de procesar N transacciones por segundo. Esto se medirá por medio de la
herramienta SoapUI aplicada al Software Testing de servicios web.
• Toda funcionalidad del sistema y transacción de negocio debe responder al usuario en menos de 5
segundos.
Seguridad lógica y de datos
Los permisos de acceso al sistema podrán ser cambiados solamente por el administrador de acceso a
datos.
El nuevo sistema debe desarrollarse aplicando patrones y recomendaciones de programación que
incrementen la seguridad de datos
Seguridad industrial
El sistema no continuará operando si la temperatura externa es menor a 4
grados Celsius.
El sistema no continuará operando en caso de fuego. (Ej. Un ascensor).
Usabilidad
El tiempo de aprendizaje del sistema por un usuario deberá ser menor a 4
horas
La tasa de errores cometidos por el usuario deberá ser menor del 1% de las transacciones totales
ejecutadas en el sistema.
Dependibilidad
El sistema debe tener una disponibilidad del 99,99% de las veces en que un usuario intente accederlo.
• El tiempo para iniciar o reiniciar el sistema no podrá ser mayor a 5
minutos
requerimientos de producto
• El sistema será desarrollado para las plataformas PC y Macintosh.
La aplicación debe ser compatible con todas las versiones de Windows,
desde Windows 95.
organizacionales
El procedimiento de desarrollo de software a usar debe estar definido explícitamente (en manuales de
procedimientos) y debe cumplir con los estándares ISO 9000.
La metodología de desarrollo de software será Behaviour Driven Development (BDD) apoyada en
Cucumber.
externos
Sistemas de datos médicos: El nuevo sistema y sus procedimientos de mantenimiento de datos deben
cumplir con las leyes y reglamentos de protección de datos médicos.
El nuevo sistema se acogerá a las reglas de las licencias generales públicas (GNU), es decir será
gratuito, código abierto en el que cualquiera podrá cambiar el software, sin patentes y sin garantías.
Requerimientos Funcionales
Los requisitos funcionales de un software se suelen registran en la matriz de trazabilidad de
requerimientos y en la especificación de requerimientos de software, este último, documenta las
operaciones y actividades que el sistema debe poder desempeñar.
Entre los posibles requerimientos funcionales de un sistema, se incluyen:
Descripciones de los datos a ser ingresados en el sistema.
Descripciones de las operaciones a ser realizadas por cada pantalla.
Descripción de los flujos de trabajo realizados por el sistema.
¿Qué res un Requerimiento Funcional?
La gestión de los requerimientos funcionales deficiente, es citada como una de las causas más
frecuentes en el fracaso de los proyectos, es por ello que es importante entender que son los
requerimientos funcionales, bajo qué metodologías deben identificarse y gestionarse para asegurar el
de los objetivos.
de proceso o área de negocio
El sistema enviará un correo electrónico cuando se registre alguna de las siguientes transacciones:
pedido de venta de cliente, despacho de mercancía al cliente, emisión de factura a cliente y registro de
pago de cliente.
Se permitirá el registro de pedidos de compra con datos obligatorios incompletos, los cuales podrán
completarse posteriormente modificando el pedido. Antes de poder aprobarse los datos del pedido
deben estar completos.
Al aprobar un pedido, la solicitud pasará al siguiente paso del flujo de trabajo (workflow) de
aprobación configurado en el sistema.
interfaz gráfica
La solución validara automáticamente el cliente asociado a una orden con el sistema de gestión de
contactos.
El campo de monto acepta únicamente valores numéricos con dos
decimales.
• El campo fecha de transacción acepta únicamente fechas anteriores al día
de hoy (día actual).
legales o regulatorios
El sistema controlará el acceso y lo permitirá solamente a usuarios
autorizados.
La base de datos será implementada con trazas de auditoría.
Las hojas de cálculo aseguraran los datos usando firmas electrónicas.
requerimientos de seguridad
El sistema controlará el acceso y lo permitirá solamente a usuarios autorizados. Los usuarios deben
ingresar al sistema con un nombre de usuario y contraseña.
El sistema enviará una alerta al administrador del sistema cuando ocurra alguno de los siguientes
eventos: Registro de nueva cuenta, ingreso al sistema por parte del cliente, 2 o más intentos fallidos en
el ingreso de la contraseña de usuario y cambio de contraseña de usuario
Los integrantes del grupo de usuarios de analistas pueden ingresar solicitudes pero no pueden
aprobarlas o borrarlas.
El sistema permitirá elaborar y emitir el reporte regulatorio XX, según los requerimientos establecidos
en el reglamento y ley aplicable.
. Los requerimientos no funcionales representan características generales y restricciones de la
aplicación o sistema que se esté desarrollando.