La especificación de requisitos de software (ERS) es una descripción completa del comportamiento del sistema que se va a desarrollar.
Los casos de uso también son conocidos como requisitos funcionales.
Los requisitos no funcionales son requisitos que imponen restricciones en el diseño o la implementación, como, por ejemplo, restricciones en el diseño o estándares de calidad.
El lenguaje utilizado para su redacción debe ser informal, de forma que sea fácilmente comprensible para todas las partes involucradas en el desarrollo.
Las características de una buena ERS son definidas por el estándar IEEE 830-1998.