Une spécification fonctionnelle décrit de façon détaillée ce qu'un système doit faire du point de vue de l'utilisateur : fonctions, règles de gestion, données, cas d'erreur. Elle sert de référence commune entre métier, conception et test, et évolue avec les changements.
Exemple
Fonction « Annuler une commande » : conditions, effets sur le stock, message affiché, cas d'échec.