Los requisitos funcionales y de desempeño son dos tipos de requisitos que se deben definir para cualquier proyecto de software. Los requisitos funcionales son aquellos que especifican qué debe hacer el software. Por ejemplo, un requisito funcional para una aplicación de correo electrónico podría ser "El software debe permitir al usuario enviar y recibir mensajes de correo electrónico". En contrast, los requisitos de desempeño especifican cómo debe hacer el software. Por ejemplo, un requisito de desempeño para el mismo software de correo electrónico podría ser "El software debe enviar y recibir mensajes de correo electrónico en menos de un segundo".
A menudo, se confunden los requisitos funcionales y de desempeño, pero son conceptos muy diferentes. Los requisitos funcionales especifican qué hace el software, mientras que los requisitos de desempeño especifican cómo lo hace. Es importante tener en cuenta ambos tipos de requisitos al definir un proyecto de software, ya que ambos son necesarios para garantizar que el software cumple con las necesidades del usuario.