|
Usuários |
|
132 Usuários Online
|
|
[Artigos]
A importância dos requisitos não-funcionais |
Publicado por rboaro : Quinta, Janeiro 31, 2013 - 04:54 GMT-3 (355 leituras)
comentar Enviar para um amigo Versão para impressão
|
Como 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. 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 usar, 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, 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. É por esse motivo que no enunciando do artigo mencionei sobre o domínio da regra de negócio e habilidade de programação. 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!
Link Original do Artigo:
http://www.subrotina.com.br/a-importancia-dos-requisitos-nao-funcionais/#more-1647
|
|
Comentários | |
| | Comentários pertencem aos seus respectivos autores. Não somos responsáveis pelo seus conteúdos. |
|
|
Edição 112 |
|
|
50 Programas Fontes |
|
|
Produtos |
|
|