ENGENHARIA DE REQUISITOS
Isac Aguiar
isacaguiar.com.br
[email protected]
Objetivo
• Apresentar a importância da Engenharia de Requisitos no
processo de projeto de software
• Apresentar as atividades da Análise de Requisitos
• Apresentar os tipos de requisitos e suas particularidades
• Apresentar as técnicas da Engenharia de Requisitos
• Permitir uma melhor compreensão dos requisitos, por ser
essencial no processo de desenvolvimento de software
Contexto
• Influência dos requisitos no custo do projeto
• Menor impacto negativo no projeto com a descoberta
prévia do projeto
• Má identificação de requisitos, tornando-os a correção
mais custosa
• Detecção de erros nos requisitos antes do
desenvolvimento
Custo de Correção
• Aumenta com o tempo de descoberta do erro
• Custo de reparo
• Custo de perda de oportunidades
• Custo de perda de clientes
• O problema é considerado 200% maior se corrigido após
a implantação
• Os mais caros são cometidos na Análise de Requisitos e
descobertos pelo usuário
Requisitos de Software
• Expressam as necessidades dos clientes e condicionam
a qualidade do software.
• Responsável por coletar dados indispensáveis,
necessários, e exigências as quais o usuário necessite
para solucionar um problema e alcance os seus objetivos
• Determinam as expectativas de um usuário para
determinado produto
Análise de Requisitos
• Processo que engloba o estudo das necessidades do usuário para encontrar
uma definição adequada e completa do sistema ou requisito de software
• É vital para o desenvolvimento de um software
• Determina o sucesso ou fracasso do projeto
• Compostos por requisitos colhidos de forma quantitativa, detalhada e relevantes
para o projeto
• Servem de referência para validação do produto
• Estabelecem acordos entre o cliente e fornecedor, sobre o comportamento do
software
• Podem reduzir o custo de desenvolvimento
• Podem implicar na necessidade de retrabalho, caso sejam mal definidos
Atividades da Analise de Requisitos
1. Reconhecimento do Problema
2. Avaliação e síntese da solução
3. Modelagem
4. Especificação
5. Revisão
1
2
3
4
5
Reconhecimento do Problema
• Especificação do sistema, planejamento, contato do
analista com o cliente
• Entendimento da visão do cliente com relação ao
problema a ser solucionado
Avaliação do Problema
e Síntese da Solução
• Realizada com base no entendimento do problema
• Identifica as informações necessárias para o usuário
• Identifica as informações necessárias para o sistema
• Escolha da melhor solução dentro das soluções
propostas
Modelagem
• Suporte a síntese da solução
• Apresenta ferramentas que facilitam o entendimento do
sistema, como as funcionalidades, informações e
comportamentos do sistema
Especificação dos Requisitos
• Funções
• Interfaces
• Desempenho
• Contexto e as restrições do sistema
Revisão
• Realizada em conjunto com cliente e analista
• Avaliação do objetivo do projeto, de maneira a evitar
redundâncias, inconsistências e omissões do sistema,
obtendo uma melhor compreensão
Tipos de Requisitos
• Requisitos do projeto
• Condições que satisfazem o negócio, gerenciamento e entrega do
produto
• Requisitos do produto
• Condições que satisfaçam as necessidades técnicas, de
segurança e de desempenho
• Requisitos Funcionais
• Estabelecem como o sistema irá se comportar, e o que devem
fazer, as funcionalidades e serviços do sistema
• Ex.: MER, Modelos de Casos de Uso, Fluxogramas
• Requisitos não-funcionais
• Definem as propriedades do sistema e suas restrições.
• Ex.: Confiabilidade do sistema, tempo de resposta, espaço em
disco
Exemplos Tipos de Requisitos
• O sistema deve prover um formulário de entrada para a
entrada dos resultados dos testes clínicos de um
paciente. (RF)
• O sistema deve emitir um recibo para o cliente, com o
tempo máximo de 8 segundos após a transação. (RF,
RNF de performance).
Técnicas de Análise de Requisitos
• Entrevistas
• Investigação direta com os clientes e usuários, com finalidade de
coletar suas expectativas
• Brainstorming (Tempestade de ideias)
• Coleta de ideias sem descartar ou desprezar qualquer tipo de ideia
que apareça durante o processo, seleciona a melhor ideia ou uma
combinação destas
• Questionários e pesquisas
• Permitindo a descrição por parte do usuário de suas atividades e
possíveis problemas, levando em consideração as suas opiniões
• Observação
• O analista observa as atividades do usuário, como utilização do
sistema e comportamento diante de situação problemática
• Outras técnicas
• Workshops, mapas mentais, protótipos e etc.
Engenharia de Requisitos
“Estabelece o processo de definição de requisitos como
um processo no qual o que deve ser feito deve ser
elicitado, modelado e analisado. 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 chamado
requisitos é produzido. Este processo é perene e acontece
num contexto previamente definido a que chamamos de
Universo de Informações.”
Júlio Cesar Leite
Engenharia de Requisitos
• Elicitação
• Entender o problema através das técnicas de análise de requisitos
• Modelagem
• Representação do entendimento do problema
• Ex: DFD, DER, Casos de Uso e etc
• Análise
• Validar e Verificar a informação colhida
Processo
Elicitação
Modelagem
Análise V & V
Elicitação
Mundo real
Mundo Computacional
GAP SEMÂNTICO
Problemas
Elicitação de Requisitos
Soluções
GAP SEMÂNTICO: diferença existente entre
duas descrições de objetos feitas por
diferentes representações linguísticas.
Elicitação
• Identificação das fontes de informação
• Stakeholders (partes interessadas no projeto)
• Documentos
• Livros
• Sistemas de software
• Coleta de fatos
• Leitura de documentos
• Observação
• Entrevistas
• Reuniões
• Questionários
• Antropologia
• Participação ativa dos atores
• Bases de Requisitos não funcionais
• Engenharia Reversa
• Reutilização
Informações importantes
• Fonte de Requisitos
• Quais são as partes interessadas no produto/serviço
• Quais são as principais necessidades do usuário
• Definimos as fronteiras do sistema
• Quais são as premissas e restrições do sistema ou do
ambiente
Modelagem
Mundo real
Mundo Computacional
GAP SEMÂNTICO
Problemas
GAP SEMÂNTICO: diferença existente entre
duas descrições de objetos feitas por
diferentes representações linguísticas.
Soluções
Modelagem dos Requisitos
Importância dos modelos
• Representar
• Organizar
• Armazenar
• Comunicar
Abstração
• Nomeia objetos compostos para lidar como se fossem
entidades únicas
• Utilizada na racionalização de software
• Ignora detalhes incovenientes
• Possibilita o mesmo tratamento a entidades diferentes
• Simplifica a análise
• Não resolve o problema, mais simplifica
Decomposição
•
•
•
•
Dividir o problemas em subproblemas
Possuir mesmo níveis de detalhes para subproblemas
Permitir a solução independente de subproblemas
Resolver o problema a partir da combinação dos
subproblemas
• Vantagens:
• Pessoas diferentes podem trabalhar nos subproblemas
• Paralelização das soluções
• Simplificação da manutenção
• Desvantagens
• As soluções dos subproblemas podem não combinar de modo a
resolver o problema original
• Problemas de difícil compreensão são difíceis de decompor
Análise
Mundo real
Mundo Computacional
GAP SEMÂNTICO
Problemas
Soluções
Análise dos Requisitos
Análise V & V
Verificação
• Estamos construindo o
produto de maneira
certa?
Validação
• Estamos construindo o
produto certo?
• Correlacionados à
• Correlacionados aos
produtos
intenção dos clientes
Resumindo
• A análise de requisitos compreende o processo utilizado
para determinar as necessidades e interesses dos
steakholders para atingir seus objetivos.
Dúvidas
Referências Bibliografias
• CRAIG, Larman. Utilizando UML e Padrões
• SOMMERVILLE, I. Engenharia de Software. São Paulo:
•
•
•
•
Addison Wesley, 2003. Capitulo 3. ISBN: 85-88639-07-6.
PRESSMAN, R.S. Engenharia de Software. São Paulo:
Makron Books, 1995. Capitulo 2. ISBN: 85-346-0237-9.
FOWLER, Martin. UML Essencial. 3 ed. Porto Alegre:
Bookman, 2005.
Leite, J.C.S.; "Engenharia de Requisitos". Notas de aula,
DI/PUC-Rio.
Pádua F.,W. P. "Engenharia de Software: Fundamentos,
Métodos e Padrões".
Download

Slide 05 - Isac Aguiar