Sobre los requerimientos de software

Un tema básico de la ingeniería de software son los requerimientos funcionales y los no funcionales y realmente no debe de darsele muchas vueltas.

La Wikipedia tiene una frase que me encanta como resume su significado:

Los «requerimientos funcionales» definen lo que un sistema debe hacer, los «requerimientos no funcionales» definen como un sistema debe de ser.