Buscar

3 - Introdução a Engenharia de Requisitos

Prévia do material em texto

Introdução a Engenharia 
de Requisitos
• O que são requisitos?
• O que é engenharia de requisitos?
• Quanto custa a engenharia de requisitos?
• O que acontece quando os requisitos são mal definidos?
• O que é um processo de engenharia de requisitos?
• Há um processo ideal para a engenharia de requisitos?
• O que é um documento de requisitos?
• O que são stakeholders (interessados)?
• Qual o relacionamento entre requisitos de software e desenho 
de software?
• O que é gerenciamento de requisitos?
Perguntas básicas sobre ER
• Requisitos de um sistema de software
– Refletem os objetivos, necessidades dos 
interessados e características de qualidade que 
devem ser atendidas
– Definem os serviços que um sistema deve prover 
e as restrições que devem ser consideradas no 
desenvolvimento e operação do sistema.
– São descrições sobre como o sistema deverá se 
comportar, informações sobre o domínio da 
aplicação, restrições sobre a operação de um 
sistema, ou especificações de uma propriedade 
ou atributo do sistema.
Requisitos de um 
Sistema de Software
• Exemplos em um Sistema de Biblioteca:
1. O sistema deve manter registros de todos os itens do 
acervo da biblioteca, incluindo livros e periódico em 
quaisquer mídias em que eles forem disponibilizados 
(impressas ou eletrônicas)
2. O sistema deve permitir aos usuários buscarem itens de 
acervo pelo título, autor e ISBN.
3. A interface do sistema deve ser implementada visando sua 
utilização por um navegador na internet (world-wide-web
browser).
4. O sistema deve suportar pelo menos 20 transações por 
segundo
5. As funcionalidades do sistema devem ser apresentadas 
aos usuários de acordo com o seu perfil. Por exemplo, o 
perfil usuário deve ver apenas as opções de 
funcionalidades que pode utilizar.
Requisitos de um 
Sistema de Software
• Exemplos de Requisitos em outros contextos:
– Uma facilidade relacionada com a utilização do 
sistema pelos usuários.
• Exemplo: “o processador de texto deve incluir uma 
verificação ortográfica, sugestão de correção de grafia e 
comandos de correção”.
– Uma propriedade geral do sistema
• Exemplo: “O acesso ao sistema deve ser garantido 
somente a pessoas autorizadas através de confirmação 
de senhas individuais”.
– Uma restrição específica do sistema
• Exemplo: “O sensor de temperatura de ambiente deve 
ser monitorado no mínimo dez vezes a cada segundo”.
Requisitos de um 
Sistema de Software
• Exemplos de Requisitos em outros contextos:
– Como um cálculo deve ser feito
• Exemplo: “A média final de um aluno é calculada como a 
média aritmética das suas notas bimestrais”.
– Uma restrição relacionada com o desenvolvimento 
do sistema
• Exemplo: “O sistema deve ser desenvolvido em Java”.
Requisitos de um 
Sistema de Software
Tipos de Requisitos
• Os requisitos pode ser classificados de várias 
maneiras. Por exemplo:
• Requisitos gerais do sistema (requisito 1 do exemplo da 
biblioteca)
• Requisitos funcionais que definem parte das funcionalidades 
do sistema (requisito 2 do exemplo da biblioteca).
• Requisitos de implementação que restringem as formas 
como o sistema deve ser implementado (requisito 3 do 
exemplo da biblioteca).
• Requisitos de desempenho que especificam o nível mínimo 
de desempenho aceitável (requisito 4 do exemplo da 
biblioteca).
• Requisitos de usabilidade que especificam o que um grupo 
de usuários pode ver (requisito 5 do exemplo da biblioteca).
Tipos de Requisitos
• Classificação mais conhecida:
– Requisitos Funcionais
– Requisitos Não Funcionais
• Outras classificações conhecidas
– Requisitos de Sistema x Requisitos de Software
– Requisitos de Usuário x Requisitos de Software
Tipos de Requisitos
• Requisitos Funcionais
– Requisitos relacionados com as funções 
básicas do sistema
– Caracterizam necessidades vinculadas ao 
domínio do problema independentemente da 
solução computacional adotada.
– Em geral definem o escopo do sistema
Tipos de Requisitos
• Requisitos Não Funcionais
– Requisitos relacionados com características 
que qualificam uma solução para o problema 
diferenciando-as de outras possíveis
– São também conhecidos como requisitos de 
qualidade.
– Em geral definem a complexidade do sistema
– Podem ser subdivididos em outros tipos
Tipos de Requisitos
• Restrições
– São limitações que devem ser consideradas na 
condução do processo de desenvolvimento do 
sistema ou no próprio desenvolvimento técnico 
do software.
– Restrições de projeto, em geral, definem 
limitações quanto a disponibilidade ou 
qualidade dos recursos que podem ser 
aplicados
– Restrições técnicas, em geral, definem 
limitações quanto as soluções técnicas que 
podem ser aplicadas 
Engenharia de Requisitos
• Termo relativamente novo.
• Conjunto de processos envolvidos com a 
descoberta (levantamento, coleta), documentação 
e manutenção dos requisitos de um sistema de 
software.
• O uso do termo “engenharia” implica o uso 
sistemático e repetido de técnicas para assegurar 
que os requisitos estejam completos, consistentes, 
relevantes, etc.
Engenharia de Requisitos
• Engenharia de Requisitos x Análise de Sistemas
– A Engenharia de Requisitos executas as tarefas tradicionais da 
conhecida análise de sistemas porém com preocupações mais 
destacadas em relação aos processos adotados, a 
documentação de requisitos e ao gerenciamento de requisitos.
• Custo da Engenharia de Requisitos
– Capacitação
– InfraEstrutura
– Atividades
– Pesquisas indicam que:
• para sistemas de grande escopo e complexidade cerca de 15% do 
orçamento total é gasto nos processos de engenharia de 
requisitos.
• Para sistemas menores onde o software é quase todo o sistema, 
os custos giram em torno de 10% do orçamento total.
Engenharia de Requisitos
• Processo de Engenharia de Requisitos
– Conjunto estruturado de atividades que permitem 
derivar, validar e manter os requisitos de um sistema. 
– Um processo completo deve incluir as atividades que 
devem ser executadas, o escalonamento dessas 
atividades, o responsável por cada atividade, as 
entradas e saídas de cada atividade e as ferramentas 
e recursos que suportam a execução de cada 
atividade.
– Subprocessos incluem: elicitação de requisitos, 
análise de requisitos, negociação de requisitos e 
validação de requisitos, gerência de requisitos.
• Documentação de Requisitos
– Um documento de requisitos é uma declaração oficial 
dos requisitos do sistema para todos os interessados 
(stakeholders) no sistema: clientes, usuários, 
desenvolvedores, etc.
– Interessados são todas as pessoas e organizações 
afetadas pelo sistema e que tem uma influência 
direta ou indireta nos requisitos do sistema. 
• É extremamente importante identificar todos os interessados 
no sistema já que eles são a principal fonte de requisitos do 
sistema
• A não identificação dos interessados pode aumentar o risco 
de mudanças nos requisitos. 
Engenharia de Requisitos
• Relação entre requisitos e design do software
– Requisitos definem o que o sistema deve fazer
– Design define como os requisitos vão ser atendidos
– Em geral, o documento de requisitos não trata 
aspectos de design a não ser que estejam envolvidos 
com restrições.
– É fundamental correlacionar ao longo do projeto o que 
está sendo construído com os requisitos das com 
padrões, com sistemas já utilizados, com questões de 
arquitetura, restrições de projeto, exigências em 
licitações, etc. 
Engenharia de Requisitos
• Gerenciamento de requisitos
– Processo de gerenciamento de mudanças nos 
requisitos do sistema. 
– Principais atividades: controle de modificações e 
análise de impacto.
– Controle de modificação está relacionado com o 
estabelecimento e execuçãode procedimentos 
formais para coleta, verificação e aprovação de 
modificações.
– Análise de impacto está relacionada com a análise de 
como as modificações propostas afetam o sistema 
como um todo.
Engenharia de Requisitos
Engenharia de Requisitos e a 
Engenharia de Sistemas
Engenharia de 
Requisitos de 
Sistema
Desenho 
Arquitetural
Particionamento 
dos Requisitos
Engenharia de 
Requisitos de 
Software
Validação de 
Sistema
Integração de 
Sistema
Desenvolvimento 
de Subsistemas
• Passos:
– Engenharia de Requisitos de Sistema
• Os requisitos do sistema como um todo são estabelecidos.
• Requisitos geralmente expressos em alto nível usando 
linguagem natural.
• Alguns requisitos detalhados (por exemplo, requisitos de 
compatibilidade) podem ser incluídos se forem críticos para o 
sucesso do sistema.
– Desenho Arquitetural
• O sistema é decomposto em um conjunto de relativamente 
independentes subsistemas.
Engenharia de Requisitos e a 
Engenharia de Sistemas
• Passos (continuação)
– Particionamento dos requisitos
• Os requisitos são particionados pelos subsistemas.
• Neste estágio deve ser decidido se os requisitos devem ser 
de hardware ou software.
– Engenharia de Requisitos de Software
• Os requisitos de alto nível de software são decompostos em 
requisitos mais detalhados para os componentes de software 
do sistema.
– Desenvolvimento de subsistemas
• Os subsistemas de hardware e software são desenhados e 
implementados em paralelo.
Engenharia de Requisitos e a 
Engenharia de Sistemas
• Passos (continuação)
– Integração de sistemas
• Os subsistemas de hardware e software são integrados para 
completar o sistema.
– Validação dos requisitos
• O sistema é validado em termos de atendimento aos 
requisitos.
Engenharia de Requisitos e a 
Engenharia de Sistemas

Continue navegando