Escolar Documentos
Profissional Documentos
Cultura Documentos
Os requisitos funcionais e não funcionais é o conjunto de funções principais ou não que qualquer
programa deve executar, da mesma forma que serve para informar ao cliente as funcionalidades
que o programa irá executar. Aqui essas funções são nomeadas no sistema de posicionamento
web (SEO)
Requisitos funcionais
Melhorar o posicionamento em relação às empresas concorrentes
Atualizar a página da Web
Gerar palavras-chave do site
Gerar URLs possíveis
Analisar conteúdo técnico do site (presença de tags e JavaScript ou flash)
Calcule a taxa de rejeição para determinar a popularidade do site
Calcular o número de palavras-chave por página
REQUISITOS FUNCIONAIS
Nome Base de dados
Cara Requisito
Prioridade Alto
Descrição Cada vez que uma nova conta é criada com os dados de
cada usuário deve ser armazenado no banco de dados (Estar
na unidade de armazenamento do PC ou servidor)
Entrada Dados inseridos pelo usuário
Processo Salvar dados do usuário
Saídas Registro de dados
Tabela 1: Requisitos funcionais - banco de dados
Nome Operacionalidade
Cara Requisito
Prioridade Alto
Descrição O gerenciador de conteúdo deve ser fácil de usar para
usuários que não têm conhecimento no desenvolvimento de
páginas web
Entrada Ideia do site
Processo Design e configuração do site pelo usuário
Saídas Site encerrado pelo usuário
Quadro 7: Requisitos não funcionais - operacionalidade
Requisitos funcionais
Requisitos funcionais são declarações dos serviços que o sistema irá fornecer, em como ele reagirá a
determinadas entradas. Quando falamos de entradas, não estamos necessariamente falando apenas
de entradas de usuários. Podem ser interações com outros sistemas, respostas automáticas,
processos predefinidos. Em alguns casos, os requisitos funcionais dos sistemas também declaram
explicitamente o que o sistema não deve fazer. É importante lembrar disso: um RF também pode ser
uma afirmação negativa. Desde que o resultado de seu comportamento seja uma resposta funcional
ao usuário ou a outro sistema, ele está correto. E, mais ainda, não só é correto, como é necessário
defini-lo. E isso nos leva ao próximo ponto.
São requisitos que não se referem diretamente às funções específicas fornecidas pelo sistema
(características do usuário), mas às propriedades do sistema: desempenho, segurança,
disponibilidade. Em palavras mais simples, eles não falam sobre "o que" o sistema faz, mas sobre
"como" ele faz isso. Alternativamente, Eles definem restrições do sistema, como a capacidade dos
dispositivos de entrada/saída e a representação dos dados usados na interface do sistema.
Os requisitos não funcionais originam-se da necessidade do usuário, devido a restrições
orçamentárias, políticas organizacionais, necessidade de interoperabilidade com outros sistemas de
software ou hardware, ou fatores externos como regulamentos de segurança, políticas de
privacidade, entre outros.
Existem diferentes tipos de requisitos e eles são classificados de acordo com suas implicações.
Requisitos do produto. Eles especificam o comportamento do produto, como requisitos de
desempenho na velocidade de execução do sistema e na quantidade de memória necessária,
requisitos de confiabilidade que definem a taxa de falha do sistema como aceitável, requisitos de
portabilidade e requisitos de usabilidade.
Requisitos organizacionais. São derivados das políticas e procedimentos existentes na
organização cliente e na organização do desenvolvedor: padrões nos processos a serem
utilizados; requisitos de implementação, tais como linguagens de programação ou o método de
concepção a utilizar; e requisitos de entrega que especificam quando o produto e sua
documentação serão entregues.
Necessidades externas. Eles são derivados de fatores externos ao sistema e seu processo de
desenvolvimento. Eles incluem requisitos de interoperabilidade que definem como o sistema
interage com os outros sistemas da organização; os requisitos legais que devem ser seguidos
para garantir que o sistema funcione dentro da lei; e exigências éticas. Estes últimos são
impostos ao sistema para garantir que ele será aceito pelo usuário.
Às vezes, na prática, a especificação quantitativa de tais requisitos é difícil. Nem sempre é possível
para os clientes traduzir seus objetivos em requisitos quantitativos. Para alguns deles, como
manutenção, nenhuma métrica pode ser usada; O custo da verificação objetiva de requisitos
quantitativos não funcionais pode ser muito alto. E é por isso que também é muito importante ter
muito cuidado ao documentá-los. Um analista pode usar o suporte da equipe de desenvolvimento e
da equipe de teste para definir critérios mensuráveis, a fim de saber quando um requisito pode ser
marcado com sucesso como "Concluído".
Assim como falamos de requisitos funcionais, a generalização nunca é boa, mas neste caso é ainda
mais importante. Por que? Porque o resultado de um desenvolvimento de requisitos não funcionais
pode não ser explícito para o usuário final.
Mau exemplo de RNF: O sistema deve ser seguro.
Quão seguro é "seguro"?
Em que situações?
Existe uma norma a cumprir?
Em quais seções?
O que deve acontecer se o sistema não puder funcionar tão rápido quanto necessário?
Nesses casos, a implementação de um requisito não funcional mal definido pode ser problemática,
cara e demorada. Até porque, na maioria das vezes, uma RNF não é algo que a equipe trabalhe
isoladamente em um período fixo de tempo. O RNF pode ser abordado durante todo o projeto (e até
mesmo antes do início ou após a entrega, na fase de manutenção). Novamente, o exemplo acima
pode ser dividido em vários requisitos que são mais fáceis de rastrear e implementar.
Bom exemplo de RNF: Todas as comunicações externas entre servidores de dados, o aplicativo e
o cliente do sistema devem ser criptografadas usando o algoritmo RSA.
Você sabe que tipo de comunicações precisam ser criptografadas.
Você sabe qual algoritmo usar e validar.
Os requisitos funcionais e não funcionais devem ser diferenciados no documento de requisitos, seja
um SRS, um portfólio de produtos ou qualquer artefato usado. Na prática, isso pode ser difícil. Se
um requisito não funcional é declarado separadamente dos requisitos funcionais, às vezes é difícil
ver a relação entre eles. Se os RNFs são declarados com requisitos funcionais, é difícil separar as
condições funcionais das não funcionais e identificar os requisitos que se relacionam com o sistema
como um todo. Deve ser encontrado um equilíbrio apropriado que dependa do tipo de sistema ou
aplicativo especificado. Por exemplo, se você estiver trabalhando com uma lista de pendências de
produtos, poderá ter histórias de usuário separadas para RNFs, mas adicionar um link para elas em
RFs que podem ser afetadas por elas. Esta é uma opção comum na maioria dos sistemas de
rastreamento de notas usados atualmente.
Em qualquer caso, tanto os FRs quanto os RNFs devem estar sempre documentados, mesmo que
seja difícil estabelecer a relação entre eles em artefatos. Isso ajudará a equipe a reduzir idas e vindas
de discussões, economizar tempo e, acima de tudo, problemas desnecessários com o cliente.
Os requisitos funcionais de um sistema são aqueles que descrevem qualquer atividade que ele
deve executar, em outras palavras, o comportamento ou função particular de um sistema ou
software quando determinadas condições são atendidas.
Normalmente, eles devem incluir funções executadas por telas específicas, descrições dos fluxos
de trabalho a serem executados pelo sistema e outros requisitos de negócios, conformidade,
segurança ou outros.
Neste artigo, apresentamos exemplos de requisitos funcionais, relacionados a funções de negócio,
dados que devem ser inseridos nas telas do sistema (interface gráfica), aqueles relacionados ao
controle de acesso ou emissão de relatórios exigidos por órgãos reguladores, entre outros.
Assim como outros tipos de requisitos de software, como os requisitos não funcionais, os
requisitos funcionais podem ser classificados de acordo com sua finalidade, como requisitos de
negócio, requisitos originados em aspectos regulatórios, segurança, entre outros.
Os requisitos funcionais devem ser escritos de tal forma que o leitor possa compreender o
funcionamento do sistema sem ter um conhecimento técnico particular do seu funcionamento.
O importante é definir uma forma padrão de expressar os requisitos e ser coerente com isso em
todos os documentos.
Da mesma forma, os requisitos funcionais não precisam necessariamente ser definidos na forma
de narrativas escritas, mas diagramas ou fluxos de processo também podem ser usados, que são
incluídos na especificação funcional do software ou sistema a ser desenvolvido.
Para identificar e documentar os requisitos funcionais do software, são seguidas duas etapas,
primeiramente são aplicadas técnicas de levantamento de requisitos, como observação,
entrevistas, observação, entre outras.
Apresentamos a terceira parte da série sobre requisitos não funcionais, com alguns exemplos que
podem servir de guia na sua definição.
Os requisitos não funcionais representam características gerais e restrições do aplicativo ou
sistema que está sendo desenvolvido.
Geralmente apresentam dificuldades em sua definição, uma vez que sua conformidade ou não
conformidade pode ser objeto de livre interpretação, por isso é aconselhável acompanhar sua
definição com critérios de aceitação que possam ser mensurados.
Se você está procurando mais informações sobre o conceito de requisitos não funcionais,
recomendamos a primeira parte desta série Requisitos não funcionais: Por serem importantes
Abaixo estão exemplos de requisitos não funcionais, classificados por essas diferentes áreas.
O sistema deve ser capaz de processar N transações por segundo. Isso será medido por
meio da ferramenta SoapUI aplicada ao Software de Teste de Web Services.
Todas as funcionalidades do sistema e transações comerciais devem responder ao usuário
em menos de 5 segundos.
O sistema deve ser capaz de operar corretamente com até 100.000 usuários com sessões
simultâneas.
Os dados modificados no banco de dados devem ser atualizados para todos os usuários
que o acessam em menos de 2 segundos.
Segurança industrial
Usabilidade
O sistema deve ter uma disponibilidade de 99,99% das vezes que um usuário tenta acessá-
lo.
O tempo para iniciar ou reiniciar o sistema não pode exceder 5 minutos.
A taxa de tempos de falha do sistema não pode exceder 0,5% do tempo total de operação.
A duração média das falhas não pode exceder 15 minutos.
A probabilidade de falha do sistema não pode ser superior a 0,05.
Os requisitos não funcionais são geralmente expressos de forma geral e sem referência a
qualquer módulo, transação ou característica do sistema, caso contrário se tornariam requisitos
funcionais.
Por exemplo:
O sistema deve garantir que os dados estejam protegidos contra acesso não autorizado
Os requisitos não funcionais podem, por sua vez, levar a requisitos funcionais, tomando como
exemplo o anterior:
No entanto, nem todos os requisitos não funcionais podem ser derivados em requisitos funcionais,
por isso é muito importante definir critérios de aceitação.
Aqui está uma lista não limitadora de 10 tipos de testes não funcionais que você pode incluir em
seu plano de teste de software.
1. - Teste de carga
Para executar esses testes, é necessário usar ferramentas de teste que simulam a carga, como
SoapUI.
O teste de carga ajuda a identificar a capacidade operacional máxima de um aplicativo, bem como
a identificar gargalos e causas de potencial degradação do desempenho.
Quando a carga de teste se eleva acima dos parâmetros esperados, esses testes são conhecidos
como testes de estresse.
2. - Testes de estresse
São testes de carga que são realizados com demandas superiores à capacidade operacional,
muitas vezes até atingir o ponto de ruptura.
Quanto ao teste de carga, ferramentas que simulam a demanda são necessárias, o SoapUI é uma
dessas ferramentas que permite simular solicitações para servidores de aplicativos Web.
Com o teste de estresse é possível identificar pontos de interrupção, limites para o uso seguro da
aplicação, confirmar especificações de projeto, identificar as formas de falha do sistema, entre
outros aspectos.
3. - Testes de volume
Por exemplo, se você quiser ver o comportamento de um aplicativo com um tamanho de banco de
dados específico, expanda o tamanho do banco de dados para esses parâmetros e, em seguida,
execute consultas, processos ou funcionalidade do aplicativo, medindo seu desempenho.
O assunto de teste não está limitado a bancos de dados, ele também pode ser usado, por
exemplo, para medir o desempenho de uma interface quando o arquivo de interface (um arquivo
de texto, xml, etc.) excede um determinado tamanho.
4. - Testes de configuração
5. - Testes de usabilidade
Facilidade de aprendizado: Como é fácil para os usuários executar funções básicas na primeira
vez que usam o aplicativo.
Eficiência: A rapidez com que os usuários experientes podem executar suas tarefas.
Memorização: Como é fácil memorizar o uso do aplicativo, ou seja, quando um usuário
passa muito tempo sem usar o aplicativo, ele pode se lembrar o suficiente para usá-lo
efetivamente da próxima vez, ou ele tem que começar a aprender novamente.
Erros: Quantos erros atribuíveis ao design que o usuário faz, quão graves eles são e quão
fácil é se recuperar deles.
Satisfação: O quanto o usuário gosta (ou não gosta) de usar o sistema.
6. - Testes de segurança
7. - Testes de estresse
Essas falhas no desenvolvimento de software não podem ser identificadas sob testes funcionais
normais, por isso é desejável envolver testes de estresse entre os tipos de teste de software.
8. - Testes de escalabilidade
Para que os resultados sejam confiáveis, os ambientes de teste e sua configuração devem ser
mantidos constantes.
9. - Testes de recuperação
Os testes de recuperação são realizados para verificar a rapidez e o quão bem um aplicativo se
recupera após ocorrer uma falha de hardware ou software.
Portanto, para executar testes de recuperação requer forçar a falha e, em seguida, verificar se a
recuperação ocorre corretamente.
Basicamente, eles consistem em avaliar o quão fácil é manter um sistema ou aplicativo. Isso
significa como é fácil analisar, alterar e testar essas alterações.
Para realizar este teste, a forma como a aplicação é implementada deve ser avaliada, seguindo
boas práticas de engenharia de software. Ou seja, que os padrões recomendados de engenharia
de software estão sendo seguidos e que anti-padrões não estão sendo introduzidos
inadvertidamente, ou seja, que erros comuns de programação não estão sendo cometidos.
Somerville divide os requisitos não funcionais em três grandes tipos: requisitos do produto,
requisitos organizacionais e requisitos externos.
Alguns desses requisitos podem ser fáceis de quantificar, como desempenho e confiabilidade,
mas outros são mais difíceis, como usabilidade e adaptabilidade.
Uma ferramenta útil para verificar a eficiência de um sistema é o SoapUI, que permite testes de
carga ou estresse em webservices. Aqui compartilhamos artigos sobre o assunto:
Eles são derivados das políticas e procedimentos da organização, como padrões de processo ou
requisitos de implementação.
Essa administração também inclui procedimentos para gerenciar ambientes de teste de ponta
a ponta.
Requisitos regulamentares: Leis e regulamentos que estabelecem o que o sistema deve fazer e
como deve cumpri-los. O foco de um sistema ou nova funcionalidade pode ser exclusivamente
cumprir um regulamento.
Requisitos éticos: Requisitos que garantem que o sistema será aceitável para o usuário, o
público em geral e se adapta aos costumes da sociedade em que opera ou à qual presta serviços.
Requisitos legislativos: Características que o sistema deve atender para cumprir a lei, por
exemplo, na área contábil (normas contábeis e normas financeiras), requisitos de segurança
industrial (para sistemas críticos), entre outros aspectos.
A especificação incompleta ou imprecisa de requisitos não funcionais pode fazer com que seu
projeto de engenharia de software falhe.
Na verdade, não gerenciar requisitos não funcionais é um dos erros clássicos na gestão de
desenvolvimento de software definido por Steve McConnell.
Classificar corretamente cada requisito não funcional identificado é muito importante para garantir
esse processo.
https://www.youtube.com/user/codigofacilito
https://www.youtube.com/channel/UC4CEqh4d3-6RcyyJxhFCMGg
https://marvelapp.com/.