ENGENHARIA DE REQUISITOS
Prof. Ian Santos
O que é Engenharia de Requisitos?
Engenharia de Requisitos estabelece o processo de definição de requisitos.
Este processo deve lidar com diferentes pontos de vista, e usar uma combinação de
métodos, ferramentas e pessoal.
O produto desse processo é um modelo, do qual um documento de requisitos é
produzido.
Este processo acontece num contexto previamente definido a que chamamos de
Universo de Informação. (Júlio Leite, 1994)
1. Descobrir 2. Analisar
3. Documentar 4. Gerenciar
O que é Engenharia de Requisitos?
A Engenharia de Requisitos, de acordo com Pressman e Maxim (2021, p. 102): “fornece
a todas as partes um entendimento escrito do problema. Os artefatos podem incluir:
cenários de uso, listas de funções e características e modelos de análise”.
A Engenharia de Requisitos constrói uma ponte entre o projeto e a elaboração do
software, porém, como construímos essa ponte?
É possível que essa construção se inicie quando conversamos com os envolvidos no
projeto: gerentes, clientes e usuários, pois são definidas, junto com eles, as
necessidades do negócio, a descrição dos cenários de usuários, a definição das
funções bem como os recursos e restrições do projeto.
Concluímos então que…
A Engenharia de Requisitos é o processo de identificar todos os
envolvidos (stakeholders), descobrir seus objetivos e necessidades, e
documentá-los de forma adequada para análise, comunicação e
posterior implementação.
O que é são Requisitos?
Os requisitos de um sistema são as descrições do que o sistema deve fazer, os serviços
que oferece e as restrições a seu funcionamento. Esses requisitos refletem as
necessidades dos clientes para um sistema que serve a uma finalidade determinada,
como controlar um dispositivo, colocar um pedido ou encontrar informações. O
processo de descobrir, analisar, documentar e verificar esses serviços e restrições é
chamado engenharia de requisitos. (Sommerville).
O que é são Requisitos?
REQUISITO É:
- Uma condição ou capacidade que deve ser satisfeita ou possuída por um sistema ou
componente do sistema para satisfazer um contrato, um padrão ou uma especificação
(IEEE)
ESPECIFICAÇÃO É :
- Uma descrição rigorosa e minuciosa das características que um material, uma obra ou
serviço deverão apresentar
O que é são Requisitos?
Para Pfleeger (2004), um requisito é uma característica do sistema ou a descrição de
algo que o sistema é capaz de realizar, para atingir os seus objetivos;
- Os requisitos são definidos durante a fase de concepção para dar uma visão geral
do que o sistema é (ou será);
- Os requisitos são descrições das funções e restrições que são geradas durante o
restrições que são geradas durante o processo de engenharia de requisitos processo
de engenharia de requisitos
Vamos re etir…
Requisito para comprar uma casa?
Especificações de uma casa?
fl
Quando é um Software?
Porque é difícil ententer requisitos?
Visão do usuário
"O sistema deve gerar relatórios mensais que mostram o custo dos
medicamentos prescritos por clínica, durante cada mês. "
Qual dia do mês deve gerar o relatório?
O que deve conter no relatório? Só os valores dos medicamentos?
Medicamentos prescritos por quem?
Tem que ter o custo total dos medicamentos?
Porque é difícil ententer requisitos?
Visão do usuário
O sistema deve gerar relatórios mensais que mostram o custo dos
medicamentos prescritos por clínica, durante cada mês.
Visão do analista
- No último dia de cada mês, deve ser gerado um resumo dos
medicamentos prescritos por clínica.
- Um relatório por clínica deve ser gerado, listando o nome dos
medicamentos, o total de prescrições e o custo total.
Tipos de Requisitos:
• Requisitos Funcionais
• Requisitos Não Funcionais
Requisitos funcionais
Requisitos funcionais: São declarações de serviços que o sistema deve fornecer, de
como o sistema deve reagir a entradas específicas e de como o sistema deve se
comportar em determinadas situações. Em alguns casos, os requisitos funcionais
também podem explicitar o que o sistema não deve fazer.
"Os requisitos funcionais de um sistema descrevem o que ele deve fazer. Eles dependem
do tipo de software a ser desenvolvido, de quem são seus possíveis usuários e da
abordagem geral adotada pela organização ao escrever os requisitos. Quando expressos
como requisitos de usuário, os requisitos funcionais são normalmente descritos de forma
abstrata, para serem compreendidos pelos usuários do sistema. No entanto, requisitos de
sistema funcionais mais especí cos descrevem em detalhes as funções do sistema, suas
entradas e saídas, exceções etc." (Sommerville)
fi
Requisitos Funcionais (RFs)
Requisitos diretamente ligados a...
• Funções que o sistema deve fornecer.
• Como o sistema deve reagir a entradas específicas.
• Como o sistema deve se comportar em determinadas situações.
• Podem também declarar o que o sistema não deve fazer.
Exemplo de Requisitos Funcionais (RFs)
[RF001] O sistema deve cadastrar médicos profissionais.
[RF002] O sistema deve emitir um relatório de clientes.
[RF003] O usuário deve conseguir fazer buscas em todo o acervo de
materiais bibliográficos.
[RF004] O usuário deve conseguir consultar os seus dados no sistema.
Como criar Requisitos Funcionais (RFs)?
Atributos Descrição dos atributos Atributos Descrição dos atributos
O Requisito Funcional não pode ser ambíguo, ou seja,
O Requisito Funcional deve propor, apenas, uma única coisa, ou não pode propor algo que não é claro no que faz.
seja, não deve atender a mais de uma necessidade. Exemplo: o Requisito Funcional “imprimir relatório” não
Unidade Exemplo: o Requisito Funcional “cadastrar cliente” não é requisito Não ambiguidade diz muita coisa, pois imprimirá relatório do que e para
unitário, pois, podemos ter vários tipos de clientes (pessoa física e quê? Agora, o Requisito Funcional “imprimir relatório de
pessoa jurídica). saldo da conta poupança do cliente pessoa física” já está
completo e claro.
O Requisito Funcional deve ser autocontido, ou seja, deve ter um
início, um meio e um fim. Exemplo: o Requisito Funcional “pagar
O Requisito Funcional deve ser testável, isto é, validado,
Completude fatura” não está completo, faltam partes. Agora, o Requisito Veri cável
para saber se ele atende à necessidade do cliente.
Funcional “pagar fatura com cartão de débito para cliente pessoa
jurídica” está completo, com início, meio e fim.
O Requisito Funcional não deve contradizer outro Requisito
O Requisito Funcional é passível de ser rastreável no
Consistência Funcional, isto é, se propõe a fazer a mesma coisa, mas cada um Rastreável
sistema, quando estiver funcionando e executável.
fazendo de forma diferente.
O requisito deve fazer uso do tempo verbal no próprio
nome, ou seja, ele refere-se a algo que será feito, uma
O Requisito Funcional deve assumir, apenas, uma responsabilidade
Atomicidade Tempo verbal ação a ser realizada pelo sistema.
e, também, deve ser algo indivisível, não pode ser decomposto.
Exemplo: realizar, comprar, emitir, consultar, validar,
acessar etc.
Fonte: Adaptado de Sommerville, 2011
fi
Qualidade para escrever um requisito
[RF005] O sistema deve fornecer telas apropriadas para o usuário ler
documentos disponíveis no repositório de documentos.
Requisitos ambíguos podem ser interpretados de diferentes maneiras pelos
desenvolvedores e usuários.
Considere o termo "telas apropriadas".
• Intenção do Usuário: telas especiais para cada diferente tipo de documento.
• Interpretação do Desenvolvedor: fornecer uma tela texto que mostra o
conteúdo do documento.
Exercício: Identificação de Requisitos Funcionais e Não Funcionais
Descrição do Sistema:
Imagine que você está projetando um sistema de reserva de passagens de avião
para uma companhia aérea. Os clientes podem usar o sistema para procurar,
selecionar e reservar passagens de avião para destinos específicos.
Liste 05 RFs
Dica: O << Ator >> deve << verbo >> …<< objetivo >>….
Requisitos não funcionais
Requisitos não funcionais: São restrições aos serviços ou funções oferecidos pelo
sistema. Incluem restrições de timing, restrições no processo de desenvolvimento e
restrições impostas pelas normas. Ao contrário das características individuais ou
serviços do sistema, os requisitos não funcionais, muitas vezes, aplicam-se ao sistema
como um todo.
"São requisitos que não estão diretamente relacionados com os serviços especí cos
oferecidos pelo sistema a seus usuários. Eles podem estar relacionados às propriedades
emergentes do sistema, como con abilidade, tempo de resposta e ocupação de área.
Uma alternativa a esse cenário seria os requisitos de nirem as restrições sobre a
implementação do sistema, como as capacidades dos dispositivos de E/S ou as
representações de dados usadas nas interfaces com outros sistemas." (Sommerville)
fi
fi
fi
Requisitos não funcionais
Requisitos não funcionais são os requisitos relacionados ao uso da aplicação em termos de
desempenho, usabilidade, con abilidade, segurança, disponibilidade, manutenibilidade e tecnologias
envolvidas. Não é preciso o cliente dizer sobre eles, pois eles são características mínimas de um
software de qualidade, cando a cargo do desenvolvedor optar por atender esses requisitos ou não.
• Demonstram qualidade acerca dos serviços ou funções disponibilizadas pelo sistema. Ex.: tempo, o
processo de desenvolvimento, padrões, etc.
• Surgem conforme a necessidade dos usuários, em razão de orçamento e outros fatores.
• Podem estar relacionados à con abilidade, tempo de resposta e espaço nas mídias de
armazenamento disponíveis.
• Caso ocorra falha do não atendimento a um requisito não funcional, poderá tornar todo o sistema
ine caz. Ex.: requisito con abilidade em um sistema de controle de voos.
fi
fi
fi
fi
fi
Requisitos não funcionais
São requisitos que expressam:
• Restrições que o software deve atender
• Qualidades especí cas que o software deve ter
fi
Exemplo de Requisitos Não Funcionais (RNFs)
[RNF001] O sistema deve imprimir o relatório em até cinco
segundos.
[RNF002] Todos os relatórios devem seguir o formato XML.
[RNF003] O sistema deve ser implementado em Java.
[RNF004] O sistema deve ser protegido para o acesso de usuários.
Fonte: Sommerville, 2011, p. 61
• Requisitos do produto: especificam ou restringem o comportamento do software.
Exemplo: requisitos de desempenho (rapidez com que o sistema deve executar e quanta
memória ele requer); requisitos de confiabilidade (estabelecem a taxa aceitável de falhas);
requisitos de proteção e os requisitos de usabilidade.
• Requisitos organizacionais: são requisitos gerais de sistemas derivados das políticas e
procedimentos da organização do cliente e do desenvolvedor. Exemplos: requisitos do
processo operacional (definem como o sistema será usado); requisitos do processo de
desenvolvimento (especificam a linguagem de programação, o ambiente de desenvolvimento
ou as normas de processo a serem usadas); requisitos ambientais (especificam o ambiente
operacional do sistema).
• Requisitos externos: são todos os requisitos derivados de fatores externos ao sistema e ao seu
processo de desenvolvimento. Exemplos: requisitos reguladores (definem o que deve ser feito
para o sistema ser aprovado ao uso por um regulador, tal como um banco central); requisitos
legais (devem ser seguidos para garantir que o sistema opere dentro da lei); requisitos éticos
(asseguram que o sistema seja aceitável para os seus usuários e o público em geral).
Classi cação dos Requisitos Não-Funcionais
• Requisitos de produtos : Requisitos que especificam o comportamento do produto.
Ex. portabilidade; tempo na execução; confiabilidade, mobilidade, etc.
• Requisitos da organização: Requisitos decorrentes de políticas e procedimentos corporativos.
Ex. padrões, infra-estrutura, etc.
• Requisitos externos: Requisitos decorrentes de fatores externos ao sistema e ao processo de desenvolvimento.
Ex. requisitos de interoperabilidade, legislação, localização geográfica etc.
• Requisitos de facilidade de uso. Ex.: usuários deverão operar o sistema após um determinado tempo de treinamento.
• Requisitos de e ciência. Ex.: o sistema deverá processar n requisições por um determinado tempo.
• Requisitos de con abilidade. Ex.: o sistema deverá ter alta disponibilidade, [Link], 99% do tempo.
• Requisitos de portabilidade. Ex.: o sistema deverá rodar em qualquer plataforma.
• Requisitos de implementação.: Ex.: o sistema deverá ser desenvolvido na linguagem Java.
• Requisitos de padrões.: Ex. uso de programação orientada a objeto sob a plataforma A.
• Requisitos de interoperabilidade.: Ex. o sistema deverá se comunicar com o SQL Server.
• Requisitos éticos. Ex.: o sistema não apresentará aos usuários quaisquer dados de cunho privativo.
• Requisitos legais. Ex.: o sistema deverá atender às normas legais, tais como padrões, leis, etc.
• Requisitos de Integração. Ex.: o sistema integra com outra aplicação.
fi
fi
fi
Geralmente, os RNFs são mensuráveis, ou seja, para cada Requisito Não Funcional, devemos
associar uma medida ou referência.
Métricas para especificar requisitos não funcionais.
Fonte: Sommerville, 2011, p. 63
Exercício: Identificação de Requisitos Funcionais e Não Funcionais
Descrição do Sistema:
Imagine que você está projetando um sistema de reserva de passagens de avião
para uma companhia aérea. Os clientes podem usar o sistema para procurar,
selecionar e reservar passagens de avião para destinos específicos.
Liste 05 RNFs
Dica: O << Ator >> deve << verbo >> …<< objetivo >>….
Para ver depois…
[Link]
[Link]
[Link]
[Link]
[Link]
Referências
• PFLEEGER, S.L. Engenharia de Software – Teoria e Prática. 2a. Ed.
• PRESSMAN, R. S. Engenharia de software. [Link]. McGraw-Hill, 2006.
• SOMMERVILLE, I. Engenharia de software. [Link]. Pearson Prentice Hall, 2011.
• AIED ONLINE. Engenharia de Software Sommerville. Cap.4. Disponível em: https://
[Link]/playlist?list=PLzoythjsH3QMqIa44ZwE8li7Cu0z4lC8E . Acesso em: 13 out.
2023.
• DEVMEDIA. Técnicas para levantamento de Requisitos. Disponível em: https://
[Link]/tecnicas-para-levantamento-de-requisitos/9151 . Acesso em: 13 out. 2023.
• KAMYS ACADEMY. Modelagem de Dados: Análise de Requisitos - Aula 5. Disponível em: https://
[Link]/watch?v=1BPsBVBJ0jo . Acesso em: 13 out. 2023.