o processo de engenharia de requisitos
DESCRIPTION
Plano Aprovado. O processo de Engenharia de Requisitos. 2. Obtenção e Análise dos Requisitos. Avaliar os problemas na situação atual Principal foco para o novo sistema: O QUE e não COMO: qual o fluxo e o conteúdo de informação quais as funções do sistema - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/1.jpg)
O processo de Engenharia de Requisitos
![Page 2: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/2.jpg)
2. Obtenção e Análise dos Requisitos
Avaliar os problemas na situação atualPrincipal foco para o novo sistema: O QUE e não COMO:– qual o fluxo e o conteúdo de informação– quais as funções do sistema– quais dados o sistema produz e consome – qual o comportamento do sistema– quais as características de interface com outros subsistemas– quais são as restrições do projeto
![Page 3: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/3.jpg)
A Gerência do Processo de Desenvolvimento
![Page 4: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/4.jpg)
Ciclo de Vida
Qual o propósito de estabelecer um Ciclo de Vida para o Software? – Definir que atividades devem ser executadas em um projeto de
desenvolvimento de sistemas– Introduzir consistência entre vários projetos de desenvolvimento de
sistemas de uma mesma organização– Prover pontos de controle para prever, gerenciar e controlar o
desenvolvimento de sistemas
![Page 5: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/5.jpg)
Ciclo de Vida
CascataEvolucionárioFormalOrientado a ReusoEspiralIncremental
![Page 6: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/6.jpg)
Cascata
Ciclo de Vida Clássico
Prevê um processo de desenvolvimento com etapas seqüenciais
Base: engenharia convencional
O resultado de cada fase envolve a elaboração de um ou mais documentos que são aprovados
![Page 7: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/7.jpg)
Engenhariade Sistemas
AnáliseProjeto
Codificação
Teste
Manutenção
Cascata
![Page 8: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/8.jpg)
Cascata
Problemas:– Para grandes projetos o tempo que decorre desde a especificação até
sua implantação é grande
– O Ambiente Externo evolui e é diferente daquele que deu origem a sua especificação
– Na prática os estágios se sobrepõem
– O processo de software envolve interações
![Page 9: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/9.jpg)
Evolucionário
Base– Desenvolver uma implementação inicial– Expor o resultado ao comentário do usuário– Aprimoramento por meio de muitas versões– Até que o sistema tenha sido totalmente desenvolvido
Dois tipos:– Exploratório– Protótipos descartáveis
![Page 10: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/10.jpg)
Evolucionário
Exploratório– Trabalhar com o cliente– O desenvolvimento inicia com as partes do sistema que
são compreendidas– O sistema evolui com as novas características propostas
pelo cliente
Protótipos descartáveis– O protótipo experimenta os requisitos não
compreendidos– Neste caso o objetivo é a Especificação de Requisitos– Falaremos de protótipos mais adiante
![Page 11: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/11.jpg)
Evolucionário
Descrição doEsboço
Versão Inicial
Descrição doEsboço
Especificação
Versões Intermediárias
Versão Final
Desenvolvimento
Validação
![Page 12: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/12.jpg)
Evolucionário
Produz sistemas que atendem as necessidades imediatas do clienteProblemas– O processo não é visível
• Não se produzem documentos que reflitam as versões do sistema
– Freqüentemente são mal estruturados• Software sem estrutura• Modificações cada vez mais custosas
– Ferramentas e técnicas especiais• Possibilitam rápido desenvolvimento• Poucas pessoas podem ter a habilitação necessária para
usá-las
![Page 13: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/13.jpg)
Evolucionário Definição deRequisitos eRefinamento
Projeto Rápido
Constru-ção do
Protótipo
Avaliação doUsuário
Refinamentodo protótipo
ProdutoFinal
Início
Fim
![Page 14: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/14.jpg)
Formal
Base: a transformação matemática formal de uma especificação de sistema em um programa executável– A especificação de requisitos é redefinida com uma linguagem formal
Especificação deRequisitos
EspecificaçãoFormal
TransformaçãoFormal
Testes
![Page 15: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/15.jpg)
Formal
Transformação formal– Várias etapas– Representação mais detalhada, matematicamente
correta
Adequada a sistemas críticos– Permite verificação automática de consistência– Model checking
• utiliza máquinas de estado para verificar onde uma determinada propriedade é satisfeita sob todas as condições
– Prova de teoremas• axiomas do comportamento do sistema são empregados
para derivar uma prova de que o sistema vai se comportar de uma determinada forma
![Page 16: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/16.jpg)
Orientado a Reuso
Ampla base de componentes reusáveisInfra-estrutura de integraçãoEtapas:– De posse da Especificação de Requisitos, buscam-se componentes para
implementá-la– Negociação – requisitos são modificados para que se possa usar os
componentes
Redução do esforço de desenvolvimento
![Page 17: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/17.jpg)
Iteração de processo
Existe a necessidade de utilizar diferentes abordagens para diferentes partes do sistemaPartes do processo são repetidas enquanto os requisitos evoluemModelos Híbridos– Apóiam a iteração do processo– Desenvolvimento Espiral– Desenvolvimento Incremental
![Page 18: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/18.jpg)
Modelo Espiral
O processo de desenvolvimento se move sobre uma espiral evolucionária– Melhores características do
• Ciclo de vida clássico• Evolucionário – Prototipação• Acrescenta Análise de Riscos
As fases são executadas de forma iterativa As fases de análise e projeto não são monolíticas e distintas
![Page 19: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/19.jpg)
Modelo Espiral
![Page 20: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/20.jpg)
Modelo Espiral
Planejamento– objetivos, alternativas e restrições
Análise de Riscos– Análise de alternativas e identificação/resolução de
riscos– Prototipação pode ser usada– Simulações e outros modelos podem ser usados para
definir melhor o problema
Desenvolvimento e Validação– Desenvolvimento do produto no “nível seguinte”
Avaliação feita pelo ClienteVolta ao Planejamento
![Page 21: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/21.jpg)
Enfoque Incremental
Uma variação do modelo cascata onde a partir da fase de especificação de requisitos são feitos incrementos sucessivos.
Estratégia para minimizar riscos, obtendo-se resultados de médio e curto prazo sem se descuidar do objetivo final
![Page 22: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/22.jpg)
Enfoque Incremental
Requisitos
Design
Codificação
Testes
Implantação
Requisitos
Design
Codificação
Testes
Implantação
Uma interação
tempo
![Page 23: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/23.jpg)
Desenvolvimento Incremental
O Processo de Desenvolvimento RUP está em conformidade com o Desenvolvimento Incremental.
![Page 24: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/24.jpg)
Desenvolvimento Incremental
Em vez de entregar o sistema como um todo, o desenvolvimento e a entrega são divididos em partes, com cada incremento entregando parte da funcionalidade requeridaRequisitos dos usuários são priorizados e os requisitos de mais alta prioridade são incluídos nas iterações iniciaisUma vez que o desenvolvimento de um incremento é iniciado, os requisitos são "congelados“, embora possam continuar a evoluir para incrementos posteriores
![Page 25: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/25.jpg)
Desenvolvimento Iterativo e Incremental (RUP)
![Page 26: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/26.jpg)
Engenharia de Requisitos
![Page 27: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/27.jpg)
Engenharia de Requisitos
Compreender a natureza do software a ser desenvolvido é realmente muito complexo
Conseqüentemente é difícil estabelecer o que o sistema deve fazer
Estabelecer o que o sistema deve fazer descrevendo suas funções e restrições é conseguir determinar todos os seus requisitos
O Processo de:
1. Descobrir 2. Analisar
3. Documentar
4. Verificar
É chamado de É chamado de Engenharia de Engenharia de RequisitosRequisitos
![Page 28: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/28.jpg)
Engenharia de Requisitos
![Page 29: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/29.jpg)
Engenharia de Requisitos
O processo de estabelecer as funções O processo de estabelecer as funções que um cliente requer de um sistema e que um cliente requer de um sistema e as restrições sob as quais ele deve as restrições sob as quais ele deve funcionar e ser desenvolvidofuncionar e ser desenvolvido
Os requisitos são descrições das funções Os requisitos são descrições das funções e restrições que são geradas durante o e restrições que são geradas durante o processo de engenharia de requisitosprocesso de engenharia de requisitos
![Page 30: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/30.jpg)
Atividades de Engenharia de Requisitos – Recursos Humanos
![Page 31: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/31.jpg)
Organização e Responsabilidade - Papéis
Analista de Negócios
Negocia junto com os clientes e os demais envolvidos a lista dos requisitos iniciais e suas ampliações, priorizando-os e quando necessário agrupando-os em pacotes a serem desenvolvidos em iterações. É responsável por explicitar as regras de negócio e o glossário associado ao negócio.
Analista de Requisitos
Elicita os requisitos de produto e registrá-os de forma adequada. Garante a rastreabilidade dos requisitos de negócio e requisitos de produto ao longo do projeto.
Cliente Aprova a versão final do escopo da aplicação, descrito na Especificação de Requisitos de software
Inspetor Inspeciona a Especificação de Requisitos de Software com relação ao formato.
Testador Aplica o Plano de Testes e assegura que os requisitos implementados estão de acordo com o requisitado pelo cliente.
![Page 32: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/32.jpg)
Explicitar o domínio do problema Identificar possibilidade de reuso de solução Identificar pessoas e áreas impactadas Elicitar e classificar os requisitos de negócio Envolver a área de serviços e definir alternativas de solução Analisar e validar os requisitos
Necessidades
Analista de Negócios
Regras de Negócio
GlossárioDocumento de Visão
Elicitação dos Requisitos de Negócio
![Page 33: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/33.jpg)
Especificação e Modelagem de Requisitos
Elicitar Requisitos de Produto Especificar casos de uso e validá-los Especificar requisitos não funcionais Analisar e validar os requisitos
Requisitosp/ Inspeção
Plano e Casos de Teste
Casos de Uso eEsp. Suplementar
Regras de Negócio
GlossárioDocumento de Visão
Analista de Requisitos
![Page 34: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/34.jpg)
Verificação e Validação dos Requisitos
Verificar conflitos de requisitos Verificar consistência de requisitos Verificar completude de requisitos Verificar existência de requisitos ambíguos
Analista de Requisitos
Requisitosp/ Inspeção
Plano e Casos de Teste
Casos de Uso eEsp. Suplementar
Garantir a rastreabilidade dos requisitos Validar requisitos com o cliente
Inspetor
Especificação de Requisitos Atualizada
Resultado dos Casos de Teste
![Page 35: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/35.jpg)
Rastreabilidade e Gestão de Mudanças
Avaliar o impacto nos requisitos Validar com o cliente Notificar os envolvidos Atualizar as especificações de requisitos Garantir a rastreabilidade nos requisitos
Necessidade
Documento de VisãoAtualizado
Solic. Mudança
Analista de Requisitos
Analista de Negócios
Especificação de Requisitos Atualizada
![Page 36: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/36.jpg)
Elicitação de Requisitos
![Page 37: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/37.jpg)
Explicitar o domínio do problema Identificar possibilidade de reuso de solução Identificar pessoas e áreas impactadas Elicitar e classificar os requisitos de negócio Envolver a área de serviços e definir alternativas de solução Analisar e validar os requisitos
Necessidades
Analista de Negócios
Regras de Negócio
GlossárioDocumento de Visão
Elicitação dos Requisitos de Negócio
![Page 38: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/38.jpg)
Elicitação de Requisitos
Atividades que envolvem a descoberta de requisitos de um sistema:– identificação das fontes de informação– técnicas de elicitação (coleta de fatos)– comunicação (estabelecer uma linguagem comum)
Envolve pessoal objetivando descobrir:– o domínio de aplicação– serviços que devem ser fornecidos – restrições
![Page 39: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/39.jpg)
Elicitação de Requisitos
Pode envolver diferentes tipos de pessoas em uma organização (stakeholders):– usuários– gerentes– desenvolvedores– especialistas de domínio– sindicatos,...
A equipe de desenvolvimento e clientes trabalham em conjunto visando identificar:– detalhes do domínio da aplicação– serviços que o sistema deve oferecer– desempenho– restrições de hardware, ...
![Page 40: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/40.jpg)
Elicitação de Requisitos
Problemas:– Em geral, stakeholders não sabem o que querem de fato
• dificuldade de expressão• pedidos não realistas
– Stakeholders expressam requisitos em sua própria terminologia
• conhecimento implícito– Stakeholders distintos podem ter requisitos conflitantes– Fatores políticos podem influenciar os requisitos do sistema– Ambientes econômicos e de negócios são dinâmicos
• requisitos mudam durante o processo de análise
• novos requisitos podem surgir (novos stakeholders)
![Page 41: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/41.jpg)
Elicitação de Requisitos
Atividades do Processo:– Compreensão do domínio– Coleta de requisitos– Classificação– Resolução de conflitos– Definição de Prioridades– Verificação de requisitos
![Page 42: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/42.jpg)
Compreensão do Domínio
Os analistas devem desenvolver sua compreensão do domínio da aplicação– se estiver desenvolvendo um sistema de supermercado deverá descobrir
como este funciona– utilizar técnicas para descobrir este funcionamento– aprender a linguagem do usuário
• elaborar um Glossário
![Page 43: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/43.jpg)
Coleta de Requisitos
Interagir com stakeholders para descobrir os requisitosA coleta de requisitos é feita através de técnicasOs requisitos são simplesmente documentados à medida que são coletados– resulta em documento preliminar (draft)
![Page 44: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/44.jpg)
Classificação dos Requisitos
Consiste basicamente em agrupar os diversos requisitos coletados em categorias bem-definidasClassificação: – Funcional
Ex.: Deve ser possível consultar o preço de uma mercadoria
– Não FuncionalEx.: A consulta deve retornar uma resposta em no máximo 5s
– InversosEx.: O sistema não fará controle de estoque.
![Page 45: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/45.jpg)
Resolução de Conflitos
É normal que ocorram requisitos conflitantesPor exemplo– R-23: O sistema deve ...– R-45: O sistema não deve ...
Cliente é o responsável por resolver conflitos e ambigüidades
![Page 46: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/46.jpg)
Atribuição de Prioridade
Alguns requisitos são mais urgentes que outrosÉ essencial determinar a prioridade dos requisitos junto ao clienteRequisitos de maior prioridade são considerados em primeiro lugar
![Page 47: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/47.jpg)
Prioridade
Requisitos podem ser agrupados em classes, por exemplo: – Essenciais– Importantes– Desejáveis
Em princípio, o sistema deve abranger todos os requisitos de essenciais para desejáveis
![Page 48: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/48.jpg)
Exemplo de Prioridade
A consulta ao extrato bancário deve retornar dados do movimento até o dia anterior– Prioridade: Essencial
A consulta ao extrato bancário deve visualizar dados segundo padrão X– Prioridade: Importante
A consulta ao extrato bancário deve usar cores vermelhas para saldos negativos– Prioridade: Desejável
![Page 49: O processo de Engenharia de Requisitos](https://reader036.vdocuments.site/reader036/viewer/2022081513/568147b5550346895db4fa0a/html5/thumbnails/49.jpg)
Verificação de Requisitos
Os requisitos são verificados– Completos?– Consistentes?– Em concordância com o que os stakeholders desejam?