Requisitos funcionales vs 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 .

Requerimientos Funcionales: Son los requisitos que el usuario final exige específicamente como facilidades básicas que debe ofrecer el sistema. Todas estas funcionalidades deben estar necesariamente incorporadas al sistema como parte del contrato. Estos se representan o establecen en forma de entrada que se le dará al sistema, la operación realizada y la salida esperada. Son básicamente los requisitos declarados por el usuario que se pueden ver directamente en el producto final, a diferencia de los requisitos no funcionales.

Requisitos no funcionales: Son básicamente las restricciones de calidad que el sistema debe satisfacer según el contrato del proyecto. La prioridad o la medida en que se implementan estos factores varía de un proyecto a otro. También se les llama requisitos no conductuales.
Básicamente se ocupan de cuestiones como:

  • Portabilidad
  • Seguridad
  • mantenibilidad
  • Fiabilidad
  • Escalabilidad
  • Actuación
  • reutilización
  • Flexibilidad
  • Las siguientes son las diferencias entre los requisitos funcionales y 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?» Establece restricciones sobre «¿Cómo debe el sistema de software cumplir con los requisitos funcionales?»
    El usuario especifica el requisito funcional. Los requisitos no funcionales son especificados por personas técnicas, por ejemplo, arquitectos, líderes técnicos y desarrolladores de software.
    Es obligatorio. No es obligatorio.
    Se captura en el caso de uso. Se captura como un atributo de calidad.
    Definido a nivel de componente. Aplicado a un sistema como un todo.
    Le ayuda a verificar la funcionalidad del software. Le ayuda a verificar el rendimiento del software.
    Se realizan pruebas funcionales como sistema, integración, extremo a extremo, pruebas de API, etc. Se realizan pruebas no funcionales como rendimiento, estrés, usabilidad, pruebas de seguridad, etc.
    Suele ser fácil de definir. Suele ser 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 debe cargarse en 3 segundos cuando el número de usuarios simultáneos es > 10000

Publicación traducida automáticamente

Artículo escrito por chitrasingla2001 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *