Una especificación de requisitos software es un documento escrito que describe los requisitos funcionales y no funcionales de un software a desarrollar, así como la información del cliente que lo solicita. Se trata de una de las fases más importantes en el proceso de desarrollo de software, ya que a partir de ella se definirán todos los elementos del futuro programa.
La especificación de requisitos software debe ser clara, concisa y detallada, de tal forma que sirva de base para el desarrollo del software y para establecer un acuerdo entre el cliente y el desarrollador. En ella se deben recoger todos los requisitos, tanto funcionales como no funcionales, de manera que no queden dudas respecto a lo que se debe desarrollar.
Los requisitos funcionales son aquellos que el software debe cumplir para poder ser considerado como tal. Se trata de todas aquellas funcionalidades que debe tener el programa para que pueda ser utilizado de la forma prevista. Por ejemplo, si se trata de un software de gestión de una tienda, uno de los requisitos funcionales será que el programa sea capaz de llevar a cabo el proceso de venta de los productos.
Por otro lado, los requisitos no funcionales son todos aquellos que no se relacionan directamente con la funcionalidad del software, sino con otros aspectos como el rendimiento, la fiabilidad, la usabilidad, la seguridad, etc. Por ejemplo, un requisito no funcional de un software de gestión de una tienda podría ser que el programa sea capaz de realizar el proceso de venta de los productos de forma rápida y eficiente.
La especificación de requisitos software debe ser realizada por un equipo de expertos en el área, ya que es un documento muy técnico que requiere de un gran conocimiento del sector. El equipo debe estar formado por el cliente, el desarrollador y el analista de requisitos, entre otros. Todos ellos deben trabajar de forma estrecha y coordinada para asegurar que todos los requisitos sean recogidos de forma correcta.