Você está na página 1de 40

Processo de Engenharia de Requisitos

Clayton Escouper das Chagas

Material adaptado das notas de aula dos professores


Ronaldo Goldschmidt, Eduardo Bezerra e Ricardo Choren
Requisitos

• Definição segundo o IEEE Standard Glossary of Software


Engineering Terminology [IEEE97]:
– “Condição ou capacidade necessária para um usuário resolver
um problema ou alcançar um objetivo (...)”.

• São derivados a partir de necessidades que usuários têm


em resolver algum problema.

• Situam-se, então, no domínio do problema (aplicação).

• Podem ser:
– Funcionais – Indicam “o que” o sistema deve fazer
– Não Funcionais – Indicam “como” o sistema deve fazer

16/09/2020
Processo de engenharia de requisitos (ER)

• Os processos usados pela engenharia de requisitos variam


dependendo do domínio da aplicação, das pessoas
envolvidas e da organização que está desenvolvendo os
requisitos

• Entretanto, existe um conjunto genérico de atividades


comuns a todos os processos
– Estudo de viabilidade
– Levantamento e análise de requisitos
– Especificação de requisitos
– Validação de requisitos
– Gerência de requisitos

16/09/2020
Modelo do processo de ER

Levantamento e Verificação e
Estudo de Especificação
Análise de Validação dos
Viabilidade dos Requisitos
Requisitos Requisitos

Gerência dos Requisitos

16/09/2020
A ER é um processo iterativo/interativo

Necessidades Informais
Especificação da Solução

Rejeitada

Nova Especificação

Rejeitada

Clientes Nova Especificação


Desenvolvedores
Aprovada

16/09/2020
Estudo de viabilidade

• Um estudo de viabilidade deve decidir se vale a pena


desenvolver o sistema

• Um estudo focado que verifica


– Se o sistema contribui para os objetivos organizacionais
– Se o sistema pode ser desenvolvido com a tecnologia e o
orçamento disponíveis
– Se o sistema pode ser integrado com outros sistemas em
funcionamento

16/09/2020
Estudo de viabilidade

• Fazendo um estudo de viabilidade


– Baseado na coleta e avaliação de informação e no
levantamento e análise de riscos do projeto
– Procurar respostas – com as pessoas da organização – para
perguntas do tipo
• Quais são os problemas existentes?
• De que forma o/um sistema ajudaria a resolver este problema?
• Que facilidades devem ser oferecidas pelo sistema proposto?
• Qual é a tecnologia e as competências necessárias para
desenvolver o sistema?
• E se o sistema não for desenvolvido?

16/09/2020
Levantamento e análise de requisitos

• Entender as atividades, os conceitos, os problemas, a


cultura e a linguagem dos usuários para construir sistemas
que atendam às suas necessidades
– Envolve pessoal técnico trabalhando com clientes para obter
informações sobre o domínio do problema, os serviços que o
sistema deve oferecer e as restrições operacionais do sistema

16/09/2020
Levantamento e análise de requisitos

• Processo de levantamento e análise de requisitos


– Descoberta de requisitos
• Interação com os interessados para descobrir seus requisitos.
Requisitos de domínio também devem ser descobertos

– Classificação e organização dos requisitos


• Agrupar requisitos relacionados e organizá-los

– Priorização e negociação
• Priorizar requisitos e resolver conflitos existentes

– Documentação dos requisitos


• Os requisitos devem ser documentados
• Produz-se um esboço inicial
• Deve ser complementada (enriquecida com mais detalhes)

16/09/2020
Levantamento e análise de requisitos

• Técnicas para descoberta de requisitos


– Análise de Documentos
– Entrevistas
– Brainstorming / JAD
– Observação (ou etnografia)
– Outros... Baseado no seu processo

16/09/2020
Levantamento e análise de requisitos

• Técnicas para descoberta de requisitos :: Análise de


Documentos
– Técnica na qual explora-se o conhecimento escrito encontrado
em manuais, regulamentos, formulários, relatórios, interfaces
de outros sistemas, ...
– Permite um contato com o vocabulário utilizado no domínio do
problema e auxilia na construção do glossário de termos
especializados.
– Possibilita ao desenvolvedor alcançar um nível mínimo de
conhecimento sobre o assunto em pauta.

16/09/2020
Levantamento e análise de requisitos

• Técnicas para descoberta de requisitos :: Entrevista


– Envolve consultar os clientes para entender os serviços e as
restrições do sistema a ser desenvolvido
• Entrevistadores têm que estar abertos e desejosos de ouvir os
interessados
• Não devem ter idéias pré-concebidas sobre os requisitos
• Entrevistadores devem procurar fazer com que os interessados
interajam e, assim, discutam os requisitos
• Não devem apenas perguntar "o que você quer do sistema"

16/09/2020
Levantamento e análise de requisitos

• Técnicas para descoberta de requisitos :: Entrevista


– Tipos
• Entrevistas Tutoriais – o entrevistado fica no comando,
praticamente lecionando sobre um determinado assunto
• Entrevistas Informais (não estruturadas) – o entrevistador age
espontaneamente, perguntando ao entrevistado sem obedecer a
nenhuma organização. Esse tipo de entrevista oferece flexibilidade
ao entrevistador
• Entrevistas Estruturadas – são preparadas pelo entrevistador, que
define previamente o andamento do procedimento de aquisição de
conhecimento
• Entrevistas Semiestruturadas – misturam as características dos
dois tipos anteriores

16/09/2020
Levantamento e análise de requisitos

• Técnicas para descoberta de requisitos :: Entrevista


– Erros (de postura) comuns
• Indução
– Você precisa de uma tela maior, não é isso?

• Perguntas de controle / interrupção


– O que você está falando é interessante, mas podemos voltar às minhas
perguntas?

• Perguntas muito longas ou muito complexas


– Eu tenho uma questão que se divide em três partes, a primeira...

16/09/2020
Levantamento e análise de requisitos

• Técnicas para descoberta de requisitos :: Brainstorming


– Muito útil quando existem diversos interessados no projeto
– É dividido em duas etapas
• Na primeira, anota-se todas as ideias que surgirem, sem que sejam
questionadas
– Neste momento o que importa mais é a quantidade, não deixe de
anotar nada

• Na segunda etapa, debate-se com o grupo para ir refinando as


ideias apresentadas anteriormente

16/09/2020
Levantamento e análise de requisitos

• Técnicas para descoberta de requisitos :: Observação


– As pessoas não têm que ou têm dificuldades de explicar seu
trabalho
– Alguns fatores organizacionais só são levantados por
observação
– Requisitos devem ser derivados a partir da forma como as
pessoas realmente trabalham em vez da forma como o
processo organizacional sugere que estas trabalhem
– Alguns requisitos são levantados a partir da cooperação entre
as atividades das pessoas

16/09/2020
Levantamento e análise de requisitos

• Técnicas para descoberta de requisitos :: Observação


– Através de uma observação direta das atividades realizadas
durante um período de trabalho de um funcionário é possível
encontrar requisitos que não seriam levantados usando
técnicas convencionais
• Pode ser acompanhada de registros áudio/vídeo
• Nesta técnica assume-se que o representante do cliente observado
desempenha as suas funções "corretamente", pelo que convém ter
algum cuidado na escolha do mesmo

16/09/2020
Levantamento e análise de requisitos

• Depois de se descobrir os requisitos, é preciso fazer uma


análise e uma negociação dos requisitos
– Analisar o que foi levantado
• Registrar os problemas / necessidades
• Modelar o entendimento sobre o contexto (dados, processos,
envolvidos, locais, eventos/ciclos temporais)
• Entender a importância relativa das necessidades
• Identificar conflitos, inconsistências, omissões
• Propor e negociar alternativas de solução

– A análise distribui os requisitos em categorias, explora as


relações entre eles, e classifica a importância de cada um dos
requisitos (priorização)

16/09/2020
Especificação de requisitos

• Documentar os requisitos levantados, analisados e


priorizados

• Usar documento padronizado pelo processo


– Serve de comunicação entre a equipe de desenvolvimento e os
clientes
– Modelos de Casos de Uso, DFDs, etc.

16/09/2020
Especificação de requisitos

• Especificações suplementares
– Regras de negócio
– Arquitetura
– Padrão de interfaces
• Usuário, hardware, software e comunicação

16/09/2020
Especificação de requisitos

• “Sugestão” de Modelo para Documentação


– Missão do Produto
– Lista de requisitos funcionais
• Nome e descrição do requisitos
• Identificação do ator
• Prioridade
• Estabilidade

– Regras de negócio
– Lista de requisitos não funcionais
– Restrições de escopo do Produto

16/09/2020
Especificação de requisitos

• Missão do Produto

Descrever os objetivos do produto que deverá ser desenvolvido no projeto. De


preferência, usar um único parágrafo que sintetize a missão a ser desempenhada
pelo produto, ou seja, que valor o produto acrescenta para o cliente e os
usuários.

A declaração de missão deve cumprir os seguintes objetivos:


• delimitar as responsabilidades do produto;

• delimitar o escopo do produto;

• sintetizar o comprometimento entre cliente e fornecedor.

Exemplo:

O produto Merci 1.0 visa oferecer apoio informatizado ao controle de vendas,


de estoque, de compra e de fornecedores da mercearia Pereira & Pereira.
16/09/2020
Especificação de requisitos

• Lista de requisitos funcionais :: nome e descrição

Os requisitos funcionais definem as ações fundamentais através das quais o


produto aceita e processa as entradas especificadas, gerando as respectivas
saídas.

Exemplos:

Número Requisito Descrição


1 Cadastrar produto Realizar a inclusão dos dados cadastrais (código, nome, preço
de compra, preço de venda) de um novo produto a ser vendido
na mercearia.
2 Registrar pedido de compra Registrar o pedido de compra do cliente informando, para cada
produto, a sua quantidade.
3 Cancelar pedido de compra Cancelar um pedido de compra que ainda não foi entregue,
informando o motivo do cancelamento.
4 Abrir caixa Dar início às operações do caixa.
5 Fechar caixa Encerrar as operações do caixa.

16/09/2020
Especificação de requisitos

• Lista de requisitos funcionais :: identificação dos atores

Na terminologia da UML, qualquer elemento externo que interage com o


sistema é denominado ator. Note que um ator corresponde a um papel
representado em relação ao sistema.

Exemplos:

Número Requisito Descrição Ator


1 Cadastrar produto Gerente de Compras realiza a inclusão dos dados Gerente de Compras
cadastrais de um produto (código, nome, preço de
compra, preço de venda).
2 Registrar pedido de compra O Vendedor registra o pedido de compra do Vendedor
cliente informando, para cada produto, a sua
quantidade
3 Cancelar pedido de compra O Fiscal cancela um pedido de compra que ainda Fiscal
não foi entregue e informa o motivo do
cancelamento
4 Abrir caixa O Caixa dá início às operações do caixa. Caixa
5 Fechar caixa O Caixa encerra as operações do caixa. Caixa

16/09/2020
Especificação de requisitos

• Lista de requisitos funcionais :: identificação dos atores

Na terminologia da UML, qualquer elemento externo que interage com o


sistema é denominado ator. Note que um ator corresponde a um papel
representado em relação ao sistema.

Critérios para identificação dos atores:


• quem está interessado em certo requisito;
• quem se beneficiará diretamente do produto;
• quem usará informação do produto;
• quem fornecerá informação ao produto;
• quem dará suporte e manutenção ao produto;
• quais os recursos externos usados pelo produto;
• quais os papéis desempenhados por cada usuário;
• quais os grupos de usuários que desempenham o mesmo papel;
• quais os sistemas legados com os quais o produto deve interagir;

Exemplos: Caixa, Atendente, Sistema Financeiro, Setor de Cadastro, etc.

16/09/2020
Especificação de requisitos

• Lista de requisitos funcionais :: prioridade

Representa o valor atribuído ao requisito, pelo cliente, em função do(s)


benefício(s) que ele lhe proporcionará.

A prioridade é classificada em:

• Essencial – O requisito é fundamental. Sua falta acarretará o não


atendimento das necessidades do cliente.

• Desejável – A existência do requisito contribuirá para o atendimento das


necessidades do cliente, mas a sua falta é aceitável.

• Opcional – A existência do requisito está condicionada a sobra de recursos,


prazo, etc. Sua falta não prejudica o atendimento das necessidades do
cliente.

16/09/2020
Especificação de requisitos

• Lista de requisitos funcionais :: estabilidade

Representa a probabilidade do requisito ser alterado no decorrer do projeto.


Essa probabilidade é estabelecida com base na experiência de projetos
correlatos.

A estabilidade é classificada em:

• Alta – O requisito tem pouca chance de mudar no decorrer do projeto.

• Média – A probabilidade do requisito mudar no decorrer do projeto estaria


em torno de 50% de chance.

• Baixa – O requisito tem grande chance de mudar no decorrer do projeto.

16/09/2020
Especificação de requisitos

• Lista de requisitos funcionais :: prioridade e estabilidade

Exemplo:

Número Requisito Funcional Ator Prioridade Estabilidade

1 Cadastrar produto Gerente de Compras Essencial Alta

Essencial
2 Registrar pedido de compra Vendedor Média

3 Cancelar pedido de compra Fiscal Essencial Média

4 Abrir caixa Caixa Essencial Alta

5 Fechar caixa Caixa Essencial Alta

16/09/2020
Especificação de requisitos

• Regras de Negócio

Algumas definições, segundo o Business Rules Group (BRG):

Sistemas de informação Negócio


Regra de negócio é “uma sentença Regras de negócio são “diretivas que
que define ou restringe algum aspecto visam influenciar ou guiar o
do negócio (...) sua intenção é manter comportamento do negócio. Tais
a estrutura do negócio, ou controlar ou diretivas existem como suporte a
influenciar algum aspecto do políticas de negócio, formuladas em
negócio”. Nesse contexto, as regras de resposta a riscos, ameaças ou
negócio dizem respeito aos “dados oportunidades”.
que podem ser cadastrados em um
sistema de informação”.

16/09/2020
Especificação de requisitos

• Regras de Negócio

Exemplos:

RN01 Condição para realização do pedido de compra


Descrição Somente serão aceitos pedidos de compra para
fornecedores que tenham menos do que 3
ocorrências de entrega fora do prazo.

RN02 Condição para cancelamento de um pedido de


compra
Descrição Um pedido de compra só pode ser cancelado se
ele não tiver sido entregue.

16/09/2020
Especificação de requisitos

• Lista de requisitos não funcionais :: Uma taxonomia


Requisitos
Não
Funcionais

Requisitos Requisitos Requisitos


do produto organizacionais externos

Requisitos Requisitos Requisitos Requisitos


Requisitos de
de facilidade de de interoperabilidade éticos
de uso confiabilidade portabilidade

Requisitos Requisitos
de eficiência Requisitos Requisitos legais
de entrega de padrões

Requisitos Requisitos Requisitos Requisitos Requisitos


de de espaço de de de segurança
desempenho implementação privacidade
16/09/2020
Especificação de requisitos

• Lista de requisitos não funcionais

Exemplos:

RNF01 O tempo de totalização da Operação de Venda (isto é, o


intervalo de tempo entre qualquer alteração nos itens de venda
e a exibição do total a pagar) não pode ser maior do que 2
segundos.
RNF02 O tempo para realização de qualquer operação de pesquisa de
usuários, produtos, fornecedores ou pedidos de compra não
pode ser maior do que 10 segundos.
RNF03 O leiaute do relatório Nota Fiscal deve ser previamente
aprovado pela Secretaria de Receita.
RNF04 O Merci deverá ser desenhado de forma que possa ser
expandido para mais de um terminal.

16/09/2020
Especificação de requisitos

• Restrições de Escopo do Produto

Deve-se determinar o que o produto não fará. Isso evita falsas expectativas por
parte dos clientes e usuários e podem ressaltar funções e atributos que serão
implementados por outros componentes de um sistema maior, ou em versões
futuras desse produto.

Exemplos:
• O sistema não fará vendas parceladas e só receberá pagamentos em
dinheiro ou cheque.

• O backup e a recuperação das bases de dados do sistema ficam a cargo da


administração, não sendo providos pelo sistema.

• O sistema não terá help on-line.

16/09/2020
Validação de requisitos

• Se preocupa em demonstrar que os requisitos definem o


sistema que o cliente realmente quer
– Estamos construindo o produto correto?
– Estamos construindo o produto da forma correta?

• A especificação é examinada de forma a tentar assegurar


que os requisitos foram definidos sem ambiguidades,
inconsistências ou omissões, e que todos os defeitos foram
detectados e corrigidos

• Inspeção e utilização de checklists

16/09/2020
Validação de requisitos

• Deve-se analisar os requisitos quanto a:


– Validade
• O sistema oferece as funções que melhor atendem às necessidades
dos usuários?

– Consistência
• Existem requisitos conflitantes?

– Completude
• Todas as funções requeridas pelo cliente estão incluídas?

– Realismo
• Os requisitos podem ser implementados com as habilidades e o
orçamento disponíveis?

16/09/2020
Validação de requisitos

• Deve-se analisar os requisitos quanto a (cont.)


– Verificação
• O requisito é realisticamente testável?

– Compreensibilidade
• O requisito foi corretamente entendido?

– Rastreabilidade
• A origem do requisito está claramente definida?

– Adaptabilidade
• Um requisito pode mudar sem afetar outros requisitos?

16/09/2020
Validação de requisitos

• Técnicas para validação de requisitos

• Revisão (inspeção) de requisitos


– Análise sistemática (manual) dos requisitos

• Desenvolvimento de protótipos
– Usar um modelo executável do sistema para checar seus
requisitos

• Geração de casos de teste


– Desenvolvimento de situações de teste para verificação de
requisitos

16/09/2020
Gerência de requisitos

• Define uma abordagem sistemática para levantar, organizar


e documentar as modificações nos requisitos

• É executada em paralelo durante todo o processo de


desenvolvimento

• Captura de informações de apoio à gerência do projeto


– Importância
– Risco
– Release previsto
– ...

• Apoio na avaliação do impacto das mudanças

16/09/2020
Leituras Recomendadas

• Sommerville: capítulo 4

• Pressman: capítulos 8 e 9

16/09/2020
Exercício prático

Execute as etapas de levantamento, análise e especificação de requisitos para o


desenvolvimento de um sistema de informação que auxilie na solução do
problema descrito no minimundo sobre o funcionamento da Escola de Ofícios
ABC.

Minimundo: situação problema que descreve o contexto para o qual um sistema


de informação deverá ser desenvolvido.

Sugestão: siga o modelo de especificação de requisitos apresentado em aula.

16/09/2020