Requerimientos Funcionales y No Funcionales, ejemplos y tips (2024)

El desarrollo de software es una de esas actividades donde tenemos nombres y categorías para todo. Y me refiero a todo. A veces eso es redundante e inútil, pero a veces hay conceptos que son muy buenos para conocer y diferenciar. Un ejemplo de ello es la diferencia entre requisitos funcionales (RF) y no funcionales (RNF). Y dado que los requisitos del sistema de software se clasifican (entre otras cosas) de esta manera, se deben considerar las siguientes técnicas para una correcta identificación.

Requerimientos Funcionales
Los requisitos funcionales son declaraciones de los servicios que prestará el sistema, en la forma en que reaccionará a determinados insumos. Cuando hablamos de las entradas, no necesariamente hablamos sólo de las entradas de los usuarios. Pueden ser interacciones con otros sistemas, respuestas automáticas, procesos predefinidos. En algunos casos, los requisitos funcionales de los sistemas también establecen explícitamente lo que el sistema no debe hacer. Es importante recordar esto: un RF puede ser también una declaración negativa. Siempre y cuando el resultado de su comportamiento sea una respuesta funcional al usuario o a otro sistema, es correcto. Y más aún, no sólo es correcto, sino que es necesario definirlo. Y eso nos lleva al siguiente punto.

Muchos de los problemas en la ingeniería de software (hablando sobre el proceso de desarrollo en sí mismo) comienzan con especificaciones de requisitos inexactas. Es natural que un Analista de Negocio (o quien sea que esté definiendo y documentando los requerimientos del sistema) tome algunas suposiciones como conocimiento universal, o dé por sentado algún comportamiento. Pero recuerde, también es natural que un desarrollador de sistemas interprete un requisito ambiguo de la manera más simple posible, para simplificar su implementación. Un claro ejemplo de estos problemas se puede encontrar en las funciones comunes relacionadas con la Experiencia de usuario:

  • Historia de Usuario: Como usuario, quiero que la aplicación sea fácil de usar, de modo que no tenga que pasar mucho tiempo aprendiendo a usarla.
  • ¿Qué significa ser “fácil de usar”?
  • ¿Fácil para quién?
  • ¿Cómo se mide?
  • ¿Cómo lo rastreas?
  • ¿Cómo se prueba? ¿Contra qué criterios?

Esto no es algo contra los desarrolladores, sino más bien contra el comportamiento humano. Si usted asume algo, otros pueden asumir algo diferente, y eso está bien. Pero el analista es el responsable de la documentación, por lo que debe ser el mismo analista el que trate de asegurarse de que no hay lagunas de comprensión o puntos grises. Esta es también la razón por la que las sesiones de Pre-Planificación y Presentación de Historias son muy importantes para asegurarse de que todo el equipo está en la misma página con respecto a los requisitos, su objetivo de negocio y cómo implementarlos. Volviendo al ejemplo anterior, podríamos dividir el requisito en varios nuevos, más fáciles de entender, desarrollar, probar, rastrear y entregar. Uno de ellos podría serlo:

  • Historia de usuario: Como usuario, quiero que se muestre un tutorial al iniciar sesión por primera vez, para que pueda ver para qué se utiliza cada opción de la pantalla de inicio.
  • Ya sabes qué mostrar, un tutorial.
  • Ya sabes lo que hay que comprobar, que explica cada opción en la pantalla de inicio.
  • Usted sabe cuando necesita ser mostrado, en el primer inicio de sesión del usuario (puede explicar más adelante si el tutorial puede ser omitido, mostrado en otros momentos, accedido desde alguna sección dentro del menú, etc.)

Volviendo a FR, en principio, la especificación de los requisitos funcionales de un sistema debe ser completa y coherente. Completar significa que todos los servicios solicitados por el usuario y/u otro sistema están definidos. La coherencia significa que los requisitos no tienen una definición contradictoria.

Requisitos no funcionales
Se trata de requisitos que no se refieren directamente a las funciones específicas suministradas por el sistema (características de usuario), sino a las propiedades del sistema: rendimiento, seguridad, disponibilidad. En palabras más sencillas, no hablan de “lo que” hace el sistema, sino de “cómo” lo hace. Alternativamente, definen restricciones del sistema tales como la capacidad de los dispositivos de entrada/salida y la representación de los datos utilizados en la interfaz del sistema.

Los requisitos no funcionales se originan en la necesidad del usuario, debido a restricciones presupuestarias, políticas organizacionales, la necesidad de interoperabilidad con otros sistemas de software o hardware, o factores externos tales como regulaciones de seguridad, políticas de privacidad, entre otros.

Existen diferentes tipos de requisitos y se clasifican según sus implicaciones.

  • Requisitos del producto. Especifican el comportamiento del producto, como los requisitos de rendimiento sobre la velocidad de ejecución del sistema y la cantidad de memoria necesaria, los requisitos de fiabilidad que establecen la tasa de fallos para que el sistema sea aceptable, los requisitos de portabilidad y los requisitos de usabilidad.
  • Requisitos organizativos. Se derivan de las políticas y procedimientos existentes en la organización cliente y en la organización del desarrollador: estándares en los procesos a utilizar; requisitos de implementación tales como lenguajes de programación o el método de diseño a utilizar; y requisitos de entrega que especifican cuándo se entregará el producto y su documentación.
  • Necesidades externas. Se derivan de factores externos al sistema y a su proceso de desarrollo. Incluyen los requisitos de interoperabilidad que definen la forma en que el sistema interactúa con los demás sistemas de la organización; los requisitos legales que deben seguirse para garantizar que el sistema funciona dentro de la ley; y los requisitos éticos. Estos últimos se imponen al sistema para asegurar que será aceptado por el usuario.

A veces, en la práctica, la especificación cuantitativa de este tipo de requisitos es difícil. No siempre es posible para los clientes traducir sus objetivos en requisitos cuantitativos. Para algunos de ellos, como el mantenimiento, puede que no se pueda utilizar ninguna métrica; el coste de la verificación objetiva de los requisitos cuantitativos no funcionales puede ser muy elevado. Y es por eso que también es muy importante ser muy cuidadoso al documentarlos. Un analista puede utilizar el apoyo del equipo de desarrollo y del equipo de pruebas para definir criterios mensurables con el fin de saber cuándo un requisito puede ser marcado con éxito como “Hecho”.

Al igual que hablamos de requisitos funcionales, la generalización nunca es buena, pero en este caso es aún más importante. Por qué? Porque el resultado de un desarrollo de requisitos no funcionales puede no ser explícito para el usuario final.

  • Mal ejemplo de RNF: El sistema debe ser seguro.
  • ¿Qué tan seguro es “seguro”?
  • ¿En qué situaciones?
  • ¿Existe una norma a cumplir?
  • ¿En qué secciones?
  • ¿Qué debe ocurrir si el sistema no puede funcionar tan rápido como se requiere?

En estos casos, la aplicación de un requisito no funcional mal definido puede resultar problemática, costosa y lenta. También porque la mayoría de las veces, una RNF no es algo que el equipo trabaja aislado en un período fijo de tiempo. El RNF puede ser abordado durante todo el proyecto (e incluso antes de comenzar o después de la entrega, en la fase de mantenimiento). Una vez más, el ejemplo anterior podría dividirse en múltiples requisitos que son más fáciles de rastrear e implementar.

  • Buen ejemplo de RNF: Todas las comunicaciones externas entre los servidores de datos, la aplicación y el cliente del sistema deben estar cifradas utilizando el algoritmo RSA.
  • Sabes qué tipo de comunicaciones necesitan ser encriptadas.
  • Usted sabe qué algoritmo usar y validar.

Los requisitos funcionales y no funcionales deben diferenciarse en el documento de requisitos, ya sea un SRS, una cartera de productos o cualquier artefacto que utilice. En la práctica, esto puede resultar difícil. Si se declara un requisito no funcional por separado de los requisitos funcionales, a veces es difícil ver la relación entre ellos. Si los RNF se declaran con requisitos funcionales, es difícil separar las condiciones funcionales de las no funcionales e identificar los requisitos que se refieren al sistema en su conjunto. Se debe encontrar un equilibrio adecuado que dependa del tipo de sistema o aplicación que se especifique. Por ejemplo, si está trabajando con un Product Backlog, podría tener Historias de Usuario separadas para RNFs, pero añadir un enlace a ellas en las RFs que puedan ser impactadas por ellas. Esta es una opción común en la mayoría de los sistemas de seguimiento de billetes utilizados en la actualidad.

En cualquier caso, tanto los RFs como los RNFs deben estar siempre documentados, incluso si es difícil establecer la relación entre ellos en los artefactos. Esto ayudará al equipo a reducir las discusiones de ida y vuelta, ahorrar tiempo y sobre todo, problemas innecesarios con el cliente.

Más info en: www.requeridos.com

Requerimientos Funcionales y No Funcionales, ejemplos y tips (2024)

FAQs

¿Qué son los requerimientos funcionales y no funcionales ejemplos? ›

Si los requisitos funcionales especifican lo que debe hacer un sistema, los requisitos no funcionales describen cómo lo hará. Por ejemplo, la nueva aplicación nos proporcionará la lista final de todos los usuarios conectados. Eso es parte de los requisitos funcionales.

¿Qué es un requerimiento funcional y ejemplos? ›

Los requerimientos funcionales de un sistema, son aquellos que describen cualquier actividad que este deba realizar, en otras palabras, el comportamiento o función particular de un sistema o software cuando se cumplen ciertas condiciones.

¿Cómo saber si un requerimiento es funcional o no funcional? ›

Los requisitos funcionales definen la funcionalidad de un software, es decir, qué pueden hacer, mientras que los requisitos no funcionales definen, otras cosas que no son requeridas por el usuario pero requeridas por un proveedor de servicios o el software en , como el registro, es un requisito no funcional para ...

¿Qué son los requerimientos no funcionales de un proyecto ejemplos? ›

Algunos ejemplos de requisitos no funcionales típicos son los siguientes:
  • Rendimiento.
  • Disponibilidad.
  • Durabilidad.
  • Estabilidad.
  • Accesibilidad.
  • Adaptabilidad.
  • Capacidad.
  • Integridad de datos.

¿Cuáles son los tipos de requerimientos no funcionales? ›

Los requerimientos NO funcionales se clasifican en:
  • Atributos de calidad.
  • Restricciones.
  • Interfaces externas.
  • Interfaces de usuario.
  • Control de errores.

¿Cómo se clasifican los requerimientos funcionales? ›

los requisitos funcionales se puede dividir en: De usuario: Los requerimientos de usuario, según Sommeville, 2005; “Son declaraciones, en lenguaje natural y en diagramas, de los servicios que se espera que el sistema provea y de las restricciones bajos las cuales se debe operar.

¿Cómo hacer un requerimiento no funcional? ›

Los requisitos no funcionales se originan en la necesidad del usuario, debido a restricciones presupuestarias, políticas organizacionales, la necesidad de interoperabilidad con otros sistemas de software o hardware, o factores externos tales como regulaciones de seguridad, políticas de privacidad, entre otros.

¿Qué son requerimientos ejemplos? ›

Un requerimiento define la funcionalidad que se espera que un determinado SW tenga. Un requerimiento expresa lo que el cliente quiere. El Análisis de requerimientos es el proceso mediante el cuál se identifican y se comprenden los requerimientos de un software.

¿Qué expresan los requerimientos no funcionales? ›

Los requerimientos no funcionales representan características generales y restricciones de la aplicación o sistema que se esté desarrollando.

¿Cómo se redacta un requerimiento? ›

El requerimiento debe contener las Especificaciones Técnicas en el caso de bienes, Términos de Referencia en el caso de servicios o Expediente Técnico en el caso de obras; además, debe incluir los requisitos de calificación que correspondan según el objeto de la contratación.

¿Qué características tiene un requerimiento funcional? ›

“Los requerimientos funcionales hacen referencia a la descripción de las actividades y servicios que un sistema debe proveer. Normalmente este tipo de requerimientos están vinculados con las entradas, las salidas de los procesos y los datos a almacenar en el sistema.”

¿Qué técnicas se utiliza para la recolección de los requisitos? ›

Siete técnicas para recopilar requerimientos
  • La técnica más común para reunir requerimientos es sentarte con los clientes y preguntarles que es lo que necesitan. Entrevistas grupales. ...
  • Sesiones facilitadas. ...
  • Sesiones de desarrollo conjunto de aplicaciones. ...
  • Cuestionarios. ...
  • Prototipos. ...
  • Seguir a las personas.

¿Cómo identificar los requerimientos? ›

Un requerimiento es una característica que debe incluirse en un nuevo sistema y puede consistir en una forma de captar o procesar datos, producir información, controlar una actividad o dar apoyo a una tarea. Para identificar requerimientos es menester comenzar por un adecuado relevamiento de información.

¿Qué es RF y RNF? ›

(Sommerville, 2011) distingue dos niveles de requisitos: Requisitos de usuario y Requisitos del sistema/software, estos últimos son clasificados en dos grandes tipos, como Requisitos Funcionales (RF) y Requisitos No Funcionales (RNF).

¿Cómo se registran los requerimientos no funcionales? ›

Los requerimientos no funcionales se enmarcan en un ámbito de infraestructura, seguridad y confiabilidad, describiendo las necesidades mínimas para que el sistema sea estable y se salvaguarde la información que allí residirá.

Top Articles
Latest Posts
Article information

Author: Aron Pacocha

Last Updated:

Views: 5996

Rating: 4.8 / 5 (68 voted)

Reviews: 83% of readers found this page helpful

Author information

Name: Aron Pacocha

Birthday: 1999-08-12

Address: 3808 Moen Corner, Gorczanyport, FL 67364-2074

Phone: +393457723392

Job: Retail Consultant

Hobby: Jewelry making, Cooking, Gaming, Reading, Juggling, Cabaret, Origami

Introduction: My name is Aron Pacocha, I am a happy, tasty, innocent, proud, talented, courageous, magnificent person who loves writing and wants to share my knowledge and understanding with you.