logo

Requisitos funcionales versus no funcionales

El análisis de requisitos es un proceso muy crítico que permite evaluar el éxito de un sistema o proyecto de software. Los requisitos generalmente se dividen en dos tipos: requisitos funcionales y no funcionales.

Funcional versus no funcional



Comprender y distinguir entre este tipo de requisitos es esencial para el éxito de cualquier proyecto. Nuestro completo curso de diseño de sistemas Cubre estos conceptos en detalle, brindándole el conocimiento y las habilidades para recopilar, documentar y analizar requisitos de manera efectiva.

Temas importantes para requisitos funcionales y no funcionales

Requerimientos funcionales

Estos son los requisitos que el usuario final demanda específicamente como facilidades básicas que debe ofrecer el sistema. Todas estas funcionalidades deben incorporarse necesariamente al sistema como parte del contrato.



Estos se representan o expresan en forma de entrada que se entregará al sistema, la operación realizada y la salida esperada. Son los requisitos planteados por el usuario que se pueden ver directamente en el producto final, a diferencia de los requisitos no funcionales.

Ejemplo:

  • ¿Cuáles son las características que necesitamos diseñar para este sistema?
  • ¿Cuáles son los casos extremos que debemos considerar, si los hay, en nuestro diseño?

Requerimientos no funcionales

Estas son las limitaciones de calidad que el sistema debe satisfacer según el contrato del proyecto. La prioridad o el grado en que se implementan estos factores varía de un proyecto a otro. También se les llama requisitos no conductuales. Se ocupan de cuestiones como:



  • Portabilidad
  • Seguridad
  • Mantenibilidad
  • Fiabilidad
  • Escalabilidad
  • Actuación
  • Reutilizabilidad
  • Flexibilidad

Ejemplo:

  • ¿Cada solicitud debe procesarse con la latencia mínima?
  • El sistema debería ser muy valioso.

Requisitos ampliados

Básicamente, es bueno tener requisitos que podrían estar fuera del alcance del sistema.

Ejemplo:

matriz de cadenas
  • Nuestro sistema debe registrar métricas y análisis.
  • Monitoreo de salud y desempeño del servicio.

Diferencia entre requisitos funcionales y requisitos no funcionales:

Requerimientos funcionales

Requerimientos no funcionales

Un requisito funcional define un sistema o su componente.

Un requisito no funcional define el atributo de calidad de un sistema de software.

Especifica ¿Qué debe hacer el sistema de software?

Impone restricciones sobre ¿Cómo debe el sistema de software cumplir con los requisitos funcionales?

Los requisitos funcionales los especifica el usuario.

Los requisitos no funcionales los especifican personas técnicas, p. Arquitecto, líderes técnicos y desarrolladores de software.

java comparar cadenas

Es obligatorio.

No es obligatorio.

Se captura en el caso de uso.

Se capta como un atributo de calidad.

Definido a nivel de componente.

Aplicado a un sistema en su conjunto.

Le ayuda a verificar la funcionalidad del software.

Le ayuda a verificar el rendimiento del software.

Se realizan pruebas funcionales como sistema, integración, de extremo a extremo, pruebas de API, etc.

Se realizan pruebas no funcionales como pruebas de rendimiento, estrés, usabilidad, seguridad, etc.

Generalmente es fácil de definir.

¿Puede una clase abstracta tener un constructor?

Generalmente es más difícil de definir.

Ejemplo
1) Autenticación del usuario cada vez que inicia sesión en el sistema.
2) Apagado del sistema en caso de ciberataque.
3) Se envía un correo electrónico de verificación al usuario cada vez que se registra por primera vez en algún sistema de software.

Ejemplo
1) Los correos electrónicos deben enviarse con una latencia no mayor a 12 horas desde dicha actividad.
2) El procesamiento de cada solicitud debe realizarse en 10 segundos.
3) El sitio debería cargarse en 3 segundos cuando el número de usuarios simultáneos sea> 10000