Artigo

Requisitos Funcionais e Não Funcionais para o EBSERH (TI)

Olá pessoal, tudo bem? Este artigo apresenta um resumo de Engenharia de Requisitos, focando no assunto mais cobrado em provas da IBFC: Requisitos Funcionais x Requisitos Não Funcionais.

Estruturamos este resumo nos seguinte tópicos:

Introdução

A engenharia de requisitos é o alicerce de qualquer projeto de desenvolvimento de software bem-sucedido. Ela atua como uma ponte essencial entre as necessidades dos usuários e a implementação prática de sistemas de software. No coração dessa disciplina, encontramos dois tipos distintos de requisitos que desempenham papéis igualmente cruciais: os Requisitos Funcionais e os Requisitos Não Funcionais.

Este artigo mergulha na importância da diferenciação entre essas duas categorias de requisitos, pois, no tocante a engenharia de requisitos, este é o assunto mais importante para concursos públicos, principalmente quando estamos falando da banca IBFC. 

Os Requisitos Funcionais descrevem as funcionalidades específicas que um sistema de software deve fornecer, ou seja, o que o sistema deve fazer. Por outro lado, os Requisitos Não Funcionais se concentram em como o sistema deve desempenhar essas funções, abordando questões como desempenho, segurança, usabilidade e confiabilidade.

A seguir, iremos abordar em detalhes sobre esses dois tipos de requisitos.

Requisitos Funcionais

Os Requisitos Funcionais desempenham um papel central na Engenharia de Requisitos, pois eles definem as funcionalidades específicas que um sistema de software deve realizar para atender às necessidades dos usuários e alcançar os objetivos do projeto. Em essência, os requisitos funcionais respondem à pergunta: “O que o sistema deve fazer?“. Conforme Sommerville, em alguns casos os requisitos funcionais também podem explicitar “o que o sistema não deve fazer”. 

Além disso, os requisitos funcionais dependem de alguns fatores, como o tipo de software a ser desenvolvido, quem são seus possíveis usuários e qual a abordagem que a organização adota ao escrever os requisitos. 

Ainda mais, os Requisitos Funcionais são essenciais para garantir que o sistema atenda às expectativas dos usuários e execute as tarefas necessárias para cumprir seu propósito. Então, eles servem como um guia claro para o desenvolvimento e teste do sistema, permitindo que as equipes de projeto compreendam o que precisa ser implementado e validado.

Características dos Requisitos Funcionais

Ações do Sistema

Os requisitos funcionais descrevem as ações, operações e tarefas que o sistema deve executar. Sendo assim, eles identificam as funcionalidades que o sistema deve oferecer para cumprir seu propósito.

Verbos de Ação

De modo frequente, os requisitos funcionais são formulados com verbos de ação, como “registrar,” “gerar,” “exibir,” “calcular,” etc., que indicam claramente o que o sistema deve realizar.

Especificação de Entradas e Saídas

Os requisitos funcionais também especificam as entradas necessárias para que a função ocorra e as saídas resultantes da execução da função.

Exemplos de Requisitos Funcionais

Exemplo 1: Sistema de Reservas de Voo

Requisito Funcional: O sistema deve permitir que os usuários busquem voos disponíveis com base na origem, destino e data da viagem. Além disso, o sistema deve exibir uma lista de voos correspondentes aos critérios de pesquisa.

Neste exemplo, o Requisito Funcional descreve a funcionalidade principal do sistema, que é buscar e exibir voos com base nas informações fornecidas pelos usuários.

Exemplo 2: Sistema de Compras Online

Requisito Funcional: Os clientes devem ser capazes de adicionar produtos ao carrinho de compras, visualizar os itens no carrinho e efetuar o pagamento usando diferentes métodos de pagamento, como, por exemplo, cartão de crédito, PayPal ou boleto bancário.

Neste caso, o Requisito Funcional detalha as ações que os usuários podem realizar no sistema, como, por exemplo, adicionar produtos ao carrinho, visualizar o carrinho e efetuar o pagamento.

Exemplo 3: Aplicativo de Redes Sociais

Requisito Funcional: Os usuários podem criar, editar e excluir postagens em seus perfis, além de comentar e curtir as postagens de outros usuários.

Nesse exemplo, o Requisito Funcional descreve as operações que os usuários podem realizar em uma aplicação de redes sociais, como, por exemplo, criar, editar e excluir postagens, além de interagir com as postagens de outras pessoas.

Requisitos Não Funcionais

Enquanto os Requisitos Funcionais descrevem o que um sistema de software deve fazer, os Requisitos Não Funcionais especificam como o sistema deve fazer essas funções. Assim, eles se concentram em aspectos que afetam a qualidade, desempenho e experiência geral do usuário, respondendo à pergunta: “Como o sistema deve realizar suas funções?“. 

Além disso, os requisitos não funcionais são frequentemente mais críticos do que os requisitos funcionais individuais. Por exemplo, em relação aos requisitos funcionais, os usuários do sistema podem encontrar formas de contornar uma função do sistema que não satisfaça suas necessidades. Entretanto, descumprir um requisito não funcional pode resultar em inutilização total do sistema. Por exemplo, um sistema muito lento ou não confiável pode ficar inutilizado.

Os Requisitos Não Funcionais desempenham um papel crítico na garantia de que o sistema atenda aos padrões de qualidade, segurança e desempenho esperados. Eles podem variar amplamente, abrangendo desde requisitos de desempenho até requisitos de segurança e conformidade regulamentar. Ter em mente esses requisitos é vital para o sucesso do projeto e a satisfação do cliente, garantindo que o sistema não apenas funcione, mas funcione de maneira eficaz e confiável. 

Características dos Requisitos Não Funcionais

Qualidade e Desempenho

Os requisitos não funcionais geralmente estão relacionados à qualidade do sistema, como a eficiência, segurança, confiabilidade, usabilidade e escalabilidade.

Restrições e Limitações

Eles podem impor restrições e limitações ao sistema, como tempo de resposta máximo, disponibilidade do sistema e requisitos de segurança.

Aspectos Técnicos

Os requisitos não funcionais podem envolver aspectos técnicos, como a plataforma de hospedagem, a tecnologia a ser usada e os padrões a serem seguidos.

Exemplos de Requisitos Não Funcionais

Exemplo 1: Desempenho

Requisito Não Funcional: O sistema de reservas de voo deve ser capaz de suportar até 1.000 solicitações de busca de voos por minuto, com um tempo de resposta médio não superior a 2 segundos.

Neste exemplo, o Requisito Não Funcional estabelece uma restrição de desempenho que o sistema deve atender. Ele define o número máximo de solicitações por minuto e o tempo de resposta aceitável.

Exemplo 2: Segurança

Requisito Não Funcional: Os dados dos clientes armazenados no sistema de compras online devem ser criptografados com um algoritmo de criptografia de, no mínimo, 256 bits. Além disso, o sistema deve manter registros de acesso para fins de auditoria e conformidade.

Este Requisito Não Funcional lida com questões de segurança, especificando os padrões de criptografia a serem seguidos e as ações de registro para garantir a conformidade e a proteção dos dados dos clientes.

Exemplo 3: Usabilidade

Requisito Não Funcional: O aplicativo de redes sociais deve ser projetado de acordo com as diretrizes de usabilidade da plataforma, garantindo que a interface do usuário seja intuitiva e acessível a pessoas com deficiências.

Aqui, o Requisito Não Funcional enfoca a usabilidade, garantindo que o aplicativo seja amigável e acessível a todos os usuários, independentemente de suas habilidades ou necessidades.

Classificação dos Requisitos Não Funcionais

A classificação dos Requisitos Não Funcionais, segundo o renomado autor de engenharia de software Ian Sommerville, é uma das abordagens mais reconhecidas e utilizadas na área. Ele propõe uma categorização que ajuda a entender e gerenciar os Requisitos Não Funcionais de maneira mais estruturada. A classificação de Sommerville divide os Requisitos Não Funcionais em três categorias principais: requisitos de produto, requisitos organizacionais e requisitos externos

Requisitos de Produto

Os requisitos de produto especificam ou restringem o comportamento do software durante a execução. Eles descrevem como o sistema deve se comportar em termos de desempenho, confiabilidade e outros aspectos diretamente relacionados à sua funcionalidade. Exemplos:

  • Requisitos de dependabilidade (ou confiança): indica a qualidade do serviço fornecido pelo sistema e a confiança depositada nele, estabelecem a taxa aceitável de falhas.
  • Requisitos de eficiência: incluem os requisitos de desempenho quanto à rapidez com que o sistema deve executar e a quantidade de memória que ele precisa.
  • Requisitos de usabilidade: Definem critérios de interface do usuário, como facilidade de navegação, acessibilidade e experiência do usuário.
  • Requisitos de segurança da informação: Requisitos relacionados à segurança de dados e autenticação em sistemas externos que interagem com o sistema.

Requisitos Organizacionais

Os Requisitos Organizacionais estão relacionados aos processos, políticas e procedimentos da organização do cliente e do desenvolvedor. Eles podem impactar o desenvolvimento, a implantação e a manutenção do sistema. Exemplos:

  • Requisitos de Desenvolvimento: Especificam a linguagem de programação, o ambiente de desenvolvimento ou normas de processo de desenvolvimento utilizadas.
  • Requisitos Operacionais: Definem como o sistema será utilizado.
  • Requisitos Ambientais: Especificam o ambiente operacional do sistema.

Requisitos externos

Os requisitos externos são aqueles que derivam de fatores externos ao sistema e seu processo de desenvolvimento. São relacionados com os aspectos regulatórios, éticos ou legais. Exemplos:

  • Requisitos Legais ou legislativos: Definem o que deve ser feito para que o sistema opere dentro da lei. Podem ser subdivididos em requisitos contábeis ou de segurança.
  • Requisitos Éticos: Garantem que o sistema será aceitável para seus usuários e o público em geral.
  • Requisitos Reguladores: Definem o que deve ser feito para que o sistema seja aprovado para uso, por um órgão regulador, como, por exemplo, o banco central.

Síntese e Mapa Mental

Síntese

Vejamos agora uma pequena síntese do assunto:

  • Requisitos Funcionais: Especificam “o que o sistema deve fazer”, ou seja, as funcionalidades do sistema.
  • Requisitos Não Funcionais: Especificam “como o sistema deve operar”, ou seja, abrange aspectos de qualidade e desempenho, restrições e limitações, e aspectos técnicos.
    • Classificação dos Requisitos Não Funcionais:
      • Requisitos de Produto: especificam ou restringem o comportamento do software durante a execução. Ex: requisitos de dependabilidade (confiança), usabilidade, segurança e eficiência.
      • Requisitos Organizacionais: relacionados aos processos, políticas e procedimentos da organização do cliente e do desenvolvedor. Ex: Requisitos de desenvolvimento, operacionais e ambientais.
      • Requisitos Externos: derivam de fatores externos ao sistema e seu processo de desenvolvimento. Ex: requisitos legais, éticos e reguladores.

Mapa Mental

Para facilitar o entendimento e memorização, apresentamos abaixo um mapa mental resumindo o que tratamos neste artigo:

Mapa mental de Requisitos Funcionais X Requisitos Não Funcionais

Conclusão

Pessoal, enfim chegamos ao final deste resumo sobre engenharia de requisitos (Requisitos Funcionais X Requisitos Não Funcionais) para o concurso do EBSERH. Procuramos trazer os principais pontos desse assunto, de acordo com o que a banca IBFC vem cobrando em suas provas, de modo que você possa gabaritar as questões sobre esse tema. Por fim, espero que este artigo seja útil em sua jornada rumo à aprovação.

Quer saber tudo sobre concursos previstos?
Confira nossos artigos!

Concursos abertos

Concursos 2024

Concurso EBSERH

Deixe seu comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *

Veja os comentários
  • Muito obrigado, esclareceu para mim!!!
    Pedro em 07/02/24 às 00:40