Los requerimientos funcionales declaran los servicios que debe proporcionar el sistema y cómo debe reaccionar a entradas. Los requerimientos no funcionales son restricciones como el tiempo de respuesta y la capacidad de almacenamiento, y rara vez se asocian con características particulares sino que especifican propiedades generales del sistema.