O que são Requisitos Funcionais e Requisitos Não Funcionais?

Requisitos são solicitações, desejos, necessidades. Um requisito é a propriedade que um software exibe para solucionar problemas reais, é a conjuntura indispensável para satisfazer um objeto. Quando se trata de um software sob demanda, por exemplo, um requisito é uma maneira pelo qual o sistema oferecido deve fazer, ou um condicionamento no desenvolvimento do sistema. Lembrando que, em ambas as ações, embora o programador ou o arquiteto de software tenha suas opiniões, é importante chegar em um acordo para resolver o problema do cliente. Esse sempre será o foco. É muito importante frisar que manter uma concordância com os clientes e àqueles envoltos é um dos principais objetivos dos requisitos. Um dos principais responsáveis pelo sucesso dos softwares, os requisitos, são a base para estimativas, modelagem, projeto, execução, testes e até mesmo para a manutenção dos mesmos. Assim, os requisitos estão presentes ao longo de todo o ciclo de vida de um software. Ao começar um projeto, os requisitos já devem ser levantados, entendidos e documentados. Assim como realizar atividades de controle de qualidade para verificar, validar e garantir a qualidade dos mesmos. Gerenciar a evolução dos requisitos é importante, estando cientes de que os negócios com sua dinâmica não garantem estabilidade e podem vir a sofrer alterações. Desse modo é necessário manter a rastreabilidade entre os requisitos e as outras peças do projeto.

Requisitos Funcionais

Esclarecido o que são requisitos é hora de desmembrá-los explicando cada um, começamos pelos requisitos funcionais. Dentro da engenharia de softwares podemos destacar o requisito funcional , onde há a materialização de uma necessidade ou solicitação realizada por um software. Porém, vários Requisitos Funcionais podem ser realizados dentro de uma mesma funcionalidade. São variadas as funções e serviços que um sistema pode fornecer ao seu cliente, descrevemos abaixo algumas das inúmeras funções que os softwares podem executar:

  • Incluir/Excluir/Alterar nome em uma tela de manutenção de funcionário
  • Geração de relatório de determinado período de vendas
  • Efetuar pagamentos de compra através de crédito ou débito
  • Consulta e alterações de dados pessoais de clientes
  • Emissão de relatórios de clientes ou vendas
  • Consulta de saldo ou estoque

Os requisitos funcionais são de extrema importância no desenvolvimento de aplicativos, pois, sem eles não há funcionalidades nos sistemas. Seus modelos devem ser construídos em um nível de entendimento claro e objetivo, além de um código fonte totalmente aplicável. Conclusão, para se obter requisitos funcionais de qualidade a fábrica de software deve estar atenta a síntese e a semântica dos mesmos.

Requisitos Não Funcionais

Uma vez que os Requisitos Funcionais definem o que o sistema fará, a Engenharia de Software afirma que os Requisitos Não Funcionais definem como o sistema fará, embora não seja tão claro assim essa definição. Os Requisitos não Funcionais não estão relacionados diretamente às funcionalidades de um sistema. Também chamado de atributos de qualidade ainda assim é de grande importância no desenvolvimento do sistema. Tratados geralmente como premissas e restrições técnicas de um projeto os requisitos não funcionais são praticamente todas as necessidades que não podem ser atendidas através de funcionalidades. Geralmente mensurável, os requisitos não funcionais definem características e impõe limites do sistema como método de desenvolvimento, tempo, espaço, Sistema Operacional, dentre outros e cuja medida pode ser determinada é importante que se associe essa medida ou referência à cada requisito não funcional. Para ficar mais claro temos alguns exemplos de propriedades e suas métricas:

  • O tamanho pode ser medido em kbytes e número de Chip de RAM.
  • A velocidade está ligada ao tempo de utilização da tela, ou transações processadas por segundos.
  • A métrica da portabilidade é o número de sistema-alvo.
  • A facilidade de uso pode ser medida pelo número de janelas ou o tempo de treino
  • A confiabilidade tem ligação com o tempo médio que o sistema pode vir a falhar, a disponibilidade ou até mesmo a taxa de ocorrência de falhas.

Esses são apenas alguns dos exemplos onde as propriedades e métricas são associadas a cada requisito não funcional. Além do mais esse requisitos não funcionais são divididos em três tipos principais. Requisitos de Produto Final, Requisitos Organizacionais, Requisitos Externos que se dividem em diversos outros tipos. Listamos abaixo alguns exemplos básicos de requisitos não funcionais:

  • Utilização do módulo de Informações Cadastrais em modo off-line
  • O sistema deve ser implementado na linguagem Java
  • O sistema deverá se comunicar com o banco SQL Server
  • Um relatório de supervisão deverá ser fornecido toda sexta-feira
  • O sistema deve ser executável em qualquer plataforma

Muitos softwares não obtém sucesso e chegam a fracassar. Isso se dá devido a não definição prévia desses atributos de qualidade na priorização ao definir uma arquitetura.  Se esses Requisitos não Funcionais levantam aspectos tão importantes nos sistemas de softwares e desconsiderá-los é submeter-se a uma futura falta de êxito ou deficiência no desenvolvimento do software, qual o motivo de tanto descaso?

  1. Apenas as grandes empresas, onde existem uma equipe de TI com maior disposição, onde acompanham de perto a elaboração dos softwares é que dão credibilidade aos Requisitos não Funcionais.
  2. Os Requisitos não funcionais são de difícil estimativa tanto para prazo, trabalho ou custo.
  3. É grande o número de fornecedores que julgam “gastar mais” no desenvolvimento de app, por exemplo, ao lidarem com os Requisitos não Funcionais e só não os ignoram quando são solicitados explicitamente pelo cliente.

De certo modo todas as atividades que são relacionadas aos requisitos fazem parte do processo de Engenharia de Requisitos. Uma das áreas essenciais no desenvolvimento de softwares a Engenharia de Requisitos possui algumas definições segundo a literatura técnica da engenharia:

  • Termo que descreve as atividades relacionadas à investigação e definição de escopo de um sistema de software.
  • Método sistemático de desenvolvimento de requisitos através de um processo cooperativo de análise onde os resultados das observações são codificados em uma variedade de formatos onde a precisão das observações são verificadas freqüentemente.
  • Curso de descoberta, análise, documentação e verificação das funções e restrições do sistema.

Esperamos que tenha esclarecido um pouco sobre como funciona o universo dos requisitos e caso ainda fique alguma dúvida não deixe de nos contatar. Conheça também nosso serviço de Análise e Engenharia de Requisitos, perfeito para as primeiras etapas de seu projeto. Ficaremos muito felizes em te atender!
]]>

Conheça o nosso serviço de Análise de Requisitos!
Peça um orçamento:
Enviar