Perfecciona el análisis de requerimientos mediante técnicas como la observación🔍, entrevistas🗣️, talleres📚, los cuestionarios📝 y el modelado💻. Inscríbete en el curso 🎓👍 Recolección y análisis de requerimientos de software en Udemy.
Los requerimientos no funcionales representan características generales y restricciones de la aplicación o sistema que se esté desarrollando. En esta tercera parte de nuestra serie sobre los requerimientos no funcionales, presentamos algunos ejemplos que puedan servir de guía en su definición.
Suelen presentar dificultades en su definición dado que su conformidad o no conformidad podría ser sujeto de libre interpretación, por lo cual es recomendable acompañar su definición con criterios de aceptación que se puedan medir.
Suelen presentar dificultades en su definición dado que su conformidad o no conformidad podría ser sujeto de libre interpretación, por lo cual es recomendable acompañar su definición con criterios de aceptación que se puedan medir.
Entre los ejemplos de requerimientos no funcionales presentados, tenemos los referidos a atributos como la eficiencia, seguridad, dependibilidad y usabilidad del sistema. También presentamos ejemplos de requerimientos no funcionales organizacionales y externos.
PMOInformatica presenta: Ejemplos de requerimientos no funcionales.
PMOInformatica presenta: Ejemplos de requerimientos no funcionales.
Antes de presentar los ejemplos, exploraremos algunas preguntas sobre los requerimientos funcionales:
¿Cuáles son los requerimientos no funcionales ejemplos?
Los requerimientos no funcionales son criterios que definen cómo debe comportarse un sistema en lugar de describir sus funciones específicas. Estos se centran en aspectos como la seguridad, la usabilidad, el rendimiento, la escalabilidad y la disponibilidad del sistema. Por ejemplo, un requerimiento no funcional puede especificar que un sitio web debe cargar en menos de tres segundos para garantizar una experiencia de usuario óptima.
Además, los requerimientos no funcionales son cruciales para el éxito de un proyecto, ya que ayudan a establecer expectativas claras sobre el rendimiento y la calidad del software. Al definir adecuadamente estos requerimientos, los equipos de desarrollo pueden anticiparse a problemas potenciales y garantizar que el software no solo cumpla con las especificaciones funcionales, sino que también sea eficiente y confiable en su uso diario. Por lo tanto, incluir ejemplos concretos de requerimientos no funcionales en un artículo puede proporcionar un contexto valioso y fácil de entender para los lectores.
Más aún, los requerimientos no funcionales son los que especifican criterios para evaluar la operación de un servicio de tecnología de información, contrastando con los requerimientos funcionales que especifican los comportamientos específicos.
Si buscas más información sobre el concepto de requerimientos no funcionales, te recomendamos la primera parte de esta serie Requerimientos no funcionales: Porque son importantes.
¿Qué significa no funcional?
"No funcional" se refiere a los aspectos de un sistema que no están relacionados directamente con sus funciones específicas, sino más bien con cómo esas funciones deben ser implementadas y operadas. En otras palabras, mientras que los requerimientos funcionales describen lo que un sistema debe hacer, los requerimientos no funcionales definen criterios relacionados con la calidad y el comportamiento del sistema.
Por ejemplo, un requerimiento no funcional podría indicar que una aplicación debe ser capaz de soportar 1000 usuarios simultáneos sin degradar el rendimiento. Este tipo de requerimiento es esencial para garantizar que la aplicación no solo funcione correctamente, sino que también ofrezca una experiencia satisfactoria bajo condiciones específicas. Además, los requerimientos no funcionales son vitales en el desarrollo de software, ya que impactan directamente en la experiencia del usuario y en la operación general del sistema, influyendo así en su aceptación y éxito en el mercado.
Por lo tanto, entender el concepto de "no funcional" ayuda a los equipos de desarrollo a abordar e implementar las expectativas de calidad de manera más efectiva.
¿Qué es funcional y no funcional?
Lo funcional se refiere a las acciones específicas que un sistema debe realizar, como procesar transacciones o permitir la autenticación de usuarios, mientras que lo no funcional aborda aspectos como el rendimiento, la seguridad y la usabilidad. Por ejemplo, un requerimiento funcional podría especificar que un usuario debe iniciar sesión con su correo electrónico y contraseña, mientras que un requerimiento no funcional indicaría que el sistema debe estar disponible el 99.9% del tiempo. Esta distinción es clave en el desarrollo de software, ya que ambas categorías deben considerarse para garantizar un producto que satisfaga las expectativas del usuario.
¿Qué significa NFR?
NFR significa "Non-Functional Requirements" (Requerimientos No Funcionales) y se refiere a las características o cualidades que un sistema debe poseer, pero que no están directamente relacionadas con las funciones o acciones específicas que el sistema realiza. Estos requerimientos abarcan aspectos como el rendimiento, la seguridad, la escalabilidad, la usabilidad y la disponibilidad del sistema.
¿Qué es NFR en pruebas de rendimiento?
En el contexto de las pruebas de rendimiento, NFR se refiere a los "Non-Functional Requirements" (Requerimientos No Funcionales) que determinan cómo debe comportarse un sistema en términos de rendimiento bajo condiciones específicas. Estos requerimientos incluyen aspectos como el tiempo de respuesta, la carga máxima que el sistema debe soportar, la capacidad de procesamiento y la eficiencia bajo distintas configuraciones de uso. Por ejemplo, un NFR en pruebas de rendimiento podría especificar que una aplicación debe ser capaz de manejar, como mínimo, 500 usuarios simultáneos con un tiempo de respuesta no superior a 2 segundos.
¿Cómo se clasifican los requerimientos no funcionales?
En un primer nivel, los requerimientos no funcionales pueden clasificarse en requerimientos de producto, organizacionales y externos, tal como te mostramos en el artículo sobre clasificación de los requerimientos no funcionales.
En un segundo nivel, los requerimientos de producto pueden clasificarse en requerimientos de usabilidad, eficiencia, dependibilidad y seguridad. A su vez, los requerimientos organizacionales pueden clasificarse en requerimientos de entorno, organizacionales y de desarrollo. Asimismo, los requerimientos externos pueden clasificarse en requerimientos regulatorios, éticos y legislativos.
Cuando se realizan las fases de levantamiento y análisis de requerimientos, los requisitos no funcionales se pueden registrar en un documento de requerimientos de software. A continuación te compartimos una plantilla:
> Documento de requerimientos de software
Como mostramos en el artículo sobre clasificación de los requerimientos no funcionales, en un primer nivel estos pueden clasificarse en requerimientos de producto, organizacionales y externos.
En un segundo nivel, los requerimientos de producto pueden clasificarse en requerimientos de usabilidad, eficiencia, dependibilidad y seguridad. A su vez, los requerimientos organizacionales pueden clasificarse en requerimientos de entorno, organizacionales y de desarrollo. Asimismo, los requerimientos externos pueden clasificarse en requerimientos regulatorios, éticos y legislativos.
A continuación presentamos ejemplos de requerimientos no funcionales, clasificados por estas distintas áreas.
Usabilidad
Los requerimientos no funcionales suelen expresarse de una manera general y sin hacer referencia a algún modulo, transacción o característica del sistema, pues sino pasarían a ser requerimientos funcionales.
Ejemplos de como definir requerimientos funcionales
> Requerimientos funcionales de un sistema de ventas
> Ejemplos de requerimientos funcionales
¿Se gestionan los requerimientos no funcionales en tu organización?, ¿Qué técnicas utilizas para gestionarlos?
< Artículo anterior: Requerimientos no funcionales: Una clasificación
Referencia
> Documento de requerimientos de software
Domina las técnicas de análisis de requerimientos
Curso Recolección y análisis de requerimientos de software
Aprende a recolectar, comprender y analizar requerimientos del software para crear soluciones increíbles
Algunos ejemplos de requerimientos no funcionales
Como mostramos en el artículo sobre clasificación de los requerimientos no funcionales, en un primer nivel estos pueden clasificarse en requerimientos de producto, organizacionales y externos.
En un segundo nivel, los requerimientos de producto pueden clasificarse en requerimientos de usabilidad, eficiencia, dependibilidad y seguridad. A su vez, los requerimientos organizacionales pueden clasificarse en requerimientos de entorno, organizacionales y de desarrollo. Asimismo, los requerimientos externos pueden clasificarse en requerimientos regulatorios, éticos y legislativos.
A continuación presentamos ejemplos de requerimientos no funcionales, clasificados por estas distintas áreas.
Ejemplos de requerimientos no funcionales de producto
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.
- El sistema debe ser capaz de operar adecuadamente con hasta 100.000 usuarios con sesiones concurrentes.
- Los datos modificados en la base de datos deben ser actualizados para todos los usuarios que acceden en menos de 2 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.
- Todos los sistemas deben respaldarse cada 24 horas. Los respaldos deben ser almacenados en una localidad segura ubicada en un edificio distinto al que reside el sistema.
- Todas las comunicaciones externas entre servidores de datos, aplicación y cliente del sistema deben estar encriptadas utilizando el algoritmo RSA.
- Todas las comunicaciones externas entre servidores de datos, aplicación y cliente del sistema deben realizarse por medio de redes privadas virtuales (VPN).
- Si se identifican ataques de seguridad o brecha del sistema, el mismo no continuará operando hasta ser desbloqueado por un administrador de seguridad.
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.
- El sistema debe contar con manuales de usuario estructurados adecuadamente.
- El sistema debe proporcionar mensajes de error que sean informativos y orientados a usuario final.
- El sistema debe contar con un módulo de ayuda en línea.
- La aplicación web debe poseer un diseño “Responsive” a fin de garantizar la adecuada visualización en múltiples computadores personales, dispositivos tableta y teléfonos inteligentes.
- El sistema debe poseer interfaces gráficas bien formadas.
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.
- La tasa de tiempos de falla del sistema no podrá ser mayor al 0,5% del tiempo de operación total.
- El promedio de duración de fallas no podrá ser mayor a 15 minutos.
- La probabilidad de falla del Sistema no podrá ser mayor a 0,05.
Otros ejemplos de 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.
- La aplicación deberá consumir menos de 500 Mb de memoria RAM.
- La aplicación no podrá ocupar más de 2 GB de espacio en disco.
- La nueva aplicación debe manejar fuentes del alfabeto en Inglés, Idiomas latinos (Español, Frances, Portugués, Italiano), Arábico y Chino.
- La interfaz de usuario será implementada para navegadores web únicamente con HTML5 y JavaScript.
Ejemplos de requerimientos no funcionales 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.
- El sistema debe ser desarrollado utilizando las herramientas CASE XYZ.
- El proceso de desarrollo se gestionará por medio de una determinada herramienta web para gestionar el proceso de desarrollo de software.
- Debe especificarse un plan de recuperación ante desastres para el sistema a ser desarrollado.
- Cada dos semanas deberán producirse reportes gerenciales en los cuales se muestre el esfuerzo invertido en cada uno de los componentes del nuevo sistema.
- Las pruebas de software se gestionaran con una herramienta de gestión de software testing.
- Las pruebas de software se ejecutarán utilizando Selenium y Ruby como herramienta y lenguaje Scripting para automatización de software testing.
Ejemplos de requerimientos no funcionales 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.
- Las páginas web a ser desarrolladas deben cumplir con la ley de tratamiento en condiciones de igualdad para personas con discapacidad.
- El sistema no revelara a sus operadores otros datos personales de los clientes distintos a nombres y números de referencia.
Más ejemplos: ¿Cuáles son los requerimientos no funcionales de una página web?
Los requerimientos no funcionales de una página web se refieren a las características que determinan cómo debe funcionar y comportarse el sitio, en lugar de describir sus funciones específicas. Estos requerimientos son cruciales para asegurar una experiencia de usuario satisfactoria y un rendimiento eficiente del sitio.
A continuación algunos ejemplos de requerimientos no funcionales de una página web:
- Tiempo de Carga: La página debe cargarse en menos de tres segundos para optimizar la experiencia del usuario.
- Disponibilidad: El sitio debe estar disponible al menos el 99.9% del tiempo.
- Seguridad: La página web debe utilizar HTTPS y cumplir con las normativas de protección de datos, como GDPR.
- Usabilidad: La interfaz debe ser intuitiva y fácil de navegar, con un diseño adaptable y "Responsive" a dispositivos móviles.
- Escalabilidad: El sistema debe ser capaz de manejar un aumento del 100% en el tráfico sin degradar el rendimiento.
- Compatibilidad: El sitio debe ser accesible en todos los navegadores y dispositivos modernos.
- SEO: La página debe estar optimizada para motores de búsqueda, incluyendo el uso adecuado de metadatos y elementos estructurales.
- Rendimiento bajo carga: Debe ser capaz de soportar un mínimo de 1000 usuarios simultáneos sin afectar el tiempo de respuesta.
Ejemplos de requerimientos no funcionales y requerimientos funcionales
Los requerimientos no funcionales suelen expresarse de una manera general y sin hacer referencia a algún modulo, transacción o característica del sistema, pues sino pasarían a ser requerimientos funcionales.
Por ejemplo:
El sistema debe asegurar que los datos estén protegidos del acceso no autorizado
Es recomendable acompañar las definiciones de requerimientos no funcionales con criterios de aceptación que puedan medirse.
Los requerimientos no funcionales pueden a su vez derivar en requerimientos funcionales, tomando como ejemplo el anterior:
El sistema incluirá un procedimiento de autorización de usuarios, en el cual los usuarios deben identificarse usando un nombre de usuario y contraseña. Sólo los usuarios autorizados de esta forma podrán acceder a los datos del sistema.
Escrito de esta forma, el requerimiento pasa a ser funcional.
Sin embargo, no todos los requerimientos no funcionales pueden derivarse en requerimientos funcionales, por lo cual es muy importante definir los criterios de aceptación.
El sistema debe asegurar que los datos estén protegidos del acceso no autorizado
Es recomendable acompañar las definiciones de requerimientos no funcionales con criterios de aceptación que puedan medirse.
Los requerimientos no funcionales pueden a su vez derivar en requerimientos funcionales, tomando como ejemplo el anterior:
El sistema incluirá un procedimiento de autorización de usuarios, en el cual los usuarios deben identificarse usando un nombre de usuario y contraseña. Sólo los usuarios autorizados de esta forma podrán acceder a los datos del sistema.
Escrito de esta forma, el requerimiento pasa a ser funcional.
Sin embargo, no todos los requerimientos no funcionales pueden derivarse en requerimientos funcionales, por lo cual es muy importante definir los criterios de aceptación.
Ejemplos de como definir requerimientos funcionales
> Requerimientos funcionales de un sistema de ventas
> Ejemplos de requerimientos funcionales
¿Y qué opinas tú?
¿Se gestionan los requerimientos no funcionales en tu organización?, ¿Qué técnicas utilizas para gestionarlos?
< Artículo anterior: Requerimientos no funcionales: Una clasificación
También puedes seguirnos vía Twitter, Facebook o Linkedin:
Lectura recomendada
Ingeniería de requisitos: Software orientado al negocio
Autor: Guilherme Siqueira Simões, Carlos Eduardo Vazquez
Con el libro Ingeniería de requisitos: Software orientado al negocio aprenderás el conjunto de técnicas, actividades y prácticas que componen el análisis funcional y análisis de negocio, que al aplicarlo a tus proyectos te ayudará a asegurar su éxito.
Si un cliente tiene facturas elaboradas por una imprenta en papel continuo y desea que el sistema imprima las facturas utilizando ese material puesto en una impresora de matriz de punto, ¿es un requerimiento funcional o no funcional?
ResponderEliminarEs un requerimiento funcional. Saludos!
EliminarFuncional, ya que depende del sistema.
EliminarConsidero que de este requerimiento de usuario "Si un cliente tiene facturas elaboradas por una imprenta en papel continuo y desea que el sistema imprima las facturas utilizando ese material puesto en una impresora de matriz de punto,...". se desprenden dos requerimientos, uno funcional y otro no funcional:
Eliminar1) Requerimiento Funcional: el sistema debe permitir la impresión de facturas.
2) Requerimiento No Funcional: la impresión de las facturas debe ser realizada en una impresora de matriz, utilizando papel continuo elaborada por una imprenta.
Buenisimo!
ResponderEliminarBuen apunte, de mucha ayuda!
ResponderEliminar