A importância dos requisitos não-funcionais

A importância dos requisitos não-funcionaisComo já sabemos, desenvolver um software não é uma tarefa trivial, já que, além da habilidade em programação, também é necessário compreender a regra de negócio do cliente. Durante o desenvolvimento, o nosso maior objetivo obviamente é satisfazer as necessidades pelas quais o sistema foi concebido. Mas será que só isso é importante?

 

Antes de entrar no assunto, vale ressaltar o conceito de “requisitos funcionais” e a sua importância na qualidade do produto final.
Requisitos funcionais são as necessidades apontadas pelo cliente, ou seja, o que ele quer que o sistema faça. Gerenciar vendas, manter fornecedores e emitir relatórios mensais são exemplos de requisitos funcionais, que geralmente são obtidos durante a etapa de levantamento de requisitos junto ao cliente e demais usuários. Portanto, boa parte da qualidade do software está centrada em atender tais requisitos, uma vez que esse é o comportamento esperado pelo cliente. Imagine um sistema onde somente 8 das 10 funções solicitadas foram implementadas. Em uma analogia, é a mesma coisa que comprar um carro que não possui freios e faróis: ele anda, mas uma hora irá bater. É importante implementar cada requisito do cliente, e é por isso que existem as fases de análise e modelagem em um projeto.

O problema é que, na preocupação de satisfazer as necessidades do cliente, os desenvolvedores esquecem que existem os requisitos não-funcionais, que também influenciam bastante na qualidade do software.
Requisitos não-funcionais são as características e aspectos internos do sistema, envolvendo especificamente a parte técnica. Ao contrário dos requisitos funcionais, estes requisitos não são explicitamente expostos pelo cliente, mas devem ser implicitamente compreendidos pelo desenvolvedor.  Os requisitos não-funcionais basicamente se resumem em seis itens, descritos logo abaixo.

• Segurança: o software deve garantir a segurança dos dados, bem como as permissões de acesso às suas funcionalidades, como, por exemplo, usar criptografia em senhas e liberar acesso aos menus do sistema de acordo com a hierarquia do usuário. Quando se trata de um software com informações confidenciais (como dados de vendas, faturamentos ou citações de pessoas), este item se torna indispensável.

• Usabilidade: procure desenvolver um sistema fácil de operar e que dispense muitos recursos gráficos. Se possível, adicione descrições das funções (hints) aos botões e configure teclas de atalho para as funções mais utilizadas. Quanto mais simples for a usabilidade, maior será a aceitação dos usuários.

• Confiabilidade: determina a capacidade do sistema em lidar com eventos inesperados. Suponha que o usuário esteja cadastrando um novo registro, e após inserir todas as informações, ocorre um erro no sistema e o usuário acaba perdendo as informações digitadas. Revoltante, não? A primeira coisa que ele irá fazer é pedir pra trocar o software, e dependendo das circunstâncias o pedido é atendido, rsrs. A confiabilidade significa que o sistema deve ser capaz de tratar exceções e se recuperar de falhas, sem que haja perda de dados. Backup e restauração do banco de dados também se encaixam neste item.

• Padrão: define a padronização de interface e código utilizada no desenvolvimento do software. Embora seja mais voltado para a equipe de desenvolvimento, é essencial para facilitar a manutenção e atualização do sistema. Este item também envolve conceitos de arquitetura, como utilizar MVC, padrões de projeto ou frameworks.

• Desempenho: de nada adianta ter um sistema seguro, interativo e confiável se ele consome muitos recursos do computador e demora pra executar os processamentos. Um sistema lento é alvo de crítica dos usuários, mesmo que seja funcional. A performance do software pode ser melhorada utilizando técnicas de programação orientada a objetos, gerenciamento de memória, threads e otimização de código. Outros fatores como consultas SQL no banco de dados e liberação de recursos da memória também devem ser estudados para aprimorar o desempenho.

• Hardware e Software: define os requisitos mínimos para o funcionamento adequado do software. Por exemplo, se o sistema faz integração com o Microsoft Outlook, este deve estar instalado no computador como pré-requisito. Da mesma forma, se o sistema trabalha em rede, é necessário que o computador tenha uma interface física de rede instalada. Esse item também abrange a portabilidade do software para outros sistemas, tal como a sua facilidade de configuração.

 

Além dos itens acima, outras características também podem ser citadas, respeitando os fundamentos da Engenharia de Software.

Antes de finalizar o artigo, vejam que no enunciando mencionei sobre o domínio da regra de negócio e habilidade de programação. A grosso modo, o primeiro se refere aos requisitos funcionais, enquanto o segundo trata de ambos.
É isso aí, ser programador realmente não é fácil, rsrs…

 

Até a próxima, pessoal!
Câmbio!


 

Compartilhe!
Share on FacebookTweet about this on TwitterShare on LinkedInShare on Google+Pin on PinterestEmail this to someone

11 comentários

  1. gostei muito do conteudos de suas materia Andre, mas gostaria da sua ajuda…como faço pra converter um programa feito em delhpi 5 para delphi 7?

    1. Olá, getulio! A conversão de projetos entre versões do Delphi depende de algumas variáveis, como compatibilidade de componentes de terceiros e adaptações dos componentes da VCL. Pra ficar mais fácil, entrarei em contato com você por e-mail, ok?

  2. Muito bom, contribuiu muito para meu entendimento sobre o assunto.

    Compartilhar conhecimento é muito importante, obrigado por esta ajudando com seu conhecimento.

  3. André,

    Cara, Parabéns! Você me auxiliou uma tarefa que foi designada pelo nosso diretor e estou a mais de duas horas quebrando a cabeça. Por coincidência, achei o seu post no google, e consequentemente o seu post vai nos dar excelentes resultados!

    Uma abraço Amigo!

    Att,

    Allex

    1. Fala, grande Allex!
      Rapaz, fiquei bastante contente com o seu comentário! Espero que o artigo realmente seja útil para a tarefa que você precisa desempenhar!
      Um abração pra você também, Allex!
      Obrigado!

Deixe uma resposta

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

Preencha o campo abaixo * Time limit is exhausted. Please reload CAPTCHA.