Especificação e Modelagem de Requisitos
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
Análise dos Requisitos
Trabalha com requisitos incompletos
Se preocupa em descobrir problemas
Requisitos são enumerados por exemplo,
em uma reunião com stakeholders
– Quais as inconsistências?
– Quais os conflitos?
– Tenho que fazer uma nova reunião?
Especificação de Requisitos de Produto
Desenvolvida como uma conseqüência da
fase de análise de requisitos
– Modelo de Casos de Uso
– Especificação Suplementar
Serve como base para casos de teste
– Requisitos funcionais e não funcionais
Modelo de Casos de Uso
O Modelo de Casos de Uso
– Especifica em detalhes requisitos do sistema
Emprega
– Atores
– Casos de Uso
Cliente
Comprar
Ator
Cliente
Define o que existe do lado de fora do
sistema
– Ator é uma classe do subsistema mais abrangente que interage diretamente
com o sistema
– É algo com comportamento como
•
•
•
•
uma pessoa (identificada pelo seu papel)
um sistema computacional
uma organização
um sensor/atuador
Caso de Uso
Comprar
Caso de Uso:
– O que deve ser feito pelo sistema
– histórias de sucesso e insucesso que suportam o mesmo objetivo
– um conjunto de cenários relacionados
Cenário:
– uma instância de um Caso de Uso
– uma seqüência específica de ações e interações entre atores e sistema
Modelo de Casos de Uso
Os atores representam o que interage com o sistema
Representam tudo que necessita trocar informação com
o sistema
Como estão fora do sistema: não são descritos em
detalhe
Atores são diferentes de usuários:
– usuário usa o sistema
– ator representa uma certa regra seguida pelo usuário
– uma mesma pessoa pode aparecer como instância de vários
atores
Modelo de Casos de Uso
Uma instância de um Ator efetua diversas operações
no sistema
Quando um usuário usa o sistema, efetua um
seqüência de transações relacionadas em um diálogo
com o sistema
Esta seqüência é chamada de Caso de Uso
Cada Caso de Uso é uma forma específica de usar o
sistema
Cada execução de um caso de uso pode ser visto
como uma instância do Caso de Uso
Modelo de Casos de Uso
Casos de Uso capturam os requisitos
funcionais
O conjunto de todos os Casos de Uso
especificam a funcionalidade completa do
sistema
Agrupar funcionalidades e chamá-las de
Casos de Uso facilita o gerenciamento
destes requisitos durante ciclo de
desenvolvimento
Modelo de Casos de Uso
Caso de Uso
– determina um ou mais casos de teste
Do conjunto de casos de uso é possível derivar o Plano
de Testes
– Garantir adequação do software aos requisitos funcionais
Casos de Uso
Casos de Uso
Discutir com o cliente o que o
sistema fará
Identificar quem interage com o
sistema
Identificar que interfaces o sistema
terá
Casos de Uso
Tipos e Formatos
– Caixa preta
– O sistema é descrito em termos de suas responsabilidades
– Elementos de software possuem responsabilidades e colaboram com outros
elementos que têm responsabilidades
Casos de Uso
Definindo as responsabilidades do sistema
com casos de uso caixa-preta
– O que o sistema deve fazer sem decidir como
– Estilo caixa-preta
• O sistema deve registrar a venda de cada item
– Errado
• O sistema salva no banco de dados.....
• O sistema gera um SQL INSERT.......
Casos de Uso
Formato
– Breve – um resumo
– Casual – formato informal
– Totalmente especificado
• Um conjunto de seções que apóiam a sua descrição em detalhe
De posse dos Casos de Uso
Verifique se não há requisitos faltando
Verifique que os desenvolvedores
entendem os requisitos
Vantagem é ter apelo visual dos requisitos
mais relevantes do cliente
Elaborando o Modelo de
Casos de Uso
Identificando
Nenhum sistema existe isoladamente
– interage com atores humanos e/ou autômatos
– atores esperam que o sistema se comporte de acordo com o
previsto
Um caso de uso
– especifica o comportamento de um sistema (ou de parte deste)
– é a descrição de um conjunto de seqüências de ações
– inclui variantes realizadas pelo sistema para produzir um
resultado observável por um ator
Casos de Uso: função – transação/serviço
Seqüência de ações,
executada pelo sistema,
que gera um resultado
– De valor observável
– E para um ou mais
atores
Função
Procedimento computacional
Caso de Uso: Ator
Alguém ou alguma
coisa (fora do
sistema) que
interage com o
sistema
Emissor/Receptor
Caso de Uso
Casos de uso podem ser aplicados para
captar o comportamento pretendido
– não é necessário especificar como serão implementados
– fornecem uma maneira de obter melhor compreensão do sistema
– cooperação com usuários e especialistas do domínio da aplicação
Caso de Uso
Executa alguma quantidade tangível de
trabalho
Sob a perspectiva do ator fornece
– um resultado
– um novo objeto
– alteração de estado de um objeto existente
Caso de Uso
A descrição de um caso de uso define o
que o sistema faz quando o caso de uso é
realizado
A funcionalidade do sistema é definida por
um conjunto de casos de uso, cada um
representando um fluxo de eventos
específico
Além disso, servem para:
– verificar o sistema à medida que evolui durante o desenvolvimento
Caso de Uso e Ator
Descrição
Passo 1
Passo 2
…
Passo N
Emissor
Função
Atores
De um modo geral, atores podem ser:
–
–
–
–
papéis que as pessoas representam nos Casos de Uso
dispositivos de hardware mecânicos ou elétricos
outros sistemas computacionais
tempo (para representar atividades periódicas)
Atores
Pode-se definir grupos
gerais de atores e suas
especializações
Funcionários
Boy
Caixa
Atores
Os atores estão associados
a Casos de Uso
– Ator e Caso de Uso se
comunicam
– Enviar e Receber
mensagens
Cliente
Venda
Caixa
Casos de Uso
Nomes
– Todo caso de uso deve ter um nome que o diferencie dos demais
– Expressões verbais ativas
– Nomeiam um comportamento do sistema
Exemplo de Caso de Uso
Cliente de banco deseja usar um caixa
automático para
– sacar dinheiro, transferir dinheiro ou consultar o saldo da conta
Ator: Cliente
Casos de Uso: Sacar dinheiro, Transferir
dinheiro e Consultar saldo
Exemplo de Caso de Uso
Valor de
resultado
observável
Transferir
dinheiro
Sacar
dinheiro
Consultar
saldo
Cliente
Identificando Casos de Uso
Em geral, é difícil decidir entre um ou vários Casos de
Uso
Por exemplo, seria Caso de Uso:
– Inserir cartão em um Caixa Automático?
– Digitar a senha?
– Receber o cartão de volta?
Casos de Uso devem ser organizados para evitar
– Redundância
– Conflitos
– Ambigüidades
Identificando Casos de Uso
Identificando Casos de Uso
Deve representar valor observável para
ator
Pode-se determinar
– Devido a interações Ator x Sistema
• seqüência de ações com o sistema que resultam valores para atores
– Devido a necessidades de um Ator
• satisfaz um objetivo particular de um ator que o sistema deve prover
Identificando Casos de Uso
Procedimentos Iniciais
– Escolha a fronteira do sistema
– Identifique os atores primários
• aqueles cujas necessidades serão supridas pelo sistema
– Defina Casos de Uso que satisfaça as necessidades dos atores primários
• um caso de uso para cada necessidade
Identificando Casos de Uso
Traçar fronteira conceitual
– Identificar o que está fora e o que está dentro do sistema
Exemplo: ponto de vendas
– Fora
• Cliente, Caixa, Agente de Cartão de Crédito
– Dentro
• Venda, Emissão Recibo, Estoque, ....
Identificando Casos de Uso
O que está dentro do sistema:
– é responsável por executar seu comportamento
O que está fora:
– o contexto do sistema
– o ambiente onde o sistema existe
– determinam as necessidades que o sistema deve atender
Identificando Casos de Uso
Identifique os atores
–
–
–
–
–
Quais grupos precisam de ajuda do sistema para realizar suas tarefas?
Quais grupos são necessários para a execução das funções do sistema?
Quais grupos interagem com algum hardware externo ou outros sistemas?
Quais grupos realizam funções secundárias de administração e de manutenção?
Existem atividades temporais periódicas?
Identificando Casos de Uso
Atores Primários
– necessidades que são supridas pelo sistema
• Caixa, cliente
Atores de suporte
– provem serviços para o sistema
• Agente de cartão de crédito
Primeiro temos que encontrar os atores primários
– enumere as necessidades para cada ator
Achando Casos de Uso
Que funções o ator requer do sistema?
O que o ator necessita fazer?
O ator tem que ler, criar, destruir, modificar ou
armazenar algum tipo de informação do sistema?
O ator tem que ser notificado sobre eventos do sistema,
ou o ator necessita notificar o sistema sobre alguma
coisa?
– o que estes eventos representam em termos de funcionalidade
Achando Casos de Uso
Pode o trabalho diário do ator ser simplificado ou mais
eficiente através da incorporação de novas funções?
Outras questões
– Que entradas/saídas o sistema necessita?
• De onde vem e para onde vão?
– Quais os maiores problemas com a implementação atual (quando existir
automática ou a manual)
Identificando Casos de Uso
Defina Casos de Uso
– Nomeie os casos de uso como uma necessidade
• Processar venda ( um necessidade do caixa)
– Descreva cada caso de uso
• primeiro uma descrição simplificada
• complete esta descrição
– analise o conjunto de casos de uso e faça uma organização
– Não considere a Interface Homem-máquina
• isto é implementação
– Foco – o que fazer
Caso de Uso: um exemplo 1/8
Caso de Uso: Processar Venda
Descrição Breve
– O Caixa necessita efetuar a venda de um conjunto de itens
selecionados pelo cliente. Deve atualizar estoque, registrar a
venda e emitir o recibo
Descrição Informal
– Um cliente chega no caixa com itens a comprar. O Caixa registra
cada item usando o Sistema. O sistema apresenta o total parcial
e a descrição de cada item. O cliente entra com a informação de
pagamento, que o sistema valida e registra. O sistema atualiza o
estoque. O cliente recebe um recibo e parte com os itens
adquiridos
Casos de Uso – Detalhado 2/8
Ator primário
– o que inicia a ocorrência do caso de uso
– Caixa
Interessados
–
–
–
–
Todos interessados em validar o Caso de Uso
Caixa
Cliente
Gerente
Pré-condições
– O que deve ser verdade antes de iniciar o caso de uso
– O caixa está identificado e autenticado
Casos de Uso – Detalhado 3/8
Pós-condições
– O que deve ser verdade após o término com sucesso do caso de uso
– A venda está registrada. O estoque foi atualizado, As comissões foram calculadas
e armazenadas
• descrição ainda informal
Casos de Uso - Descrição Detalhada 4/8
Fluxo Normal
– Descreve a história principal de sucesso do caso de uso
Fluxos Alternativos ou Extensões
– Indicam outros cenários (tanto de sucesso como de insucesso)
Requisitos Especiais: requisitos não funcionais, atributos
de qualidade ou restrições
• Usar um leitor ótico para o código de barras
Casos de Uso – Descrição Detalhada 5/8
Cadastrar Cliente
Fluxo Normal:
–
1.
2.
3.
4.
Número seqüência. Agente + verbo + complemento
O cliente fornece seus dados
O sistema verifica que o cliente não está cadastrado
O sistema adiciona novo cliente
O sistema informa que o cadastro foi efetuado com
sucesso
Casos de Uso – Descrição Detalhada 6/8
Fluxos Alternativos:
Caso <número>: <Descrição do caso
alternativo>
Número seqüência . Agente + verbo +
complemento ;
–
Finalizar caso de uso ou retornar ao passo...
Casos de Uso – Descrição Detalhada 7/8
Cadastrar Cliente - Fluxos Alternativos
Caso 1: o cliente já está cadastrado
1. O sistema verifica que o cliente está
cadastrado
•
número da seq. onde se inicia a variante
2. O sistema informa que já está cadastrado
3. Finalizar caso de uso
Casos de Uso – Descrição Detalhada 8/8
Venda
Fluxo Normal
1. O cliente chega com os itens selecionados no caixa
2. O Caixa inicia uma venda
3. Para cada item (trazido pelo Cliente)
1.
4.
5.
6.
7.
8.
9.
10.
Adicionar Item de venda
O caixa finaliza a venda
O sistema totaliza a compra e informa o total
O cliente efetua o pagamento
O Caixa registra o pagamento
O sistema da baixa no estoque dos itens vendidos
O sistema emite o recibo
......................
Exercício
Desenvolver o Diagrama de Casos de Uso e a descrição dos
Fluxos para o sistema da Petrobrás.
Organizando o Modelo de Casos de Uso
Organizando
Organize os atores semelhantes em uma
hierarquia de generalização/especialização
Especifique as associações de cada ator
para os Casos de Uso
Diagrama de Casos de Uso
Cliente
Realizar transacao com Cartao de
Credito
Agente de Cartao
de Credito
Processar Conta do Cliente
Pessoa Fisica
Pessoa Juridica
Instituicao
Financeira
Diagramas de Casos de Uso
São secundários
O importante é o texto descrevendo os
Casos de Uso
Apóiam a organização
– Pacotes de Casos de Uso
• Agregam casos de uso funcionalmente coesos
–
Visualizam relacionamentos entre
• casos de uso
• atores
Revisando Casos de Uso
Todos os atores envolvidos com um Caso
de Uso
– Estão se comunicando?
– Aparecem na sua descrição?
– Algum não aparece?
Tem ator ou Caso de Uso sem nenhuma
associação? Algo de errado...
Tem algum requisito funcional conhecido
não tratado pelos Casos de Uso
Revisando Casos de Uso
Estruturar modelo de Casos de Uso
Estabelecer relacionamentos entre Casos de Uso
– “Inclusão”
– “Extensão”
– “Generalização”
Tem similaridades descritas em mais de um caso de Uso 
eliminar redundâncias
– Inclusão (<< include>>)
A descrição do Caso de Uso está muito complexa
– Extensão (<< extends>>)
– Generalização (herança)
Inclusão
Executando uma instância do Caso de uso Base
Caso de uso Base
<<include>>
Caso de Uso Inclusão
Inclusão
Caso de uso base incorpora explicitamente
comportamento de outro Caso de Uso em
ponto específico
Representado como uma dependência
(seta tracejada) para o Caso de Uso
incluído
Se o Caso de Uso incluído muda o Base,
necessita ser revisto
<<include>>
Inclusão
Caso de Uso Venda
Fluxo Normal
1.
2.
3.
4.
........
.........
Inclui Pagar
Finalizar Venda
Inclusão
Pagar
<<include>>
Cliente
Venda
Extensão uma instância do Caso de uso Base
Executando
Caso de uso Base
<<extend>>
Ponto de
Extensão
Caso de Uso Extensão
Extensão
Um Caso de Uso incorpora implicitamente
o comportamento de outro caso de uso
Apenas em circunstâncias específicas o
caso de uso estendido é incorporado ao
caso de uso base
Utilizado para modelar comportamento
excepcional do sistema
– Exceções
Extensão
Representado como uma dependência
– seta tracejada para o Caso de Uso Base
Se o Caso de Uso base muda o Caso de
Uso estendido, necessita ser revisto
<<extend>>
Extensão
Caso de Uso Devolver Produtos
Fluxo Normal
1. O Cliente chega com produto para
devolução
2. O Caixa prepara cupom de troca (devolver
dinheiro)
3. Reportar ao Estoque
4. Finalizar Operação
1.
Ponto de extensão – devolver dinheiro
Extensão
<<extends>>
Efetuar Troca
Devolver Dinheiro
Generalização
Executando uma instância do Caso de uso Filho
Caso de uso Pai
Caso de Uso Filho
Generalização
Similar a generalização entre Classes
O caso de uso filho herda
– o significado do caso de uso pai
– o comportamento
O comportamento do Caso de Uso filho
normalmente é redefinido
O Caso de Uso filho pode ser usado no
lugar do pai
Generalização
derivado
base
Pagar a Dinheiro
Cliente
Pagar
Pagar com Cartão
Generalização
Ator: Cliente
1. Esse caso de Uso começa quando o cliente deseja
efetuar pagamento
2. O Cliente registra o documento de cobrança
3. O Cliente informa a opção desejada
1. Se pagto a dinheiro – executar subseção Pagar a dinheiro
2. Se pagto com cartão de crédito- executar subseção Pagar
com Cartão
4. O sistema registra o pagamento
5. O sistema emite o recibo
6. Subseção – Pagar a Dinheiro
1.
2.
3.
4.
O Cliente coloca o dinheiro em um envelope e lacra
O Cliente informa o numero do envelope ao sistema
O cliente deposita o envelope
.......
Exercício
- Especifique os Casos de Uso para:
1.
2.
3.
Sistema da padaria de pequeno porte
Sistema inteligente de preenchimento do IRPF
Sistema de abertura automática de porta
Revisando.....
Dicas/Sugestões
Todos os Casos de Uso deverão representar algum
comportamento distinto e identificável
Nomeie um comportamento que seja único, identificável e
razoavelmente atômico
Faça a fatoração de comportamento comum, obtendo-se
este comportamento de outros casos de uso (inclusão)
Faça a fatoração de variantes, aplicando esse
comportamento a outros casos de uso que o estendem
Descreva o fluxo de eventos de maneira suficientemente
clara para que alguém de fora seja capaz de compreendêlo com facilidade
– Especifique um conjunto mínimo de cenários explicitando a
semântica normal e variante do Caso de Uso
Dicas e Sugestões
Mostre somente
– Casos de Uso que são importantes para a compreensão do comportamento do
sistema (ou da parte sendo modelada)
– Somente os atores relacionados com esses Casos de Uso
Exercício
Especifique um sistema para uma
Agenda Telefônica, que controle
aniversário dos contatos:
– Elicitar requisitos com o uso das técnicas abordadas
• Requisitos de negócio
• Requisitos de produto
• Regras de negócio
– Detalhar os Casos de Uso
Download

Caso de Uso