
Comprendamos los Requerimientos Funcionales y No Funcionales con ejemplos.
Requerimientos Funcionales
Son las funcionalidades o características específicas que el sistema DEBE hacer. Describen qué hace el sistema. Se centran en la acción.
Paso 1: Identificar la meta del sistema. ¿Cuál es el propósito principal del sistema?
Must Read
Ejemplo: Una aplicación de e-commerce.
Paso 2: Describir las interacciones clave del usuario. ¿Qué tareas realizará el usuario?
Ejemplo: Buscar productos, añadir al carrito, pagar.
Paso 3: Detallar cada función. Sé específico sobre cada interacción.
Ejemplo 1: Un usuario DEBE poder buscar productos por nombre, categoría, o precio.

Ejemplo 2: El sistema DEBE permitir a los usuarios añadir productos al carrito de compras.
Ejemplo 3: El sistema DEBE procesar pagos de forma segura con tarjetas de crédito y PayPal.
Ejemplo 4: El sistema DEBE enviar una confirmación de pedido al usuario por correo electrónico.
Ejemplo 5: Un administrador DEBE poder agregar, editar, y eliminar productos del catálogo.
Observa que cada ejemplo usa la palabra "DEBE".

Requerimientos No Funcionales
Son las cualidades o restricciones del sistema. No se refieren a qué hace el sistema, sino a cómo lo hace. Se centran en la calidad y restricciones.
Paso 1: Considera las cualidades importantes del sistema. ¿Qué tan rápido debe ser? ¿Qué tan seguro debe ser? ¿Qué tan fácil de usar debe ser?
Ejemplo: La aplicación de e-commerce.
Paso 2: Define las métricas para cada cualidad. ¿Cómo medirás si la cualidad se cumple?
Ejemplo: Tiempo de respuesta, seguridad, usabilidad.

Paso 3: Detalla cada requerimiento no funcional con una métrica clara.
Ejemplo 1: El tiempo de respuesta para buscar un producto DEBE ser menor a 2 segundos.
Ejemplo 2: La aplicación DEBE ser segura y proteger los datos de los usuarios con encriptación SSL.
Ejemplo 3: La aplicación DEBE ser accesible en dispositivos móviles (responsive design).
Ejemplo 4: El sistema DEBE tener un tiempo de actividad (uptime) del 99.9%.

Ejemplo 5: La interfaz de usuario DEBE ser fácil de usar y permitir a los usuarios completar un pedido en menos de 5 minutos.
Observa que estos ejemplos no describen una acción específica que el sistema realiza, sino una cualidad sobre cómo realiza las acciones.
Tabla Comparativa
Para resumir:
Requerimientos Funcionales: QUÉ hace el sistema. Ejemplos: Buscar, añadir al carrito, pagar.
Requerimientos No Funcionales: CÓMO lo hace el sistema. Ejemplos: Rápido, seguro, usable.
Es crucial identificar ambos tipos de requerimientos para el éxito de un proyecto.