Los requisitos funcionales son aquellos que describen el comportamiento de un sistema y los servicios que este debe proporcionar. Se derivan de los objetivos del sistema y representan el qué del sistema, es decir, lo que el sistema debe hacer para alcanzar sus objetivos. Deben ser lo suficientemente específicos como para ser medibles y deben estar relacionados con la función del sistema.
Los requisitos funcionales se agrupan en casos de uso que describen una interacción entre el sistema y sus usuarios, y están compuestos por un conjunto de pasos necesarios para que el caso de uso se complete de forma satisfactoria. Cada paso describe una acción del sistema o de los usuarios y el resultado esperado de dicha acción. Los casos de uso deben ser lo suficientemente generales como para poder ser reutilizados en otros contextos y deben estar relacionados entre sí para formar un conjunto coherente de requisitos funcionales.
Los requisitos funcionales deben ser verificables y validables para asegurar que el sistema cumple con lo que se espera de él. Se pueden utilizar técnicas de análisis como el diagrama de casos de uso o el modelo de objetos para analizar y comprender mejor los requisitos funcionales. También se pueden utilizar herramientas de automatización para generar código a partir de los requisitos funcionales y así reducir el tiempo y el esfuerzo necesarios para desarrollar un sistema.