Gosto muito de estudar matérias relacionadas à engenharia de software, em particular análise de requisitos ou engenharia de requisitos. Neste post vou apresentar alguns dos mais importantes tipos de requisitos, suas definições completas e resumidas e exemplos de cada tipo, isso para diminuir o impacto caso este seja o primeiro contato com a matéria.

Requisitos pode ser definido como o estudo das características que o sistema deverá conter para atender às necessidades e expectativas do usuário. A seguir vou descrever os principais tipos de requisitos definidos pela engenharia de software.

Organization chart

  • Requisitos funcionais: “Requisitos funcionais são declarações de funções que o sistema deve fornecer, como o sistema deve reagir a entradas específicas e como deve ser comportar em determinadas situações. Em princípio, a especificação de requisitos funcionais de um sistema deve ser completa e consistente. A completeza significa que todas as funções requeridas pelo usuário devem estar definidas. A consistência significa que os requisitos não devem ter definições contraditórias. Em alguns casos, os requisitos funcionais podem também explicitamente declarar o que o sistema não deve fazer” (Engenharia de Software, Ian Sommerville).

Definição resumida: São declarações de funções que o sistema deve fornecer como o sistema deve reagir a entradas específicas e como deve se comportar em determinadas situações. Devem estar em sintonia com os requisitos do usuário.


  • Requisitos do usuário: “São declarações, em linguagem natural e também em diagramas, sobre as funções que o sistema deve fornecer e as restrições sobre as quais deve operar. Os requisitos do usuário para um sistema devem descrever os requisitos funcionais e não funcionais de modo compreensível pelos usuários do sistema que não têm conhecimentos técnicos detalhados. Eles devem especificar somente o comportamento externo do sistema, evitando tanto quanto possível as características de projeto do sistema. Conseqüentemente, não devem ser definidos utilizando-se um modo de implementação. Eles podem ser escritos com o uso de linguagem natural, formulários e diagramas intuitivos simples” (Engenharia de Software, Ian Sommerville).

Exemplos de requisitos funcionais solicitados pelo usuário:

  1. Cadastrar (incluir, alterar e excluir) paciente. A inclusão e alteração dos dados de um paciente devem ser realizadas pelo próprio paciente. A exclusão de um paciente jamais poderá ser realizada, um paciente poderá ser desativado no sistema somente por motivo de óbito. A desativação de um paciente será de responsabilidade dos cartórios que registrarem o óbito do mesmo.
  2. Cadastrar (incluir, alterar e excluir) referências pessoais do paciente. As três operações são de responsabilidade do paciente. Um paciente pode informar tantas referências quanto desejar. As referências servem para que caso haja a necessidade de acesso ao prontuário pessoal do paciente por uma equipe médica em uma ocasião de emergência e ou urgência a equipe responsável possa ter quem avisar do ocorrido. (A principio esta opção de acesso ao prontuário pessoal do paciente por profissionais de saúde estará desabilitada, onde o prontuário é pessoal como o nome propriamente dito e só o usuário possuidor dos dados tem autorização para acesso ao mesmo).

Definição resumida: Requisitos do usuário são as operações que o usuário determina como essencial para o funcionamento do sistema.


  • Requisitos do sistema: “Os requisitos do sistema são descrições mais detalhadas dos requisitos do usuário. Eles podem servir como base para um contrato destinado à implementação do sistema e, portanto, devem ser uma especificação completa e consistente de todo o sistema” (Engenharia de Software, Ian Sommerville).

Exemplos de requisitos do sistema apartir dos requisitos do usuário:

  1. O sistema deve permitir a inclusão, alteração e remoção de tipo de endereço com o atributo nome. O nome é obrigatório e não podem ser incluídos mais que um tipo de endereço com o mesmo nome. As três operações são de responsabilidade do administrador no sistema. Exemplos de tipo de endereço são: (comercial, residencial e cobrança).
  2. O sistema deve permitir a inclusão, alteração e remoção de tipo de telefone com o atributo nome. O nome é obrigatório e não pode ser incluído mais que um tipo de telefone com o mesmo nome. Um tipo de telefone pode estar associado a nenhum ou vários telefones e um telefone pode ter somente um tipo de telefone. As três operações são de responsabilidade do administrador no sistema. Exemplos de tipo de telefone são: (residencial, comercial, celular e fax).

Definição resumida: Requisitos do sistema são as operações definidas nos requisitos do usuário de uma forma elaborada e detalhada.


  • Requisitos não funcionais: “Requisitos não funcionais são restrições sobre os serviços ou as funções oferecidas pelo sistema. São aqueles que não dizem respeito diretamente às funções específicas fornecidas pelo sistema. Entre eles destacam-se restrições de tempo de desenvolvimento ou de resposta, restrições sobre o processo de desenvolvimento, padrões, entre outros” (Engenharia de Software, Ian Sommerville).

Exemplos de requisitos não funcionais:

  1.  O sistema deve ser desenvolvido usando ferramentas de software livre.
  2. O sistema deve fornecer inicialmente 2 (dois) idiomas de apresentação de mensagens e textos (Português e inglês), ou seja, deve ter opção de internacionalização.

Definição resumida: Descrições das qualidades do sistema (como o sistema é) ao invés de suas funcionalidades (o que ele faz).


A engenharia de requisitos se não for á etapa mais importante na análise e documentação de um sistema de software, com certeza esta entre as mais. A etapa de análise de requisitos e responsável por obter informações de extrema importância, indispensáveis e necessárias para atender os objetivos dos usuários para com o software.

Por enquanto é isso, até o próximo post.

6 comentários para “Requisitos de software

  1. You actually make it seem so easy along with your presentation however I to find this matter to be really something which I feel I might never understand. It seems too complicated and very extensive for me. I am looking ahead to your next post, I will attempt to get the cling of it!

  2. I always was concerned in this topic and stock still am, thankyou for putting up.

  3. I simply want to say I am just new to blogs and certainly loved you’re website. Probably I’m planning to bookmark your website . You certainly have very good well written articles. Regards for revealing your website.

  4. Pingback: Processo Unificado (PU) | Parmigiani Júnior, Ednei.

Deixe um comentário

Campos obrigatórios são marcados *

Post Navigation