Curso de Requisitos
Módulo 03: Requisitos de Software
Requisitos de Software, Técnicas de
Levantamento, Identificação dos Problemas,
Necessidades e Principais Artefatos
Introdução à Gerencia de Requisitos: Visão Geral
Problem
Problema
Domínio do
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
–A condição ou capacidade que o sistema
deve possuir.
• 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.
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
Uma expressão independente de solução de um estado desejado pelo
stakeholder da solução ou sujeito ao domínio.
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
Um requisito que especifica, de uma perspectiva caixa-preta, como
uma solução que interage com o mundo externo.
Requisito não funcional
Um requisito que expressa, de uma perspectiva caixa-preta, os
atributos de qualidade da solução.
Restrição
Uma limitação no design do sistema ou nos processos usados para
construir o sistema.
Exemplo de um Sistema de Registro em Curso
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 de visualizar a grade de aulas, por semestre
e por turma.
Requisito de Software
Funcional
O caso de uso começa quando o estudante seleciona o comando
“register for course”. 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 porque…
• Requisitos:
–Nem sempre são óbvios.
–Vem de várias fontes.
–Nem sempre é fácil de expressar claramente em
palavras.
–São interelacionados e relacionados a outras
entregas do processo de desenvolvimento de
software.
–Tem propriedades únicas ou valores de
propriedade.
–Mudam.
–São difíceis de controlar quando em grande
número.
Gerenciamento Requer Estratégia
RM Plan
RUCS10:
RM Plan
Gerenciamento de Requisitos efetivo
• 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
As 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
Frequência/severidade da falha,
recuperabilidade, previsibilidade,
acurária, MTBF
P erformance
Velocidade, uso de recrusos, throughput,
tempo de resposta
S upportability
Testabilidade
Extensível
Adaptabilidade Manutenível
Compatibilidade Configurável
Disponibilidade Instalável
Localizável
Robustez
On Time and On Budget
Quanto de
trabalho nós
podemos fazer?
Recursos
Escopo
Scope
Scope
Scope
Orçamento
Tempo
Atendendo as 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 6: O sistema deve
Característica 7: 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 um acordo entre os
envolvidos
O Objetivo
Cliente
Grupo de Usuários
Sistema a ser
construído
Verificação
Requisitos
Objetivos de
sistema
Requisitos
Adapted from Al Davis
Quais fatores contribuem para o
sucesso do Projeto?
Os Dez Motivos
1. Suporte da Gerência
Fatores de Sucesso
Executiva
2. Envolvimento do Usuário
 28% dos projetos são completados
3. Gerente experiente
no orçamento e prazo.
4. Objetivos Negociais claros
 49% dos projetos ultrapassam
5. Escopo controlado
as estimativas iniciais.
6. Infra de Software
padronizada
- Tempo estoura em média 63%.
- Custo ultrapassa em média 45%. 7. Requisitos básicos firmes
8. Uso de métodos formais
 23% dos projetos são cancelados
9. Estimativas confiáveis
antes de sua conclusão.
10. Outros aspectos
Standish Group, ‘01 (www.standishgroup.com)
Tamanho é importante
Sucesso pelo Tamanho do Projeto
60
50
Taxa de
Sucesso
(%)
less than $750K
$750K to $1.5M
$1.5M to $3M
$3M to $6M
$6M to $10M
Over $10M
40
30
20
10
0
Standish Group, ‘99 (www.standishgroup.com)
Project Size ($)
O alto custo dos Requisitos Errados
A regra do 1-10-100
.5 - 1
2.5
5
10
25
100
Em tempo de Requisitos
Design
Codificação
Teste Unitário
Teste de Aceitação
Manutenção
Custo relativo para reparar erros:
Quando Introduzidos X Quando reparados.
“All together, the
results show as
much as a 200:1
cost ratio between
finding errors in the
requirements and
maintenance stages
of the software
lifecycle.”
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.
Envolvendo toda a Equipe com
os Requisitos
• Desenvolvedores, Testadores, e Autores
–Ajuda a desenvolveder as práticas de
gerenciamento de requisitos.
–Monitora a aderência às boas práticas.
–Verifica o processo de elicitação.
–Documenta requisitos.
–Participa das revisões sobre os requisitos.
–Participa como membro do Comitê de Controle
de Mudanças (CCM).
–Revisa as matrizes de rastreabilidade.
–Verifica qualidade, testabilidade, e completude.
O resultado é pior quando a
qualidade é baixa
?
?
?
?
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.
Qualidades do Conjunto de
Requisitos (cont.)
• 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 IEEE.
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?
Como realizar os requisitos.
Design
O Modelo de Design espefica componentes de um
sistema ou suas interfaces com outros subcomponentes.
Como saber se os requisitos
estão sendo atendidos.
Verificação
Um Test Suite contém um conjunto de scripts de teste e
logs de teste.
Quando os requisitos atendem.
Dados de
Projeto
O Plano de desenvolvimento de software especifica
cronograma, planos de verificação e validação, e planos
de gerenciamento de configuração.
RUP: Um Framework para
Gerência de Requisitos
Disciplina de Requisitos:
Detalhes do Workflow
Papéis e Artefatos
Quais artefatos são usados
Onde o problema é definido?
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?
Onde o vocabulário comum está descrito?
Onde as Necessidades e Requisições
dos stakeholders são capturadas?
Visão
Especificação
Suplementar
Especificações de
Caso de uso
Glossário
Requisições
do
Stakeholder
Onde estamos na disciplina de Requisitos?
Análise do Problema: Atividades e Artefatos
Análise do Problema
• É o processo de entender os problemas
do mundo real, e como eles se relacionam
com as necessidades dos stakeholders, e
propor soluções para atender a estas
necessidades.
• Qual o objetivo da Análise de Problemas?
–Ter um melhor entendimento antes de
começar o desenvolvimento.
–Identificar as causas-raiz.
–Ajudar na identificação da solução.
• Evitar o: “Sim, mas…”
–Minimizar o trabalho extra.
Qual o problema
real?
Definição do Problema
Um problema pode ser definido como uma
diferença entre as coisas como são percebidas e
como são desejadas.
(Problema)
Percebido
Desejado
Passos para a Análise do Problema
• Identificar os stakeholders.
• Entender as causas-raiz.
• Chegar a um entendimento sobre os
problemas.
• Identificar as restrições do sistema e do
projeto.
• Identificar e validar a solução em relação as
causas-raiz.
• Definir a fronteira (escopo) do sistema.
Roadmap da Análise de Problemas
Problema
de
Negócio
Identifique stakeholders para o
problema.
Análise da Causa-Raiz.
Problema de Negócio
Definido
Idéia de
Solução ou
Oportunidade
Problema Atual
identificado e definido
Entendimento dos
Problemas no
Contexto dos
Objetivos de Negócio.
Problema validado/ajustado
Escolher as melhores
soluções para alcançar os
objetivos.
Reavaliar qual é a melhor
idéia de solução.
Melhor solução
identificada
Expandir a lista de
soluções do
stakeholder.
Elicitar
Requisitos
Stakeholders: Definições
• Stakeholder
–Um indivíduo que é materialmente afetados
por uma saída do sistema ou do projeto que
está produzindo o sistema.
• Representante do Stakeholder
–Um stakeholder representa um ou mais
stakeholders. Eles estão diretamente
envolvidos na direção, concepção, e no
escopo do projeto.
Identificar os Stakeholders
• Cada grupo de stakeholders precisa de um
representante.
• Nem todos os grupos de stakeholders
precisam ser consultados.
–Vários irão fornecer os requisitos.
• Clientes, usuários, administradores do sistema
–Vários podem não fornecer requisitos.
• Acionistas da empresa
Quem destes são stakeholders nos seus projetos?
Descrever Stakeholders no
Documento de Visão
Stakeholder
Representante
Descrição
Tipo
Responsabilidades
Critério de
Sucesso
Envolvimento
Entregas
Comentários/
Preocupações
Digitador
Kelly Hansen
Usuário
O digitador é tipicamente um técnico com conhecimentos
em informática. O digitador é treinado e experiente no uso
do atual sistema batch de registro.
O digitador é responsável por administrar o cadastro de
cursos para cada período letivo. Isto inclui a supervisão
administrativa e de permissão de acesso aos dados.
Conseguir manter o banco de dados de estudantes e
professores, e abrir/fechar cursos para matrícula.
A responsabilidade primária dos digitadores será manter o
banco de dados de estudantes e professores, e
abrir/fechar cursos para matrícula.
Também será requerido da área de matrículas….
Gestor de Revisão – especialmente nas funcionalidades
requisitadas pela área de Matrículas.
Nenhum
Quais problemas estão por trás
dos problemas?
Técnicas do Diagrama de Espinha de Peixe
Problema de
negócio que foi
percebido.
Clientes
insatisfeitos
com nossos
serviços.
Liste as causas que contribuem para o problema detectado.
Continue perguntando “Por que?” (expanda cada raia).
Análise do Problema – Validando a solução
Técnicas do Diagrama de Espinha de Peixe
Solução
percebida para
os problemas.
Mais Máquinas
de Auto
Atendimento.
Liste as razões que justificam a solução.
Continue perguntando “Por que?” (expanda cada raia).
Foco nos que mais contribuem – Lei de
Pareto
20% do esforço
originam em 80%
de benefício.
Benefício
80%
20%
Esforço
Classifique por ordem. Use a regra do 80-20 para focar nas principais
causas responsáveis pelas grandes porções de problema.
Compreender o contexto maior
do problema
• A falta de entendimento do negócio e seus
objetivos aumenta o risco.
• O problema está em algum componente
do processo/empresa?
• A equipe entende qual o domínio do
problema?
• A solução do problema cria oportunidades
de melhoria do processo?
Disciplinas de Modelagem de
Negócio e Requisitos
Modelagem de Negócio
Requisitos
Modelos de Negócio
• Modelo de Organização estrutural e
dinâmico.
–Processos de Negócio
–Estrutura Organizacional
–Papéis e responsabilidades
•
•
•
•
 Produtos
 Entregas
 Eventos
Visualize a organização e seus negócios.
Ajude a entender os problemas atuais.
Identifique potenciais melhorias.
Derive e valide os requisitos de sistema
necessários à Organização.
Descrever o problema no Documento de Visão
Definição do
Problema
Requisições
do
Stakeholder
Documento de
Visão
Modelo de
Caso de Uso
Especificações de
Design
Especificação
Suplementar
Especificações de
Manual do Usuário
Documento de Visão
• As mesmas informações para gerência,
marketing, e equipe de projeto.
• Fornece o feedback inicial do cliente.
• Promove uma compreensão única do
produto.
• Define escopo e prioridade em alto-nível
das requisições do stakeholder e suas
características.
• Um documento em nível de sistema que
descreve o “que” e “porquê” do produto.
Visão
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Estrutura do Documento de
Visão
Introdução
Posicionamento
Descrições do Stakeholder e Usuário
Visão Geral do Produto
Características do Produto
Restrições
Faixas de Qualidade
Precedência e Prioridade
Outros Requisitos do Produto
Requisitos de Documentação
Anexo 1 – Atributos das Características
Obtendo o Entendimento do Problema
Descrição do Problema
O problema de
(descreva o problema)
afeta
(os stakeholders afetados pelo
problema)
O impacto disto é (qual o impacto do problema)
que
Uma solução de (listar vários benefícios-chave de
sucesso seria
negócio para uma solução de sucesso)
Visão
Identificar as Restrições
De ambiente
Econômicas
Políticas
Técnicas
Viabilidade
Sistêmicas
Identificar as melhores soluções
de negócio
• Identificar as várias soluções para os
problemas principais.
–Técnico, não-técnico, ou ambos.
• Escolher a que:
–Melhor resolve as causas-raiz.
–Suporta os objetivos de negócio.
• Obter os requisitos que permitem
implementar a solução.
Definir a fronteira da solução de
Outros
sistema
sistemas
Usuários
Novo Sistema
Manutenção
Comunicações
Sistemas
Legados
Relatórios
Atores ajudam a definir a fronteira do sistema
Fronteira do sistema?
PC
PC
Servidor
Servidor
PC
PC
PC
Usuário
Quem é o ator? Os módulos do
sistema ou o usuário?
Capturando o Vocabulário comum do sistema
• Definir os termos usados no projeto.
• Ajudar a previnir mal-entendidos.
Capturar o Vocabulário Comum
• Começar o mais cedo possível.
• Continua durante todo o projeto.
Glossário
Visualize o Glossário como um
modelo de Domínio
Cliente
1..2
1..* Acao Cliente. 1
Transacao geral
*
Limite Credito
Transacao
Transferencia
Entender Necessidades: Atividades e
Artefatos
Quais são as fontes de Requisitos?
Especif. de Requisitos
Modelo de Negócio
Planos de Negócio
Objetivos Pessoais
Parceiros
Cliente
Usuários
Requisições Iniciais
Relatórios de Erro
Mudanças de Requisito
Analista
Domínio do
Problema
Visitas ao Site
Experts no Negócio
Analistas de Mercado
Infos Competitivas
Como é o Processo?
Requisitos Ad-hoc vindos de um cliente
Cliente
Especificação de Requisitos
Rejeitado pelo cliente
Especificação corrigida
Rejeitada Novamente
Especificação corrigida
Aprovado pelo Cliente
Membro
do Projeto
Quais problemas podem ser encontrados?
• Stakeholders
– Tem uma idéia pré-concebida da solução.
– Não sabem exatamente o que querem.
– Não conseguem articular o que querem.
– Pensam que sabem o que querem, mas não
reconhecem o que sugeriram quando da entrega.
• Analistas
– Eles acham que entendem mais
sobre os problemas do usuário
do que o próprio usuário.
??
• Todo mundo
– Todo mundo vê as coisas sob
seu ponto de vista.
– Todo mundo é
politicamente motivado.
Stakeholder
Analista
Expressando as Requisições do Stakeholder
STRQ
STRQ
O Artefato de Requisição do Stakeholder
• Vem dos stakeholders.
• Tem todas as requisições do
stakeholders.
• É consolidado de várias fontes.
Requisições do
Stakeholder
– E-mail, especificação de requisitos do
cliente, guardanapos, quadro branco,
planilhas, e etc.
• Usados pelos membros do projeto
para criar requisitos e
funcionalidades do sistema.
• Pode conter referências para
qualquer tipo de fonte externa.
Documento
de Visão
Modelo de
Caso de Uso
Espec.
Design
Esp.
Supl.
Docs do
Usuário
Técnicas para Elicitar Requisições do
Stakeholder
• Revisar especificações de requisitos do
cliente
• Workshop de Requisitos
•
•
•
•
•
–Workshops de Casos de Uso
–Brainstorming e redução de idéias
Entrevistas
Questionários
Role playing
Protótipos
Storyboards
Revisar as Especificações do
Cliente
• Identificar Requisitos.
–Reconhecer e rotular:
• Comportamentos da Aplicação
• Atributos comportamentais
• Questões e Suposições
• Perguntar ao cliente.
Revisão dos Requisitos
Brainstorming
• Produza o maior número de idéias
possíveis.
Regras do Brainstorming
 Esclareça o objetivo da sessão.
 Gere o maior número de idéias
possíveis.
 Deixe a imaginação voar.
 Não permita críticas ou debates.
 Mescle idéias.
Brainstorming: Vantagens e
Desvantagens
• Vantagens
–Usado a qualquer tempo, em qualquer lugar.
–Bom para grupos.
–Bom para coisas de alto-nível e
pressuposições.
–Bom para algum nível de automação.
• Desvantagens
–Se aplica mais a processos em grupo.
–Não sistemática na forma “clássica”.
Redução de Idéias: Podar e
organizar
Afine Diagramas
Redução de Idéias: Priorize Idéias
• Priorize idéias restantes.
–Vote
• Votos cumulativos
– Compre idéias
• Voto único
–Aplique avaliações
– Critério
• Não ponderado
• Ponderado
Rational University “bucks”
Definição do Sistema: Atividades e Artefatos
Posicionamento do Produto
• Comunica a intenção e importância.
Para
(cliente alvo)
Que
O (nome do
produto)
(declare oportunidade e necessidade)
Que
(estabeleça os benefícios, que levaria a
investir no produto)
É um (tipo de produto)
Diferentemente (concorrente)
Nosso
(diferença para o concorrente)
produto
Dica: Use declaração do problema como ponto de partida.
Capture os Requisitos de Software
Requições do
Stakeholder
Requisições de
Stakeholders
Requisições Chave
do Stakeholder
e Características
Documento de
Visão
Requisitos
de Software
Modelo de CSU
Especificação de
Projeto
Especificação
Suplementar
Especificações de
Documentação do
Usuário
Passos para criar o Modelo de Casos de Uso
1. Identifique atores e casos de uso.
- Descrição Breve.
2. Rabisque cada caso de uso.
- Fluxo básico de Eventos.
- Fluxos alternativos.
3. Detalhe cada caso de uso.
- Detalhe os fluxos de eventos.
- Estruture cada fluxo do CSU.
- Adicione Detalhes.
Condições Pré e Pós, requisitos especiais, relacionamentos,
diagramas de caso de uso, e etc.
Exemplo de Diagrama
Efetuar
Negociação
Conta
Gerenciar
Portfolio
Rede
Financeira
Sistema de
Cotações
Obter
Cotação
Executar
Negociação
Cliente de
Negociação
Sistema de Negociação
na Bolsa
Distribuir
Notícias
Sistema de Notícias
Operador
Rever Conta
Agendador
Esboço de cada caso de uso
Nome do Caso de Uso
Numerar
os passos
Descrição Breve
Fluxo Básico
1. Primeiro Passo
2. Segundo Passo
3. Terceiro Passo
A1 Fluxo Alternativo 1
A2 Fluxo Alternativo 2
A3 Fluxo Alternativo 3
Estruturar
o fluxo em
passos
Porque esboçar casos de uso?
Esboço
Tamanho do Caso de Uso
Muito Peq.? Muito Grande?
É mais de um
caso de uso?
?
?
Caso de Uso
?
Esboçar ajuda a identificar
fluxos alternativos
Fluxo de Eventos (Básico e
Alternativo)
• Um fluxo básico
–Cenário do Caminho Feliz
–Cenário de sucesso do início ao fim.
• Vários fluxos alternativos
–Variantes regulares
–Casos ímpares
–Fluxos excepcionais (erros)
Fluxo: um conjunto de passos seqüenciais.
Representando fluxos básicos e
alternativos
Passo 1
A5
A2
Pas. 2
A1
A3
A4
Passo 3
Passo 4
<Nome do Caso de Uso>
1. Descrição Breve
2. Fluxo de Eventos
2.1 Fluxo Básico
Passo 1
Passo 2
Passo 3
Passo 4
2.2 Fluxos Alternativos
2.2.1 A1 …
2.2.2 A2 …
2.2.3 A3 …
2.2.4 A4 …
2.2.5 A5 …
O que é um cenário?
Fluxo
Cenário
Fluxo: um conjunto de passos sequenciais.
Caso de Uso: Um repositório com a descrição de todos os fluxos.
Cenário: Um conjunto ordenado de fluxos que vem do início do caso de uso
até seus pontos finais.
Capturando os cenários do Caso de Uso
• Capture os cenários na especificação de
caso de uso em sua própria seção.
• Dê um nome a cada cenário.
• Liste o nome de cada fluxo em cada
cenário.
–Coloque os fluxos em seqüência.
Exemplo do Cenário de Caso de Uso
Obter Cotação
Cenário “Conexão do servidor caiu.”
Fluxos: “Fluxo Básico,” “Sistema de Cotações Indisponível.”
Esboçe o fluxo de eventos
• Fluxo Básico
– Quais eventos iniciam o caso de uso?
– Como o caso de uso termina?
– Como o caso de uso repete um comportamento?
• Fluxos Alternativos
– Há situações não obrigatórias que ocorrem?
– O que pode acontecer de estranho?
– Quais variantes podem acontecer?
– O que pode estar errado?
– O que não pode acontecer?
– Que tipos de recurso podem ser bloqueados?
Desenho passo-a-passo: Obter Cotação
Fluxo Básico
1. O cliente se autentica.
2. O cliente requisita a obtenção de uma cotação.
3. O cliente seleciona o botão de negociação de ações.
4. O cliente obtêm a cotação desejada.
5. O sistema apresenta a cotação.
6. O cliente obtêm outras cotações.
7. O cliente sai do sistema.
Fluxos Alternativos
A1. Cliente de Ações não identificado.
A2. Sistema de Cotações indisponível.
A3. Sair.
Existem outras
alternativas?
Packages (Pacote): Organize o Modelo de CSU
Package
Raiz
Use-Case
Packages
Atores
Use Cases
Use-Case
Packages
Refinar a definição do sistema: Atividades
e Artefatos
O que são restrições de
projeto?
• Um requisito que se refere ao projeto e/ou
arquitetura do sistema é uma restrição de projeto.
– Distinguir de outros requisitos.
– Colocá-la em uma seção especial do Documento de
Requisitos.
– Identificar a fonte de cada uma.
– Documentar a razão de cada uma.
• Exemplos.
– Um algoritmo de uso obrigatório.
– O uso de um determinado produto de banco de dados.
– A linguagem de programação que deve ser usada.
O Dilema do O Que-Versus-Como
Questão: Como especificar um requisito de projeto?
Resposta: Depende de seu ponto de vista.
O homem
de cima
Éo
Homem do
outro
andar.”
Davis, 1993
O que
Como
O que
Como
O que
Como
Necessidades
Características
Casos de Uso
Espec. Técnica
Procedimentos Teste
Planos Documentação
Características levam a Requisitos de
Períodos de negocição Software
podem ser digitadas em
dias, semanas e meses.
Caract 63 – o sistema de
acompanhamento de defeitos
irá fornecer informações de
tendências para ajudar o
gerente de projeto a ter
conhecimento do andamento
Informações de tendências
serão apresentadas em um
gráfico de linhas
apresentando tempo em x, e
nº de defeitos em y.
Imprimir Relatório
de Status Gerente de
Operador
Projeto
Como especificar requisitos funcionais?
• Use os casos de uso e setenças declarativas.
– Ambos são necessários para entender um sistema de
complexidade relevante.
• Dê preferência a casos de uso, onde
apropriados.
+
Casos de Uso
O sistema pode …
O sistema deve …
O sistema deve ...
Sentenças Declarativas
Qual escolher?
E sobre requisitos que não
estão em Casos de Uso?
• Escreva uma sentença declarativa que não
esteja em caso de uso.
– Use uma palavra-chave que para ajudar na
identificação, por exemplo “deve.”
– Numere e dê um título a cada requisito.
– Agrupe requisitos relacionados.
• Use language the team easily understands.
– Use uma estrutura de setença simples.
• Adjetivo + Substantivo.
– Seja conciso e claro.
• Descreva o requisito em 1 a 3 sentenças.
• Torne o requisito completo.
– Use termos do glossário.
Requisitos Funcionais em
Sentenças Declarativas
• Alguns requisitos são mais fáceis de
entender em sentenças declarativas.
– Exemplo do sistema RU e-st
1. Localização:
SUPL120: O sistema RU e-st deve suportar a
apresentação de todas as mensagens e menus no
idioma escolhido pelo usuário a qualquer hora. Os
idiomas suportados devem ser Inglês, Espanhol,
Francês, Alemão, e Sueco.
Onde as sentenças declarativas
são especificadas?
• Se o requisito se aplicar ao caso de uso:
–Especifique no caso de uso
–Na seção “Requisitos especiais”
• O requisito se aplica a uma parte do
sistema:
–Especifique na Especificação Suplementar
Variações nos Requisitos Funcionais
O sistema com um
pequeno comportamento
externo observável.
O sistema com muito
comportamento externo
observável.
Por que detalhar casos de uso?
• Para especificar os requisitos de software.
–Criar a especificação que deve ser
implementada.
• Esclarecer detalhes importantes do fluxo de
eventos.
–O que um ator faz.
–Como o sistema deve responder ao ator.
–Quais informações são trocadas.
• Descrição de informação adicional.
–Pré-Condições
–Pós-Condições
Detalhe um caso de uso
1. Procure atores e casos de uso.
2. Detalhes do caso de uso.
Esboço
<Nome Caso de Uso>
1. Descrição Breve
2. Fluxo de Eventos
Fluxo Básico de Eventos
Fluxos Alternativos
3. Requisitos Especiais
4. Pré-Condições
5. Pós-Condições
6. Pontos de Extensão
7. Relacionamentos
8. Diagramas de Caso de Uso
9. Outros diagramas e itens
Adicione Detalhes
Detalhe o fluxo básico de eventos
Obter Cotação
1.1 Fluxo Básico
1. Cliente se autentica
O caso de uso se inicia quando o cliente se autentica.
O sistema valida login e senha do cliente.
O sistema apresenta uma lista de funcionalidades.
2. O cliente seleciona a função “Obter Cotação”
O cliente escolhe obter uma cotação.
O sistema apresenta uma lista de símbolos de cotação e nomes
de seguros.
3. O Cliente seleciona o seguro
O cliente seleciona de uma lista de seguros ou informa o
símbolo de seguro para a cotação.
4. O sistema obtêm a cotação do sistema de cotações
O sistema envia o símbolo de cotação para o Sistema de
Cotações, e recebe uma resposta do sistema de cotações.
O sistema apresenta a tela correspondente da cotação (veja em
campos apresentados na Especificação Suplementar) ao cliente.
Estruture o fluxo
em passos
Numere e dê
títulos a cada passo
Torne cada
passo um
conjunto de
eventos
Descreva passos
(completamente
e claramente)
Gerenciar Detalhes
Caixa preta
Caixa Branca
• Saber quem vai ler.
• Escreva para a caixa preta.
• Algum texto de caixa branca pode melhorar
o entendimento porque torna o caso de uso
mais concreto.
Estruturar os fluxos de caso de uso
• Organização interna do caso de uso.
–Melhora legibilidade.
–Torna os requisitos mais fáceis de entender.
• Documente os estilos aceitáveis nos
Guias de Modelagem de Casos de Uso.
Numeração e Referência Cruzada
Estilo do RUP
1. Customer Logs On
In Step 1, Customer Logs On, in
Estilo de Tag
{Trading Customer Logs on}
In {Trading Customer logs on},
Detalhe fluxos alternativos
Alternative
Flows
Fluxos
alternativos
Request Additional
A3 Requisitar
cotaçõesQuotes
adicionais
In Step
3, Customer
Gets Quote,
in the
if the
No
passo
3, Cliente obtêm
cotação,
no Basic
Fluxo Flow,
básico,
se o
customer
wantscotações
additional
quotes.
cliente
desejar
adicionais.
The
usede
case
at Step
3. 3.
O
caso
usocontinues
continua no
passo
Quit
A4 Sair
If at
any time
the Trading
Customer
decides to
quit.sair do
A
qualquer
tempo
o Cliente
de Negociações
pode
The use case ends.
sistema.
O caso de uso termina.
A5 Unknown Trading Symbol
Step 3, Customer
Gets Quote,
in the Basic Flow, if the
A5InSímbolo
de negociação
desconhecido
system
cannot
recognize
trading symbol,
the Básico,
system
No
passo
3, Cliente
obtêmthe
negociação,
no Fluxo
notifies
the Trading
Customerothat
the trading
symbol iso
se
o sistema
não reconhecer
símbolo
de negociação,
not recognizable.
sistema
notifica o ator que o símbolo não existe.
The
usede
case
at the
beginning
of 3.
Step 3.
O
caso
usocontinues
continua do
início
do passo
Descreva o que
Acontece
Localização
Condição
Ações
Resuma a
Localização
Evite Comportamento Condicional em série
• Torna os cenários difíceis de entender.
• Mais difícil de implementar e testar.
Prefira fluxos
alternativos.
Evite comportamento repetitivo em série
• Torna os cenários mais difíceis de identificar.
• Mais difícil de testar e implementar.
Prefira fluxos
alternativos.
Fluxos alternativos X Comportamento
Condicional em série
• Fluxos alternativos
– Prós
• Pode ser usado em qualquer lugar onde haja comportamento
condicional.
– REPITA-ATÈ, SE-ENTÃO-SENÃO-FIM-SE
• Torna os cenários fáceis de identificar.
– Isto ajuda a implementação e ao teste
– Contras
• Aumenta a complexidade de manter referências.
• Comportamento condicional em série
– Prós
• Mais de fácil de lidar nos fluxos com pequenas variações.
– Contras
• Difícil de identificar cenários, testar e implementar.
Visualizar comportamento
alternativo
Cliente
Sistema
Sis. Cotação
Sub-fluxos
• Melhora a clareza.
• Permite reuso intermo dos requisitos.
• Diferente dos fluxos alternativos, são
chamados explicitamente.
• Sempre retorna para a linha de onde foi
chamado.
Fluxos
Alternativos
Subfluxos
Exemplo de Subfluxo
Mantenha a interface do usuário
fora do caso de uso
• Texto não é bom para descrever tela.
• Casos de uso desconhecem tela.
• Descreva tela durante Análise com
protótipos:
–Modele a iteração com tela via protótipo
Palavra a EVITAR
Clique Arrastar
Abrir
Fechar
Botão Campo
Pop-up Rolar
Registro Janela
Form
Combo
Drop-down
Navegar
Palavras para usar
Pergunta
Inicia
Submete
Começa
Apresenta
Escolhe
Especifica
Seleciona
Informa
Use o glossário efetivamente
Caso de uso
Entrar com informações do
cliente
O sistema requisita ao cliente que
informe seus detalhes cadastrais.
O cliente informa seus detalhes
cadastrais.
O cliente cria uma conta.
Glossário
Detalhes Cadastrais: informações
que identificam unicamente e fornecem
informações de contato para um
cliente localizado nos EUA. A
informação consiste de: Nome, 2
linhas de endereço, cidade, estado,
cep, e telefone para contato.
Implementação
Pré-condições
• Descreve em qual estado o sistema deve
se encontrar para o início do caso de uso.
– Não é o evento que inicia o caso de uso.
• Reduz a quantidade de validação
necessária.
• Opcional: Use somente se necessário para
melhorar o entendimento.
Obter Cotação
Pré-condição
O sistema RU e-st deve se estar
conectado com o Sistema de Cotação
antes do início do caso de uso.
Pós-Condições
• Descreve em qual estado deve estar o sistema
ao fim da execução do caso de uso.
– Estado garantido de quando terminar o caso de uso.
– Pode conter variações.
• Opcional: descreva somente se necessário para
melhorar o entendimento.
Executar Previsão
Pós-condição
Ao fim do caso de uso todas as contas
devem estar atualizadas para refletir
as transações que ocorreram.
Seqüência do caso de uso com
pré e pós Condições
Casos de uso não interagem.
Outras propriedades dos casos
de uso
• Requisitos especiais
– Relacionado a este casos de uso, não coberto pelos
fluxos.
– Geralmente não funcionais, dados, regras de negócio.
• Pontos de Extensão
– Nomeia com conjunto de locais nos fluxos onde há
comportamento de extensão a ser executado.
• Relacionamentos (Use-Case-Model)
– Associações com atores e casos de uso.
• Diagramas de Casos de Uso
– Modelo visual de todos os relacionamentos
envolvendo o caso de uso.
• Outros diagramas e encapsulamentos
– Interação, atividade, ou outros diagramas.
Dicas para casos de uso
• Descreva apenas eventos visíveis ao ator:
– O que o ator faz.
– O que o sistema responde ao ator.
• O que o caso de uso fornece de valor ao ator.
• Casos de uso podem ter diferentes níveis de
detalhe.
– Detalhe até que cada stakeholder tenha um
entendimento comum dos requisitos de sua
perspectiva, e então pare.
• Use termos e vocabulário comum a todos.
• Use linguagem precisa.
Checkpoints para casos de uso
• As iterações e trocas com os atores estão
claramente descritas?
• A seqüência de comunicação entre atores
e casos de uso estão em conformidade
com as expectativas do cliente?
• Está claro como e onde os fluxos de caso
de uso começam e terminam?
• Subfluxos estão modelados com

precisão?
E sobre os requisitos não funcionais?
• O “URPS” do FURPS
– Usabilidade
– Robustez (Confiança)
– Performance
– Suportabilidade
• Conformidade com as Leis
e Regulamentos
– IMMETRO
– ANVISA
– BC
– ISO
• Restrições de Projeto
– Sistema Operacional
– Ambientes
– Compatibilidade
– Padrões de Aplicação
Functionality
Feature set
Capabilities
Generality
Security
Usability
Human factors
Aesthetics
Consistency
Documentation
Reliability
Performance
Supportability
Frequency/Severity
of failure
Recoverability
Predictability
Accuracy
MTBF
Speed
Efficiency
Resource usage
Throughput
Response time
Testability
Extensibility
Adaptability
Maintainability
Compatibility
Configurability
Serviceability
Installability
Localizability
Robustness
Exemplo: Requisitos não
funcionais
• O sistema RU e-st
–O sistema deve fornecer cotações de preço
com um atraso máximo de 15 minutos.
• E quanto aos outros?
• Onde cada um deles devem ser
especificados?
Especifique Requisitos de Usuabilidade
• Usabilidade é a facilidade com que o software pode
ser aprendido e operado por um usuário.
• Requisitos de Usabilidade incluem:
– Requisitos de tempo de treinamento, tempos de tarefas
mensuráveis.
– Habilidades do usuário (iniciante/avançado).
– Comparação com outros sistemas conhecidos pelo usuário.
– Help on-line, dicas, necessidades de documentação.
– Conformidade com padrões.
• Exemplos: Windows, guias de estilo, Padrões de Tela
Toda a documentação do usuário deve estar em
conformidade com o Manual de Estilo para Documentos
Técnicos da Microsoft® .
Especifique requisitos de Confiabilidade
• Confiabilidade é a capacidade que um
software tem de se comportar
consistentemente da maneira aceitável pelo
usuário.
• Requisitos de Confiabilidade incluem:
–Disponibilidade (xx.xx%)
–Acurácia
–MTBF (xx hrs)
–Max. bugs per/KLOC (0-x)
O relatório de velocidade da cápsula não tripulada de Marte
deve ser em unidade de metros por segundo e estar entre 1
até 1e6.
Especifique Requisitos de
Performance
• Performance é a medida de velocidade ou
eficiência de um sistema em execução.
• Requisitos de performance incluem:
- Memória
–Capacidade
- Modo de degradação
–Throughput
–Tempo de resposta - Use de recursos limitados
- Processador, memória, disco,
banda de rede
Não há mais do que 4 protocolos de troca, tamanhos não
menores do que 512k bytes cada, entre cliente e servidor
para a troca de dados.
Especifique requisitos de Suportabilidade
• Suportabilidade é a capacidade do software em
ser facilmente modificável para acomodar
melhorias e reparos.
• Requisitos de suportabilidade incluem:
– Linguagens, SGDB, ferramentas, e etc.
– Padrões de programação.
– Manipulação de erros e padrões de relatório.
• Difícil de especificar
– Se não mensurável ou observável, assim não é
requisito.
– É uma restrição de projeto?
– É uma intenção ou um objetivo?
Como descrever protocolos de
comunicação
• Especifique um protocolo de comunicação
se o ator é um sistema externo ou um
outro hardware.
–A descrição do caso de uso pode estabelecer
se um determinado protocolo é usado.
–Se o protocolo é novo, ele será totalmente
descrito no desenvolvimento orientado a
objetos.
Estruturar Modelos de Casos de
Uso
• Como estruturar modelos?
– Transformar partes de casos
de uso em novos casos de uso.
• Por que estruturar o modelo
de casos de uso?
– Simplificar os casos de uso
originais.
• Tornar mais fácil de entender.
• Tornar mais fácil de manter.
– Reuso de Requisitos.
• Compartilhar pelos diversos casos
de uso.
Relacionamentos entre CSUs
• Include
• Extend
• Generalização
«include»
«extend»
O que é um relacionamento de
Include?
• O relacionamento entre um caso de uso
origem com um caso de uso incluído.
• O comportamento do caso de uso incluído é
explicitamente incluído dentro do caso de
uso de origem.
Inclusão
«include»
Origem
Relacionamento de Inclusão
Obter Cotação
Executar
Negociação
«include»
«include»
Trading
Customer
Outro caso de uso
Caso de Uso de Obter Cotação
1. Inclui “Identificar Cliente”
para verificar a identidade do
cliente
2. Mostrar Opções. O Cliente
seleciona “Obter Cotação”
3. ...
Identificar Cliente
«include»
Caso de Uso de Identificar Cliente
1. Autenticar
2. Validar autenticação
3. Entrar com senha
4. Validar senha
A1: Autenticação inválida
A2: Senha errada
A3: ...
Execução de um relacionamento de inclusão
• Totalmente executado quando o ponto de
inclusão é alcançado.
Caso de Uso
Base
Instância de
Caso de Uso
Caso de Uso
Incluído
Por que utilizar um
relacionamento de inclusão?
inclusão
«include»
Base
– Cortar comportamento comum
entre 2 ou mais casos de uso.
• Evitar descrever o mesmo
comportamento duas vezes.
• Assegurar comportamento igual em
vários outros pontos.
– Cortar e encapsular
comportamento comum.
• Simplificar fluxos de eventos
complexos.
• Cortar partes não primárias do
comportamento.
O que é um relacionamento de
Extend?
• Conecta um ponto de extensão de um
caso de uso a um ponto do caso de uso
base.
–Insere um ponto de comportamento extensível
para um caso de uso base.
–Insere apenas se uma condição for
Base
verdadeira.
–Insere no caso de uso base
«extend»
um ponto de extensão
Extension
nomeado.
Relacionamento de Extensão:
Exemplo RU e-st
Cliente de
Negociações
Obter
Cotação
«extend»
Obter
Notícias
«extend»
Obter
Previsões
Sistema especialista
em cotações
Sistema novo
Relacionamento de Extensão
Caso de Uso Obter Cotação
Fluxo Básico:
1. Incluir “Identificar Cliente”
para verificar identidade do
cliente.
2. Apresentar Opções.
3. Cliente seleciona “Obter
Cotação.”
4. Cliente obtêm cotação.
5. Cliente obtêm outras
cotações.
6. Cliente faz logs off.
A1. Sistema de cotação fora
…
Pontos de Extensão:
O ponto de extensão “Serviços
Opcionais” ocorre no passo 3
do Fluxo Básico e passo A1.7
no fluxo alternativo Sistema de
cotação fora.
Caso de Uso Obtêm Notícias
Este caso de uso extende o caso de
Obter cotações, no ponto de
extensão “Serviços Opcionais.”
Fluxo Básico:
1. Se o cliente selecionar “Obter
notícias,” o sistema pergunta ao
cliente o intervalo de tempo e a
quantidade de itens de notícia.
2. O cliente informa os dados. O sistema
envia o símbolo de cotação de
ações ao sistema de Notícias,
recebe a resposta, e apresenta as
notícias ao cliente.
3. O caso de uso Obter cotações
continua.
A1: Sistema indisponível
A2: Sem notícias para a cotação da ação
…
Execução de um Extend
• Executado quando o ponto de extensão é
alcançado e a condição de extensão
válida.
Instância de
Caso de Uso
Caso de
Uso Base
Ponto de Extensão
Caso de Uso
Extendido
Por que usar um
relacionamento de Extend?
Base
«extend»
Extensão
• Recortar comportamento
excepcional ou alternativo.
– Executado somente sob certas
circunstâncias.
– Recortar simplifica o fluxo de
eventos no caso de uso base.
– Exemplo: Disparar Alarmes.
• Adicionar Comportamento de
Extensão.
– Comportamento desenvolvido
separadamente, possivelmente
em versão posterior.
Caso de Uso Concreto versus
Abstrato
Um caso de uso
pode ser concreto
ou abstrato.
Caosos de Uso Abstratos (A & D):
• Não tem de ser completos.
• Existem somente em conjunto
com outros casos de uso.
«include»
• Não possuem sua própria
instância.
Dica:
C
B
Mesmo retirando
todos os casos
de uso abstratos
«extend»
você ainda é
Concrete use cases (B & C):
capaz de
D
• Tem que ser completos e
entender o
claros.
sistema
• Possuem suas próprias
instâncias.
A
Por que não estruturar o
Modelo de Casos de Uso?
Inclusão
«include»
Base
«extend»
Extensão
Filho
- A solução é mais difícil de ver
quando o casos de uso é
fragmentado.
- Decomposição de Caso de Uso.
- Diminui entendimento.
- Aumenta complexidade.
- Aumenta esforço de revisores,
testadores e desenvolvedores.
- Nem todos os stakeholders estão
confortáveis com o formato.
- O Modelo de caso de uso se
parece com o design.
O que é Generalização de Ator?
• Atores podem ter características comuns.
• Múltiplos atores podem ter papéis ou propósitos
comuns ao interagir com os casos de uso.
Pai
Filho 1
Filho 2
Generalização de Atores
• Pai: Medical Worker
Agendar
Operação
• Filhos: Doutor,
Enfermeira, Auxiliar
Doutor
Enfermeira
Auxiliar
– Servidor Hospitalar pode
ler prontuário
– Doutor, Enfermeira, e
Auxiliar podem ler
prontuário
Servidor
Hospitalar
Ler Prontuário
Por que generalizar atores?
Pai
Filho 1
Filho 2
• Simplifica o
relacionamento entre
vários atores e casos de
uso.
• Mostra que o
comportamento do pai é
herdado pelos filhos.
• Representa diferentes
níveis de segurança.
Atores concretos versus abstratos
• Um ator abstrato contém a
parte comum dos papéis.
Funcionário
de Medicina
– Não podem ser instanciados.
– Exemplo:
• Ninguém terá o cargo: servidor
médico.
• Um ator concreto pode ser
instanciado.
Doutor Enfermeira
– Exemplo:
• Lauren é Doutora.
• Daniel é enfermeiro.
Guias para a modelagem de
casos de uso
• Notações para usar e não usar.
–Por exemplo, quando usar relacionamento de
generalização.
• Papéis, recomendações, estilos, e como
descrever um caso de uso.
• Recomendações de quando começar a
estruturar os casos de uso(não tão cedo).
Download

Curso Requisitos - Requisitos Final