Um levantamento bem feito é como um mapa com o melhor caminho: minimiza tempo e esforço do desenvolvedor e minimiza o custo para o cliente. Por outro lado, tentar fazer um software sem os requisitos documentados é como dirigir um carro com os olhos vendados.

Especificar os requisitos de um software é descrever de forma detalhada o propósito do software e suas condições de desenvolvimento. É nesse momento que clientes e usuários definem o que o software deve fazer e qual o desempenho esperado; como o software vai interagir com o hardware disponível, com outros programas e com seus usuários em várias situações.

Requisitos são as descrições dos serviços que o software deve oferecer e as restrições que ele deve obedecer.

Os tipos de requisitos são:

Requisitos de usuário
Escrito em linguagem natural, descreve os serviços que o software vai ter e suas restrições operacionais. Se for ajudar na compreensão e clareza, pode conter diagramas.

Requisitos de sistema
É um documento estruturado que expõe os serviços do software de forma bem detalhada. É claro e detalhado, e por isso pode até ser usado como contrato entre desenvolvedor e cliente.

O início de um projeto de software que vamos desenvolver acontece de duas formas diferentes:

  • o cliente prefere ele mesmo documentar os requisitos; esta etapa não tem custo, e o documento produzido no final do processo fica com o cliente, quer continuemos o serviço, quer não. Isto é especialmente útil quando o levantamento dos requisitos já foi feito (em algum momento do passado) e o cliente quer saber o orçamento do desenvolvimento.
  • nós fazemos o levantamento necessário; o custo vai depender de quantas pessoas vão estar envolvidas, quantas entrevistas vão ser realizadas, e do nível de detalhamento da documentação.

Para qualquer um dos casos, elaboramos um sistema de gerenciamento de requisitos, para que o cliente não gaste mais tempo do que o necessário e nem tenha que pagar pelo que não vai usar. Para isso, integramos a etapa do levantamento com o orçamento e tornamos o processo fácil de visualizar.

Com os requerimentos que foram reunidos é elaborada a especificação do sistema, isto é, sua arquitetura e design.