Análise e Gerenciamento de
Requisitos com Casos de Uso
Módulo 2
Introdução ao Gerenciamento de
Requisitos com Caso de Uso
Objetivos
• Definir os conceitos-chave da gerência de requisitos.
• Identificar os fatores que contribuem para o sucesso ou
falha do projeto.
• Descrever como o Gerenciamento de Requisitos
aumenta as chances de sucesso do projeto.
• Definir as qualidades de um conjunto de requisitos.
– verificável, rastreável, não ambíguo.
• Conhecer o Workflow de gerência de requisitos com
UP, papéis, e artefatos.
Algumas situações familiares…
Nós construímos
tudo o que vc pediu!
Certo, mas
não é o que
eu quero
Hummm...
Eu acho que
ele faz desse
jeito!
Por que vc não
nos disse que
queria aquela
funcionalidade?
Você não
perguntou!
Eu tive uma idéia para uma
função nova, você deixa a
gente colocá-la no sistema?
Sem problema!
Visão Geral
Domínio do
Problema
Problem
Problema
Necessidades
Características
Requisitos de
Software
Procedimentos de
Teste
Sistema a
ser
construído
Domínio da
Solução
Rastreabilidade
Design
Docs do
usuário
Definições
• Requisitos
– Uma necessidade do processo de negócio que o
sistema deverá sanar.
• Gerenciamento de Requisitos
– Uma abordagem sistemática para:
• Detalhar, organizar, e documentar requisitos.
• Estabelecer e manter acordos entre cliente / usuário e
equipe de projeto nas requisições de mudanças.
• Controlar e registrar a evolução do atendimento aos
requisitos.
O que Requisitos de Software especificam?
Entradas
Sistema
Saídas
Restrições de Design
Funções
Requisitos não
funcionais
(Ex.: Performance)
(Ex.: Ambientes)
Definições
Requisições do Stakeholder
Expressam as características e restrições do produto de software do ponto de vista
de satisfação das necessidades do steakholder.
Característica
Um serviço externamente observável, diretamente no sistema, que atende a um ou
mais requisições do stakeholder.
Requisitos de Software
Requisito Funcional
Descrição das funções que os steakholders precisam que o software faça.
Definem a funcionalidade desejada do software.
Requisito não funcional
Qualidades técnicas globais de um software, como manutenibilidade,
usabilidade, desempenho e várias outras. Normalmente são descritos de maneira
informal, controversa, e são difíceis de validar.
Restrição
Uma limitação no design do sistema ou nos processos usados para construir o
sistema.
Exemplo: Sistema de Matrícula
Requisição do Stakeholder
 Precisa de menor despesa geral no registro.
 Professores precisam de acesso imediato a grade de aulas.
Característica
Uma árvore de navegação para visualizar a grade de aulas, por
semestre e por turma.
Requisito de Software
Funcional
O caso de uso começa quando o estudante seleciona a opção
de menu “Matricular”. O sistema apresenta uma lista de cursos
disponíveis…
Não-Funcional
Disponibilidade de 99% dos 24/7(3.65 dias off-line por ano)
Restrição
Opera no Main Frame DEC VAX da Universidade.
Caracterização das Definições
Tipos de
Requisitos
Requisitos de
Software
Características
Requisições
do Stakeholder
Restrições de
Design
Requisitos
Funcionais
Requisitos não
funcionais
Based on Leffingwell &
Widrig, 1999
Requisitos existem em vários níveis
O que
Como
O que
Como
Necessidades do
Stakeholder
Características do Produto ou
Sistema
Requisitos de Software
O que
Como
Especificação de Design
Procedimentos de Teste
Planos de Documentação
Gerência de Requisitos Não é Fácil
• Requisitos:
– Nem sempre são óbvios.
– Vêm de várias fontes.
– Nem sempre é fácil de expressar claramente em
palavras.
– São inter-relacionados e relacionados a outras
entregas do processo de desenvolvimento de
software.
– Tem propriedades únicas.
– Mudam.
– São difíceis de controlar quando em grande
número.
Gerenciamento Requer Estratégia
RM Plan
Gerenciamento Efetivo de Requisitos
• Manter um claro estabelecimento dos requisitos requer:
– Boa qualidade dos requisitos
– Atributos aplicáveis para cada tipo de requisito
– Rastreamento para outros requisitos e outros artefatos do
projeto
O OBJETIVO é entregar produtos de qualidade, no
tempo e no orçamento, que atendam às reais
necessidades do usuário.
O que é um “Produto com Qualidade” ?
• Qualidade: Velhos Conceitos
– Satisfaz os documentos de requisitos.
– Passa nos testes de sistema.
– Adere ao processo de desenvolvimento.
 Paradigma baseado em atividades
• Qualidade: Conceitos Modernos
– Entende todas as necessidades do usuário.
– Continuamente revisa todos os artefatos para
garantir que atendem às necessidades.
 Paradigma baseado em Resultados
Dimensões de Qualidade
Componentes do FURPS+
F unctionality
Conjunto de características, segurança,
e requisitos em geral
U sability
Fatores humanos, estéticos,
consistência, documentação
R eliability
(Confiabilidade) Frequência / severidade
da falha, recuperabilidade,
previsibilidade, MTBF (Mean Time Between Failures )
P erformance
Velocidade, uso de recursos,
processamento, tempo de resposta
S upportability
Testabilidade
Extensível
Adaptabilidade Manutenível
Compatibilidade Configurável
Disponibilidade Instalável
Localizável
Robustez
“No Prazo e No Custo”
Quanto de
trabalho nós
podemos fazer?
Recursos
Escopo
Scope
Scope
Scope
Orçamento
Tempo
Atendendo às reais necessidades do cliente
Como sabemos quais são as necessidades?
Característica 1: O sistema deve...
Característica 2: O sistema deve
Característica 3: O sistema deve
Característica 4: O sistema deve
Característica 5: O sistema deve
Característica n: O sistema deve…
Como determinar prioridade?
O que é um baseline?
Tempo
Data de Início
do Projeto
Data-Alvo do
Lançamento
Possibilitar acordo entre os envolvidos
O Objetivo
Cliente
Grupo de Usuários
Sistema a ser
construído
Verificação
Requisitos
Objetivos de
sistema
Requisitos
Quais fatores contribuem para o sucesso do Projeto?
Os Dez Motivos
1. Suporte da Gerência
Executiva
Fatores de Sucesso
 28% dos projetos completados no
prazo e custos.
 49% dos projetos ultrapassam
as estimativas iniciais.
- Tempo estoura em média 63%.
- Custo ultrapassa em média 45%.
 23% dos projetos são cancelados
antes de sua conclusão.
2. Envolvimento do Usuário
3. Gerente experiente
4. Objetivos Negociais claros
5. Escopo controlado
6. Infra de Software
padronizada
7. Requisitos básicos firmes
8. Uso de métodos formais
9. Estimativas confiáveis
10. Outros aspectos
Standish Group, ‘99 (www.standishgroup.com)
Tamanho é importante
Sucesso pelo Tamanho do Projeto
60
50
Taxa de
Sucesso
(%)
Menos de $750K
$750K a $1.5M
$1.5M a $3M
$3M a $6M
$6M a $10M
Mais de $10M
40
30
20
10
0
Tamanho do Projeto ($)
Standish Group, ‘99 (www.standishgroup.com)
O alto custo dos Requisitos Errados
A regra do 1-10-100
Em tempo de Requisitos
“Os resultados
Design
mostram como
2.5
corrigir erros
Codificação
5
encontrados nos
Teste Unitário
10
requisitos custa até
200 vezes menos do
Teste de Aceitação
25
que em estágios mais
Manutenção
100
avançados do ciclo de
vida”
Custo relativo para reparar erros:
.5 - 1
Quando Introduzidos X Quando reparados.
Boehm 1988
Ajuda para Projetos serem bem sucedidos
• Análise dos Problemas
– Entender o Problema.
– Obter o entendimento com os stakeholders.
– Estabelecimento claro dos objetivos de negócio.
• Elicitação de Requisitos
– Identificar quem utilizará o sistema (atores).
– Elicitar como o sistema será usado (casos de uso).
• Gerenciamento de Requisitos
– Especificar os requisitos de forma completa.
– Gerenciar expectativas, mudanças, e erros.
– Controlar quebra de escopo.
– Listar todos os membros da equipe.
Qualidades do Conjunto de requisitos de software
• Correto
– É a descrição correta sobre o que o sistema deve
fazer.
• Completo
– Descreve todos os requisitos significantes para o
contexto do negócio e do usuário.
• Consistente
– Não está em conflito com outros requisitos.
• Não ambíguo
– Está sujeito a apenas UM entendimento.
Leffingwell & Widrig (1999). IEEE 830-1993, § 4.3.2, 1994
Qualidades do Conjunto de requisitos de software
• Verificável
– Pode ser testado sem grandes custos.
• Classificável por importância e estabilidade
– Pode ser classificado por importância para o cliente e
estabilidade do requisito em si.
• Modificável
– Mudanças não afetam a estrutura do todo.
• Rastreável
– A origem de cada requisito pode ser apontada.
• Claro
– Compreendido por usuários e desenvolvedores.
Leffingwell & Widrig (1999). IEEE 830-1993, § 4.3.2, 1994
Qualidades de um Requisito:
Verificável
• Um requisito é verificável se:
– É algo finito, em que uma pessoa ou máquina (com custo
viável) pode checar se o produto atende ao requisito
definido junto ao usuário.
- O sistema suporta acima de 1000 usuários simultâneos.
- O sistema deve responder a qualquer consulta em 500ms.
- A cor deve ser um agradável verde sombreado.
- O sistema deve estar disponível em 24 x 7.
- O sistema deve exportar visões dos dados em formato texto,
separado por vírgula de acordo com o leiaute...
Estes requisitos são verificáveis?
Se não, qual o melhor modo de definí-los?
IEEE 830-1993, §
4.3.2, 1994
Qualidades de um requisito:
Rastreável
Requisições do Stakeholder
Características
Casos de Uso
Suplementar
Qualidades de um Requisito:
Não ambíguo
• O requisito é não ambíguo se tiver apenas uma
interpretação.
“A deve ir de B para C”
“A deve ir de B para C”
“A deve ir de B para C”
ref - IEEE 830
O que NÃO é um Requisito?
Design
Verificação
Dados de
Projeto
Como realizar os requisitos.
O Modelo de Design especifica componentes de um
sistema ou suas interfaces com outros sub-componentes.
Como saber se os requisitos
estão sendo atendidos.
Um caso de teste especifica uma forma de testar um
cenário de caso de uso.
Quando os requisitos atendem.
O Plano de desenvolvimento de software especifica
cronograma, planos de verificação e validação, e planos de
gerenciamento de configuração.
Adapted from Alan Davis
Artefatos Usados para Gerenciar Requisitos
Onde o problema é definido?
Visão
Onde os stakeholders e usuários são listados?
Onde os ambientes e plataformas são identificadas?
Onde os requisitos não funcionais
estão localizados?
Onde os casos de uso são mantidos?
Especificação
Suplementar
Especificações de
Caso de uso
Onde o vocabulário comum está descrito?
Onde as Necessidades e Requisições
dos stakeholders são capturadas?
Glossário
Requisições do
Stakeholder
Revisão: Introdução ao RMUC
1.
2.
3.
4.
5.
6.
7.
8.
9.
O que é um Requisito?
O que é Gerenciamento de Requisitos?
Que fatores contribuem para o sucesso do projeto?
Quais membros da equipe são envolvidos na
Gerência de Requisitos e como?
Saberia explicar a regra de 1-10-100?
Quais são algumas das qualidades dos requisitos?
Quais são alguns dos tipos de requisitos nãofuncionais?
Por que usar UML?
Por que usar um processo de desenvolvimento?
Download

Requisito A