Buscar

aula2-requisitos

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Engenharia de Software
© Pablo Dall'Oglio
Engenharia de Requisitos
Pablo Dall'Oglio
Engenharia de Software
© Pablo Dall'Oglio
Definição
“A Engenharia de Requisitos é um processo
que envolve todas as atividades
exigidas para criar e manter o
documento de requisitos de um sistema.”
Engenharia de Software
© Pablo Dall'Oglio
Introdução
� A Engenharia de Requisitos é uma área da Engenharia de 
Software;
� O papel da Engenharia de Requisitos é o de descobrir o 
propósito de um sistema;
� Visa a identificação e documentação das necessidades dos 
clientes;
� Vai desde o reconhecimento de um problema a ser resolvido 
até sua especificação detalhada;
� Visa assegurar um conjunto consistente de requisitos antes da 
construção do sistema, para minimizar mudanças posteriores;
� Se mal realizada, pode comprometer todo o projeto.
Engenharia de Software
© Pablo Dall'Oglio
Atividades do processo
As cinco atividades do processo de
Engenharia de Requisitos são:
1) Elicitação (descoberta);
2) Análise e negociação;
3) Documentação (especificação);
4) Validação;
5) Gerenciamento.
Engenharia de Software
© Pablo Dall'Oglio
Entradas e saídas do processo
� A seguir, as entradas e saídas do processo:
Engenharia de Software
© Pablo Dall'Oglio
Processo de Engenharia de Requisitos
� A seguir, o fluxo de atividades de um processo de Engenharia 
de Requisitos;
Engenharia de Software
© Pablo Dall'Oglio
Descrição das atividades
� Elicitação: Descoberta dos requisitos através de consultas aos 
usuários, e outras técnicas;
� Análise e negociação: Quais serão feitos, priorização, 
divergências são negociadas com os usuários;
� Documentação: Os requisitos são documentados de forma que 
todos os envolvidos os compreendam;
� Validação: Os requisitos são validados. Verifica-se nesta etapa 
se os requisitos estão completos e consistentes;
� Gerenciamento: Tem como objetivo gerenciar as mudanças 
que acontecem nos requisitos ao longo do tempo.
Engenharia de Software
© Pablo Dall'Oglio
Elicitação de Requisitos
Engenharia de Software
© Pablo Dall'Oglio
Elicitação de Requisitos
� Envolve a descoberta dos requisitos de um sistema;
� Consiste em identificar os usuários, as tarefas que realizam e 
como gostariam de desempenhar estas mesmas tarefas;
� Envolve a descoberta de requisitos que o software deve 
possuir para satisfazer as diversas necessidades do cliente;
� Analistas trabalham junto com clientes e usuários finais;
� Visa entender o problema a ser resolvido através do 
detalhamento das funcionalidades futuro sistema;
� Não se trata apenas de questionar os clientes e usuários sobre o 
que eles precisam, mas sim de uma análise da empresa.
Engenharia de Software
© Pablo Dall'Oglio
Elicitação de Requisitos
Engenharia de Software
© Pablo Dall'Oglio
Tipos de Requisitos
� Funcionais (funcionalidade):
� Enviar às gerências alerta de novo mandado cadastrado;
� Possibilitar anexar ao processo as partes faltantes;
� Consulta prazos já cumpridos por procurador;
� Não-funcionais (tecnologia, usabilidade, desempenho);
� Cadastro de Permissões de Acesso;
� Rotina para Certificação Digital e Criptografia;
� Possibilitar exportar as consultas de telas em Excel;
� Deve possuir sistema de ajuda on-line;
� O relatório X não deve demorar mais que 20 segundos.
Engenharia de Software
© Pablo Dall'Oglio
Dificuldades na Elicitação de Requisitos
� São dificuldades na Elicitação de Requisitos:
� As informações sobre o domínio do problema estão 
espalhadas em textos, manuais, na cabeça das pessoas;
� As pessoas que entendem do problema a ser resolvido estão 
muito ocupadas tentando resolvê-los e não tem tempo ou não 
desejam ajudar o analista;
� Diferentes interesses e políticas internas;
� Os clientes geralmente não sabem o que precisam ou sabem 
mas não conseguem explicar;
� Mudanças no negócio durante ou após a elicitação;
� Mudanças no pessoal envolvido durante o processo.
Engenharia de Software
© Pablo Dall'Oglio
Técnicas de Elicitação de Requisitos
� Várias técnicas podem ser utilizadas na Elicitação de 
Requisitos:
� Entrevistas;
� Leitura de documentos;
� Questionários;
� Observação;
� Reutilização de requisitos;
� Cenários;
� Casos de uso.
Engenharia de Software
© Pablo Dall'Oglio
Entrevistas
� São utilizadas para obter o conhecimento;
� Utiliza perguntas realizadas aos usuários-chave;
� Permite entender os processos da organização;
� Permite perceber as expectativas dos usuários;
� Pode ser aplicado informalmente ou por meio de questionários 
com perguntas pré-definidas;
� Trazem um conjunto rico em informações;
� Demandam grandes esforços de análise (visões conflitantes);
� Não podem ser utilizadas como único meio de elicitação:
� Os usuários utilizam termos muito específicos;
� Acham desnecessário explicar o que é óbvio para o trabalho.
Engenharia de Software
© Pablo Dall'Oglio
Leitura de documentos
� Vantagem: fácil acesso
e o volume de informações;
� Desvantagem: tem-se a dispersão
das informações.
Questionários
� Podem ser utilizados quando existe o conhecimento sobre um 
problema e vários usuários envolvidos;
� Permitem ter uma visão estatística de como alguns problemas 
são percebidos pelos usuários;
� Vantagem: permite padronização das perguntas e estatísticas 
com as respostas;
� Desvantagem: limita o conjunto de respostas e tem pouca 
interação.
Engenharia de Software
© Pablo Dall'Oglio
Observação (Etnografia)
� As pessoas geralmente acham difícil descrever
o que elas fazem pois isto é muito natural para elas;
� As vezes, a melhor forma é observá-las no trabalho;
� A etnografia consiste em observar as pessoas em seu trabalho e 
construir uma imagem de como o trabalho é realizado;
� Os processo reais de trabalho geralmente diferem daqueles 
processos formais descritos;
� Vantagem: permite uma visão mais completa do processo. 
Algumas pessoas preferem mostrar do que explicar as tarefas;
� Desvantagem: O elevado tempo gasto, baixa sistematização do 
processo e constrangimento na observação;
� É uma técnica complementar e não deve ser utilizada sozinha.
Engenharia de Software
© Pablo Dall'Oglio
Reuso de requisitos
� Considera requisitos que foram desenvolvidos
para um sistema e usá-los em sistemas diferentes;
� Economiza tempo e esforço, pois requisitos reutilizados já 
foram analisados e validados em outros sistemas;
� O reuso leva à uma maior consistência entre aplicações;
� É um processo informal. A capacidade de se aproveitar 
diferencia um analista experiente de um inexperiente;
� Como vantagem, tem-se maior produtividade e qualidade, 
uma vez que os requisitos já foram validados;
� A desvantagem é que geralmente precisa de adaptação;
� Ex: financeiro (orçamento, fluxo), workflow (protocolos).
Engenharia de Software
© Pablo Dall'Oglio
Brainstorming
� É uma técnica que envolve reunião
em grupo, e é baseada na geração de ideias;
� Envolve a reunião de especialistas de negócio
e de sistema tendo em vista a criação de ideias
para resolução de problemas;
� Envolve alguns princípios como a não-crítica e o não-
julgamento das ideias geradas;
� A técnica de Brainstorming pode ser aplicada no início da 
etapa de elicitação, quando o universo de requisitos 
conhecidos é pequeno, sendo necessário gerar novas ideias;
� As ideias são geradas de forma rápida, coletadas e então 
discutidas e avaliadas pelo grande grupo.
Engenharia de Software
© Pablo Dall'Oglio
Prototipação de interface
� Um protótipo é uma versão inicial de um sistema;
� Seu objetivo é a validação de requisitos ainda em estágios 
iniciais de desenvolvimento;
� O protótipo de um sistema pode ser descartado ou evoluir 
para uma versão final do sistema;
� Os protótipos minimizam a distância na comunicação entre 
cliente e analista e constituem
uma forma concreta de mostrar
para o cliente os conceitos
absorvidos;
� www.jotform.com;
� gomockingbird.com;
� Pencil.
Engenharia de Software
© Pablo Dall'Oglio
Análise e Negociação
� Descobrir problemas nos requisitose
obter um consenso junto ao cliente;
� Ex: Limita a turma, ou faz split depois.
� Na análise, procura-se detectar inconsistências
e identificar requisitos faltantes;
� Na negociação ocorre a resolução de conflitos e priorização;
� Ocorrem em forma de espiral junto com a elicitação. Os 
requisitos vão sendo descobertos, analisados e negociados.
� Requisito desnecessário (Permitir ler e-mails no sistema);
� Não é viável tecnicamente (Gerar a folha em 10 segundos);
� O prazo/custo não permite (Integrar com redes sociais).
Engenharia de Software
© Pablo Dall'Oglio
Documentação
� A documentação dos requisitos é
utilizada para comunicar os requisitos
do software;
� A forma pela qual os requisitos de um sistema são documentados 
é de extrema importância, para garantir que os mesmos 
possam ser lidos e validados;
� A Especificação de Requisitos do Software é a declaração 
formal dos requisitos do sistema e pode conter apenas os 
requisitos de usuário ou os de usuário e os de sistema;
� É utilizada pelo cliente (para homologar), pelo arquiteto de 
software (para entender o que deve ser desenvolvido), pelo 
testador (para executar os testes), dentre outros.
Engenharia de Software
© Pablo Dall'Oglio
Validação
� A validação de requisitos tem como objetivo validar 
consistência, completeza e precisão dos requisitos a partir da 
documentação, a fim de descobrir problemas;
� Na fase de validação, analistas e usuários validam os requisitos 
e AVALIAM O PROTÓTIPO, o que muitas vezes leva à descoberta 
de novos requisitos;
� Este é um processo se repete até que todos os requisitos 
sejam validados ou não existam mais requisitos a descobrir;
� Nesta fase é verificada a consistência, completude e precisão 
dos requisitos, para garantir que não exista ambiguidade, 
inconsistências, erros e omissões nos requisitos.
Engenharia de Software
© Pablo Dall'Oglio
Validação
� Pode ser elaborado um checklist para validar cada requisito:
� Descrição incompleta;
 O sistema deve permitir cadastrar clientes;
� Descrição ambígua;
 No momento da aquisição do produto pelo cliente, o 
sistema deverá apresentar seus dados;
Engenharia de Software
© Pablo Dall'Oglio
Gerenciamento
� Consiste em gerenciar as mudanças nos requisitos;
� Os requisitos evoluem ao longo do tempo, gerando novos 
requisitos e modificando os existentes;
� Quando um requisito muda, outros podem ser afetados.
� É importante realizar uma análise de impacto a cada mudança. 
A ferramenta para isso é a matriz de rastreabilidade;
� Ex: Muda a regra do cancelamento, muda o financeiro...
� Documenta a evolução do próprio requisito;
� O versionamento garante que se mantenha o registro de quem 
solicitou a alteração, quais foram as alterações...
Engenharia de Software
© Pablo Dall'Oglio
Rastreabilidade
� Consiste em ligações entre as informações produzidas no 
desenvolvimento de software;
� Estas ligações são essenciais no desenvolvimento de sistemas;
� Quando uma mudança ocorre é necessário estimar o custo e o 
escopo da mudança e a rastreabilidade é chave para isto;
� Tradicionalmente, esta análise de impacto tem sido conduzida 
de forma intuitiva pelos profissionais de software, por meio da 
análise de código-fonte e da documentação;
� Esta abordagem pode ser suficiente para projetos pequenos, 
mas não para projetos complexos;
� Além disso, mesmo profissionais experientes realizam 
estimativas erradas.
Engenharia de Software
© Pablo Dall'Oglio
Rastreabilidade
� São vantagens da rastreabilidade:
� Identificação de impactos;
� Verificação de alocação entre requisitos e sua implementação;
� Estimativas de custos e prazos quando da inserção de uma nova 
funcionalidade;
� Verificação de requisitos para os quais não foram previstos 
testes;
� Identificação de ligações entre código e documentos de 
análise.
Engenharia de Software
© Pablo Dall'Oglio
Rastreabilidade
Engenharia de Software
© Pablo Dall'Oglio
Ferramentas
Engenharia de Software
© Pablo Dall'Oglio
Próxima atividade
� Vídeos;
� Engenharia de Requisitos.flv;
� Qualidade de software...Wellington Durães.flv;
� Investigar ferramentas:
� JotForm, Gomockingbird, Pencil (será instalado);
� Ver documentos disponibilizados no site;
� Quais seriam os requisitos (RF e RNF) de:
� Um sistema de comércio eletrônico;
� Um sistema para controlar uma clínica;
� Um sistema para controlar realização de eventos;
� Um sistema para controlar reserva de laboratório.

Outros materiais