Une exigence fonctionnelle est une exigence définissant une fonction du système à développer. Ce que le système doit faire.
Une exigence non-fonctionnelle est une exigence qui caractérise une propriété (qualité) désirée du système telle que sa performance, sa robustesse, sa convivialité, sa maintenabilité, etc.
Une contrainte est une restriction sur une ou plusieurs valeurs d’une partie du système ou de tout le système.