
Los requerimientos no funcionales (RNF) definen las cualidades de un sistema.
No se refieren a lo que el sistema hace. Se refieren a cómo lo hace.
Veamos ejemplos de RNF para una página web.
Must Read
Rendimiento
El rendimiento mide la velocidad y eficiencia.
Ejemplo 1: Tiempo de carga de página.
Debe ser menor a 3 segundos para el 90% de las visitas.
Ejemplo 2: Tiempo de respuesta del servidor.
El servidor debe responder a las peticiones en menos de 500 ms.
Ejemplo 3: Capacidad de usuarios concurrentes.
La página web debe soportar 1000 usuarios concurrentes sin degradación significativa del rendimiento.
Seguridad
La seguridad protege los datos y la integridad del sistema.

Ejemplo 1: Protección contra ataques XSS.
La página web debe estar protegida contra ataques de Cross-Site Scripting (XSS).
Ejemplo 2: Autenticación segura.
El sistema de autenticación debe utilizar contraseñas encriptadas y permitir la autenticación de dos factores.
Ejemplo 3: Autorización basada en roles.
Los usuarios deben tener acceso solo a las funcionalidades autorizadas según su rol.
Usabilidad
La usabilidad define la facilidad de uso.
Ejemplo 1: Facilidad de navegación.
La navegación debe ser intuitiva y permitir a los usuarios encontrar la información deseada fácilmente.

Ejemplo 2: Diseño responsivo.
La página web debe ser adaptable a diferentes tamaños de pantalla (escritorio, tablet, móvil).
Ejemplo 3: Accesibilidad.
La página web debe cumplir con las pautas de accesibilidad WCAG 2.1.
Mantenibilidad
La mantenibilidad define la facilidad de realizar cambios y correcciones.
Ejemplo 1: Modularidad del código.
El código debe estar bien estructurado y modularizado para facilitar las modificaciones.
Ejemplo 2: Documentación.
Se debe proporcionar documentación completa del código y la arquitectura del sistema.

Ejemplo 3: Pruebas unitarias.
Se deben implementar pruebas unitarias para asegurar la calidad del código y facilitar la detección de errores.
Escalabilidad
La escalabilidad define la capacidad de crecer y manejar mayor carga.
Ejemplo 1: Escalabilidad horizontal.
La arquitectura debe permitir agregar servidores adicionales para manejar mayor tráfico.
Ejemplo 2: Escalabilidad vertical.
Debe ser posible aumentar los recursos de los servidores existentes (CPU, memoria, disco).
Ejemplo 3: Optimización de la base de datos.
La base de datos debe estar optimizada para manejar grandes volúmenes de datos y un alto número de consultas.

Disponibilidad
La disponibilidad define el tiempo que el sistema está operativo.
Ejemplo 1: Tiempo de actividad (uptime).
La página web debe estar disponible el 99.9% del tiempo.
Ejemplo 2: Recuperación ante desastres.
Se debe tener un plan de recuperación ante desastres para minimizar el tiempo de inactividad en caso de fallo.
Ejemplo 3: Monitorización.
Se debe implementar un sistema de monitorización para detectar y resolver problemas rápidamente.
Estos son solo algunos ejemplos.
Los RNF específicos dependen de cada proyecto.