Title: Especifica
1Especificação e Modelagem de Requisitos
2Especificaçã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
Analista de Requisitos
Requisitos p/ Inspeção
Plano e Casos de Teste
Casos de Uso e Esp. Suplementar
3Aná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?
4Especificaçã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
5Modelo de Casos de Uso
- O Modelo de Casos de Uso
- Especifica em detalhes requisitos do sistema
- Emprega
- Atores
- Casos de Uso
6Ator
- 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
7Caso de Uso
- 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
8Modelo 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
9Modelo 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
10Modelo 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
11Modelo 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
12Casos de Uso
13Casos de Uso
- Discutir com o cliente o que o sistema fará
- Identificar quem interage com o sistema
- Identificar que interfaces o sistema terá
14Casos 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
15Casos 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.......
16Casos 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
evolução no tempo
17De 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
18Elaborando o Modelo de Casos de Uso
19Identificando
- 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
20Casos 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
21Caso de Uso Ator
- Alguém ou alguma coisa (fora do sistema) que
interage com o sistema
Emissor/Receptor
22Caso 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
23Caso 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
24Caso 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
25Caso de Uso e Ator
Passo 1 Passo 2 Passo N
Emissor
Função
26Atores
- 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)
27Atores
- Pode-se definir grupos gerais de atores e suas
especializações
28Atores
- Os atores estão associados a Casos de Uso
- Ator e Caso de Uso se comunicam
- Enviar e Receber mensagens
29Casos 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
30Exemplo 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
31Exemplo de Caso de Uso
Valor de resultado observável
Transferir dinheiro
Sacar dinheiro
Consultar saldo
Cliente
32Identificando 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
33 Identificando Casos de Uso
34Identificando 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
35Identificando 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
36Identificando 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, ....
37Identificando 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
38Identificando 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?
39Identificando 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
40Achando 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
41Achando 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)
42Identificando 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
43Caso 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
44Casos 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
45Casos 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
46Casos 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
47Casos de Uso Descrição Detalhada 5/8
- Cadastrar Cliente
- Fluxo Normal
- 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
48Casos de Uso Descrição Detalhada 6/8
- Fluxos Alternativos
- Caso ltnúmerogt ltDescrição do caso alternativogt
- Número seqüência . Agente verbo complemento
- Finalizar caso de uso ou retornar ao passo...
49Casos 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
50Casos de Uso Descrição Detalhada 8/8
- Venda
- Fluxo Normal
- O cliente chega com os itens selecionados no
caixa - O Caixa inicia uma venda
- Para cada item (trazido pelo Cliente)
- 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
- ......................
51Exercício
- Desenvolver o Diagrama de Casos de Uso e a
descrição dos Fluxos para o sistema da Petrobrás.
52Organizando o Modelo de Casos de Uso
53Organizando
- Organize os atores semelhantes em uma hierarquia
de generalização/especialização - Especifique as associações de cada ator para os
Casos de Uso
54Diagrama de Casos de Uso
55Diagramas 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
56Revisando 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
57Revisando 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 (ltlt includegtgt)
- A descrição do Caso de Uso está muito complexa
- Extensão (ltlt extendsgtgt)
- Generalização (herança)
58Inclusão
Executando uma instância do Caso de uso Base
59Inclusã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 - ltltincludegtgt
60Inclusão
- Caso de Uso Venda
- Fluxo Normal
- ........
- .........
- Inclui Pagar
- Finalizar Venda
61Inclusão
ltltincludegtgt
62Extensão
Executando uma instância do Caso de uso Base
63Extensã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
64Extensã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 - ltltextendgtgt
65Extensão
- Caso de Uso Devolver Produtos
- Fluxo Normal
- O Cliente chega com produto para devolução
- O Caixa prepara cupom de troca (devolver
dinheiro) - Reportar ao Estoque
- Finalizar Operação
- Ponto de extensão devolver dinheiro
66Extensão
ltltextendsgtgt
67Generalização
Executando uma instância do Caso de uso Filho
68Generalizaçã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
69Generalização
derivado
base
70Generalização
- Ator Cliente
- Esse caso de Uso começa quando o cliente deseja
efetuar pagamento - O Cliente registra o documento de cobrança
- O Cliente informa a opção desejada
- Se pagto a dinheiro executar subseção Pagar a
dinheiro - Se pagto com cartão de crédito- executar subseção
Pagar com Cartão - O sistema registra o pagamento
- O sistema emite o recibo
- Subseção Pagar a Dinheiro
- O Cliente coloca o dinheiro em um envelope e
lacra - O Cliente informa o numero do envelope ao
sistema - O cliente deposita o envelope
- .......
71Exercício
- Especifique os Casos de Uso para
- Sistema da padaria de pequeno porte
- Sistema inteligente de preenchimento do IRPF
- Sistema de abertura automática de porta
72Revisando.....
73Dicas/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
74Dicas 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
75Exercí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