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
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
A Gerência do Processo de Desenvolvimento
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
Ciclo de Vida
Cascata
Evolucionário
Formal
Orientado a Reuso
Espiral
Incremental
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
Cascata
Engenharia
de Sistemas
Análise
Projeto
Codificação
Teste
Manutenção
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
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
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
Evolucionário
Especificação
Descrição do
Esboço
Desenvolvimento
Validação
Versão
Inicial
Versões do
Descrição
Intermediárias
Esboço
Versão
Final
Evolucionário
Produz sistemas que atendem as necessidades imediatas
do cliente
Problemas
– 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
Início
Evolucionário
Definição de
Requisitos e
Refinamento
Fim
Produto
Final
Projeto
Rápido
Refinamento
do protótipo
Construção do
Protótipo
Avaliação do
Usuário
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 de
Requisitos
Especificação
Formal
Transformação
Formal
Testes
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
Orientado a Reuso
Ampla base de componentes reusáveis
Infra-estrutura de integração
Etapas:
– 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
Iteração de processo
Existe a necessidade de utilizar diferentes
abordagens para diferentes partes do
sistema
Partes do processo são repetidas enquanto
os requisitos evoluem
Modelos Híbridos
– Apóiam a iteração do processo
– Desenvolvimento Espiral
– Desenvolvimento Incremental
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
Modelo Espiral
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 Cliente
Volta ao Planejamento
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, obtendose resultados de médio e curto prazo sem
se descuidar do objetivo final
Uma interação
Enfoque Incremental
Requisitos
Requisitos
Design
Design
Codificação
Codificação
Testes
Testes
Implantação
tempo
Implantação
Desenvolvimento Incremental
O Processo de Desenvolvimento RUP está
em conformidade com o Desenvolvimento
Incremental.
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 requerida
Requisitos dos usuários são priorizados e os requisitos de
mais alta prioridade são incluídos nas iterações iniciais
Uma vez que o desenvolvimento de um incremento é
iniciado, os requisitos são "congelados“, embora possam
continuar a evoluir para incrementos posteriores
Desenvolvimento Iterativo e Incremental (RUP)
Engenharia de Requisitos
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
3. Documentar
2. Analisar
4. Verificar
É chamado de
Engenharia de
Requisitos
Engenharia de Requisitos
Engenharia de Requisitos
O processo de estabelecer as funções que um
cliente requer de um sistema e as restrições
sob as quais ele deve funcionar e ser
desenvolvido
Os requisitos são descrições das funções e
restrições que são geradas durante o processo
de engenharia de requisitos
Atividades de Engenharia de Requisitos – Recursos
Humanos
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.
Elicitação dos Requisitos de Negócio
Necessidades





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
Regras de
Negócio
Glossário
Analista de
Negócios
Documento de Visão
Especificação e Modelagem de Requisitos
Regras de
Negócio




Glossário
Documento de Visão
Elicitar Requisitos de Produto
Especificar casos de uso e validá-los
Especificar requisitos não funcionais
Analisar e validar os requisitos
Casos de Uso e
Esp. Suplementar
Plano e
Casos de Teste
Analista de
Requisitos
Requisitos
p/ Inspeção
Verificação e Validação dos Requisitos
Casos de Uso e
Esp. Suplementar




Plano e
Casos de Teste
Requisitos
p/ Inspeção
Verificar conflitos de requisitos
Verificar consistência de requisitos
Verificar completude de requisitos
Verificar existência de requisitos ambíguos
Inspetor
 Garantir a rastreabilidade dos requisitos
 Validar requisitos com o cliente
Analista de
Requisitos
Especificação de
Requisitos Atualizada
Resultado dos
Casos de Teste
Rastreabilidade e Gestão de Mudanças
Necessidade
Solic. Mudança





Avaliar o impacto nos requisitos
Validar com o cliente
Notificar os envolvidos
Atualizar as especificações de requisitos
Garantir a rastreabilidade nos requisitos
Especificação de
Requisitos Atualizada
Documento de Visão
Atualizado
Analista de
Negócios
Analista de
Requisitos
Elicitação de Requisitos
Elicitação dos Requisitos de Negócio
Necessidades





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
Regras de
Negócio
Glossário
Analista de
Negócios
Documento de Visão
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
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, ...
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)
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
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
Coleta de Requisitos
Interagir com stakeholders para descobrir
os requisitos
A coleta de requisitos é feita através de
técnicas
Os requisitos são simplesmente
documentados à medida que são coletados
– resulta em documento preliminar (draft)
Classificação dos Requisitos
Consiste basicamente em agrupar os diversos requisitos
coletados em categorias bem-definidas
Classificação:
– Funcional
Ex.: Deve ser possível consultar o preço de uma mercadoria
– Não Funcional
Ex.: A consulta deve retornar uma resposta em no máximo 5s
– Inversos
Ex.: O sistema não fará controle de estoque.
Resolução de Conflitos
É normal que ocorram requisitos
conflitantes
Por exemplo
– R-23: O sistema deve ...
– R-45: O sistema não deve ...
Cliente é o responsável por resolver
conflitos e ambigüidades
Atribuição de Prioridade
Alguns requisitos são mais urgentes que
outros
É essencial determinar a prioridade dos
requisitos junto ao cliente
Requisitos de maior prioridade são
considerados em primeiro lugar
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
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
Verificação de Requisitos
Os requisitos são verificados
– Completos?
– Consistentes?
– Em concordância com o que os stakeholders desejam?
Download

Elicitação de Requisitos