Requisitos funcionales y no funcionales

Los requisitos funcionales y no funcionales son la etapa en la que se establece que hará y cómo lo hará el software. comprender la distinción entre los requerimientos funcionales y no funcionales, así como su impacto en el éxito del desarrollo de software, permite a los desarrolladores tomar decisiones informadas y garantizar la entrega de soluciones que cumplan con las necesidades de los usuarios y los estándares de calidad.

**Requisitos Funcionales:**

Los requisitos funcionales se centran en describir las funciones específicas que el software debe realizar para satisfacer las necesidades del usuario. Aquí hay algunas características adicionales y ejemplos:

·          **Niveles de Detalle**: Los requisitos funcionales pueden descomponerse en varios niveles de detalle, desde requisitos de alto nivel que describen las funciones generales hasta requisitos detallados que especifican comportamientos específicos.

·          *Ejemplo*: Un requisito funcional de alto nivel para una aplicación de procesamiento de textos podría ser "Permitir a los usuarios crear y editar documentos". Un requisito más detallado podría ser "Permitir a los usuarios cambiar el tamaño de la fuente en el texto seleccionado".

·          **Secuencia de Acciones**: Los requisitos funcionales a menudo incluyen detalles sobre la secuencia en la que deben ocurrir las acciones y cómo deben interactuar entre sí.

·          *Ejemplo*: En un sistema de gestión de pedidos en línea, un requisito funcional podría especificar: "El usuario debe seleccionar los productos, agregarlos al carrito, ingresar la dirección de envío y completar el pago en esta secuencia específica".

·          **Excepciones y Condiciones de Error**: Los requisitos funcionales también deben abordar cómo se manejarán las excepciones y condiciones de error, es decir, qué sucede cuando algo no funciona según lo previsto.

·          *Ejemplo*: "Si un usuario intenta iniciar sesión con una contraseña incorrecta más de tres veces consecutivas, el sistema debe bloquear la cuenta durante 30 minutos y notificar al usuario por correo electrónico".

**Requisitos No Funcionales**:

Los requisitos no funcionales se refieren a atributos o características que no se relacionan directamente con las funciones específicas del software, pero que son igualmente críticos para su éxito. Aquí hay más detalles y ejemplos:

·          **Medibilidad y Cuantificación**: Los requisitos no funcionales deben ser medibles y cuantificables para que se puedan evaluar de manera objetiva.

·          *Ejemplo*: "El tiempo de respuesta del sistema debe ser inferior a 2 segundos para una solicitud de búsqueda típica" es un requisito no funcional medible.

·          **Escalabilidad y Rendimiento**: Los requisitos no funcionales pueden abordar cómo el sistema debe comportarse a medida que crece o enfrenta cargas de trabajo más pesadas.

·          *Ejemplo*: "El sistema debe ser capaz de manejar hasta 10,000 usuarios concurrentes sin una degradación significativa del rendimiento".

·          **Seguridad y Privacidad**: Los requisitos no funcionales pueden especificar cómo se deben proteger los datos y la seguridad del sistema.

·          *Ejemplo*: "Los datos del cliente deben cifrarse en reposo y en tránsito para cumplir con los estándares de seguridad de la industria".

·          **Usabilidad y Experiencia del Usuario**: Los requisitos no funcionales pueden abordar la facilidad de uso y la experiencia del usuario.

·          *Ejemplo*: "La aplicación debe ser intuitiva y requerir menos de 10 minutos de capacitación para que los usuarios nuevos puedan realizar tareas comunes".

·          **Disponibilidad y Tolerancia a Fallos**: Estos requisitos pueden definir cuánto tiempo el sistema debe estar disponible y cómo debe responder ante fallos.

·          *Ejemplo*: "El sistema debe tener una disponibilidad del 99.9% (menos de 9 horas de tiempo de inactividad al año) y ser capaz de recuperarse automáticamente de fallos menores sin intervención del usuario".

·          **Compatibilidad y Adaptabilidad**: Los requisitos no funcionales pueden abordar la capacidad del software para funcionar en diferentes plataformas y adaptarse a diferentes configuraciones.

·          *Ejemplo*: "El software debe ser compatible con los navegadores web más utilizados, incluyendo Chrome, Firefox, Safari y Edge".

Estos ejemplos ilustran cómo los requisitos funcionales y no funcionales son esenciales para definir tanto las capacidades específicas del software como sus características de calidad y rendimiento. Ambos tipos de requisitos son igualmente importantes para asegurar que el software cumpla con las expectativas de los usuarios y las necesidades del negocio.

**Bibliografia**

Society, I. C. (2014). *Guide to the Software Engineering Body of Knowledge (SWeBOK(R)): Version 3.0*.

Blog, R. (2018, 29 noviembre). Requerimientos funcionales y no funcionales, ejemplos y tips. *Medium*. https://medium.com/@requeridosblog/requerimientos-funcionales-y-no-funcionales-ejemplos-y-tips-aa31cb59b22a