¿Cuál es la diferencia entre requisito funcional y no funcional? [cerrado]


283

¿Cuál es la diferencia entre los requisitos funcionales y no funcionales en el contexto del diseño de un sistema de software?

Da ejemplos para cada caso.



@TravisJ Nuevamente, mantengamos la etiqueta en las preguntas hasta que hayamos terminado con la primera fase de la quema de etiquetas.
TylerH

Respuestas:


525

Un requisito funcional describe lo que debe hacer un sistema de software, mientras que los requisitos no funcionales imponen restricciones sobre cómo lo hará el sistema.

Déjame elaborar.

Un ejemplo de un requisito funcional sería:

  • Un sistema debe enviar un correo electrónico cada vez que se cumpla una determinada condición (por ejemplo, se realiza un pedido, un cliente se registra, etc.).

Un requisito no funcional relacionado para el sistema puede ser:

  • Los correos electrónicos deben enviarse con una latencia de no más de 12 horas desde dicha actividad.

El requisito funcional es describir el comportamiento del sistema en relación con la funcionalidad del sistema. El requisito no funcional elabora una característica de rendimiento del sistema.

Por lo general, los requisitos no funcionales se dividen en áreas tales como:

  • Accesibilidad
  • Capacidad actual y pronosticada
  • Conformidad
  • Documentación
  • Recuperación de desastres
  • Eficiencia
  • Eficacia
  • Extensibilidad
  • Tolerancia a fallos
  • Interoperabilidad
  • Mantenibilidad
  • Intimidad
  • Portabilidad
  • Calidad
  • Fiabilidad
  • Resiliencia
  • Tiempo de respuesta
  • Robustez
  • Escalabilidad
  • Seguridad
  • Estabilidad
  • Soportabilidad
  • Testabilidad

Una lista más completa está disponible en la entrada de Wikipedia para requisitos no funcionales .

Los requisitos no funcionales a veces se definen en términos de métricas (es decir, algo que se puede medir sobre el sistema) para hacerlos más tangibles. Los requisitos no funcionales también pueden describir aspectos del sistema que no se relacionan con su ejecución, sino con su evolución a lo largo del tiempo (por ejemplo, mantenibilidad, extensibilidad, documentación, etc.).


Le diferiré, por supuesto, dada su reputación e historial de trabajo profesional (que vi antes de escribir esto): ¿no podría su ejemplo de requisito no funcional considerarse un comportamiento? ¿O su punto es más el hecho de que los requisitos no funcionales describen restricciones en torno a los comportamientos?
Thomas

1
Para aclarar un poco mi pregunta (y puede que no sea responsable): ¿hay alguna forma de dilucidar mejor el límite de lo que constituye el comportamiento?
Thomas

más 1 por dar un buen ejemplo de sistema de correo electrónico. :)
Ahtisham

33

Los requisitos funcionales son lo principal que el usuario espera del software, por ejemplo, si la aplicación es una aplicación bancaria, esa aplicación debería poder crear una nueva cuenta, actualizar la cuenta, eliminar una cuenta, etc. Los requisitos funcionales se detallan y se especifican en el diseño del sistema

El requisito no funcional no es sencillo el requisito del sistema, sino que está relacionado con la usabilidad (de alguna manera), por ejemplo, para una aplicación bancaria, un requisito no funcional importante estará disponible, la aplicación debe estar disponible las 24 horas del día, los 7 días de la semana, sin tiempo de inactividad si es posible.


27

Requerimientos funcionales

  1. Los requisitos funcionales especifican una función que un sistema o componente del sistema debe poder realizar. Se puede documentar de varias maneras. Las más comunes son descripciones escritas en documentos y casos de uso.

  2. Los casos de uso pueden ser listas de enumeración textuales, así como diagramas, que describen las acciones del usuario. Cada caso de uso ilustra escenarios de comportamiento a través de uno o más requisitos funcionales. Sin embargo, a menudo, un analista comenzará obteniendo un conjunto de casos de uso, de los cuales el analista puede derivar los requisitos funcionales que deben implementarse para permitir que un usuario realice cada caso de uso.

  3. Los requisitos funcionales es lo que se supone que debe lograr un sistema . Puede ser

    • Cálculos
    • Detalles técnicos
    • Manipulación de datos
    • Procesamiento de datos
    • Otra funcionalidad específica
  4. Un requisito funcional típico contendrá un nombre y número únicos, un breve resumen y una justificación. Esta información se utiliza para ayudar al lector a comprender por qué se necesita el requisito y para rastrearlo a través del desarrollo del sistema.

requerimientos no funcionales

LBushkin ya ha explicado más sobre los requisitos no funcionales. Agregaré más.

  1. Los requisitos no funcionales son cualquier otro requisito que los requisitos funcionales. Estos son los requisitos que especifican los criterios que se pueden utilizar para juzgar el funcionamiento de un sistema, en lugar de comportamientos específicos .

  2. Los requisitos no funcionales tienen la forma de "sistema debe ser" , una propiedad general del sistema en su conjunto o de un aspecto particular y no una función específica. Las propiedades generales del sistema suelen marcar la diferencia entre si el proyecto de desarrollo ha tenido éxito o no.

  3. Requisitos no funcionales: se pueden dividir en dos categorías principales:

    • Cualidades de ejecución , como seguridad y usabilidad, que se pueden observar en tiempo de ejecución.
    • Cualidades de evolución , como capacidad de prueba, mantenibilidad, extensibilidad y escalabilidad, que están incorporadas en la estructura estática del sistema de software.
  4. Los requisitos no funcionales imponen restricciones al producto que se está desarrollando, al proceso de desarrollo y especifican restricciones externas que el producto debe cumplir.
  5. El IEEE-Std 830 - 1993 enumera 13 requisitos no funcionales que se incluirán en un documento de requisitos de software.
  1. Requisitos de desempeño
  2. Requisitos de interfaz
  3. Requerimientos operacionales
  4. Requerimientos de recursos
  5. Requisitos de verificación
  6. Requisitos de aceptación
  7. Requisitos de documentación
  8. Requerimientos de seguridad
  9. Requisitos de portabilidad
  10. Requerimientos de calidad
  11. Requisitos de confiabilidad
  12. Requisitos de mantenibilidad
  13. Requerimientos de seguridad

Si un requisito se expresa o no como un requisito funcional o no funcional puede depender:

  • en el nivel de detalle que se incluirá en el documento de requisitos
  • El grado de confianza que existe entre un cliente del sistema y un desarrollador del sistema.

Ex. Es posible que se requiera un sistema para presentar al usuario una visualización del número de registros en una base de datos. Este es un requisito funcional. La actualización [actualización] de este número debe ser un requisito no funcional. Si el número necesita actualizarse en tiempo real, los arquitectos del sistema deben asegurarse de que el sistema sea capaz de actualizar el recuento de registros [mostrados] dentro de un intervalo aceptablemente corto del número de cambios de registros.

Referencias

  1. Requerimiento funcional
  2. Requisito no funcional
  3. Cuantificación y trazabilidad de requisitos

1
Bien explicado. ¡Gracias!
Arslan Ramay

1
Buena respuesta con buenas referencias. Solo quiero agregar el estándar más actualizado, ya que IEEE 830-1993 fue reemplazado. El estándar más reciente es ISO / IEC / IEEE 29148: 2018 "Ingeniería de sistemas y software - Procesos del ciclo de vida - Ingeniería de requisitos" ( iso.org/standard/72089.html )
cierre de sesión

8

Los requisitos funcionales son aquellos que están relacionados con la funcionalidad técnica del sistema.

El requisito no funcional es un requisito que especifica los criterios que se pueden utilizar para juzgar el funcionamiento de un sistema en condiciones particulares, en lugar de comportamientos específicos.

Por ejemplo, si considera un sitio de compras, agregar artículos al carrito, explorar diferentes artículos, aplicar ofertas y ofertas y realizar pedidos con éxito se encuentra bajo requisitos funcionales.

Mientras que el rendimiento del sistema en las horas pico, el tiempo que tarda el sistema en recuperar datos de la base de datos, la seguridad de los datos del usuario, la capacidad del sistema para manejar si un gran número de usuarios entra bajo requisitos no funcionales.


Excelente respuesta
Iftekhar

3

REQUISITOS FUNCIONALES las actividades que el sistema debe realizar

  • El negocio utiliza funciones que los usuarios realizan
  • ejemplo de casos de uso si está desarrollando un sistema de nómina de funciones requeridas
  • generar transferencias electrónicas de fondos
  • importes de comisiones de cálculo
  • calcular impuestos de nómina
  • informar la deducción de impuestos al IRS

2

Creo que el requisito funcional es del lado del cliente al desarrollador que se refiere a la funcionalidad para el usuario por parte del software y el requisito no funcional es del desarrollador al cliente, es decir, el cliente no proporciona el requisito, pero el desarrollador lo proporciona para que el sistema funcione sin problemas, por ejemplo seguridad, flexibilidad, escalabilidad, disponibilidad, etc.

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.