Você está na página 1de 59

Diagrama de Casos de Uso

Modelagem Baseada em Cenários

• O modelo de casos de uso é uma representação das


funcionalidades externamente observáveis do sistema
e dos elementos externos ao sistema que interagem
com o mesmo.

• O modelo de casos de uso modela os requisitos


funcionais do sistema.

2
Modelo de Casos de Uso

• Direciona diversas das tarefas posteriores do


ciclo de vida do sistema de software.

• Força os desenvolvedores a moldar o sistema


de acordo com o usuário.

3
Modelo de Casos de Uso

• Características
– Função: Registrar o que o sistema faz. Conjunto de sequências de
ações, incluindo variantes, realizadas pelo sistema para produzir um
resultado observável por um ator.
– Refinamento de um requisito funcional do sistema em forma de
passos.
– Fácil de ler: Não exige nenhum conhecimento de informática
• Foco no problema e não na implementação!!!
– Ótimo para o cliente
• Facilitam a validação dos requisitos do sistema
Casos de uso

Um caso de uso representa quem


faz o que (interage) com o sistema,
sem considerar o comportamento
interno do sistema.
Casos de Uso

• Exemplos:
– Fazer uma reserva

– Consultar uma reserva

– Cancelar uma reserva

– Imprimir relatórios

• Servem de base para:


– Planejamento dos testes funcionais: Cada passo é um caso de teste

– Elaboração da documentação do usuário (Manual)


Identificação dos elementos

• Atores e casos de uso são identificados a partir de informações coletadas na fase


de levantamento de requisitos do sistema.
– Durante esta fase, os analistas devem identificar as atividades do negócio relevantes ao
sistema a ser construído.

• Não há uma regra geral que indique quantos casos de uso são necessários para
descrever completamente um sistema.

• A quantidade de casos de uso a ser utilizada depende completamente da


complexidade do sistema.

• Cada caso de uso é definido através da descrição textual das interações que
ocorrem entre o(s) elemento(s) externo(s) e o sistema.
Casos de Uso

• Representação: Elipse + Conector + Ator (Caso de Uso)

Saque

Realizar Saque
Cliente
Casos de Uso - Nome

• Único

Realizar Saque
• Sugestão
– verbo + substantivo

• Exemplos:
– Validar Usuário
Emitir Relatório
– Realizar Saque
– Emitir Relatório
Casos de Uso - Atores

• Papéis que uma entidade (homem, hardware, sistema) desempenha no sistema.

• Não são parte do sistema.

Cliente
• Comandam os casos de uso:
– Procure pelos atores e depois pelos seus casos de uso.

• Não precisam ser humanos.

• Representação: Stickman Instituição


Financeira
Categorias
• pessoas (Empregado, Cliente, Gerente,
Almoxarife, Vendedor, etc);

• organizações (Empresa Fornecedora, Agência de


Impostos, Administradora de Cartões, etc);

• outros sistemas (Sistema de Cobrança, Sistema


de Estoque de Produtos, etc).

• equipamentos (Leitora de Código de Barras,


Sensor, etc.)

11
Exemplo (Notação)

Ator
Caso de uso

Reservar Livro

Usuário
Relacionamento
de comunicação
12
Exemplo (Notação)

Sistema de Vendas de
Livros por Correio

Vendedor

Realizar Pedido

Cliente

Empresa Transportadora

13
Relacionamentos
• Casos de uso e atores não existem sozinhos. Pode
haver relacionamentos entre.
• A UML define diversos de relacionamentos no modelo
de casos de uso:
– Comunicação
– Inclusão
– Extensão
– Generalização

14
Casos de Uso - Atores

• Conectados aos casos de uso somente pela


associação.

• Associação = relação de comunicação


– Podem enviar ou receber mensagens

Realizar Saque
Cliente
Casos de Uso - Cenários

• Narração de uma sequência específica de ações que ilustra um


comportamento.

• Um cenário é um caminho entre os fluxos de um caso de uso.

• Fluxos de um Caso de uso:


– Fluxo principal

– Fluxos Alternativos (caminhos alternativos/opcionais dentro de um mesmo caso de uso)

– Fluxos de Exceção (caminhos que representam exceções ao fluxo principal ou fluxo


alternativo. Uma violação de regra de negocio, por exemplo.
Casos de Uso - Cenários

• No desenvolvimento de um sistema, o analista deve começar sua


investigação pelos cenários primários;
– Cenários secundários são progressivamente agregados;

– Cenários secundários relevantes devem ser estudados para evitar futuras


alterações significativas nas principais classes.
Casos de Uso - Cenários

• Sequência de ações / fluxo de eventos:


– Textual

– Fluxo Principal de eventos (Cenário básico)


• Possui somente uma sucessão lógica

• Todas as ações são bem sucedidas (Sem erros)

• “O caso de uso começa quando o sistema solicita ao cliente uma identificação…”

– Fluxo excepcional de eventos


• Descrevem comportamentos excepcionais

• “Se o cliente fornecer uma identificação inválida…”


Casos de Uso – Descrição textual

• Nome: Realizar Saque (fluxo principal)

“Este caso de uso inicia quanto o Cliente chega ao caixa eletrônico e


insere seu cartão. O Sistema requisita a senha do Cliente. Após o Cliente
fornecer sua senha e esta ser validada, o Sistema exibe as opções de
operações possíveis. O Cliente opta por realizar um saque. Então o
Sistema requisita o total a ser sacado. O Cliente fornece o valor da
quantidade que deseja sacar. O Sistema fornece a quantia desejada e
imprime o recibo para o Cliente. O Cliente retira a quantia e o recibo, e o
caso de uso termina.”
Casos de Uso – Descrição numerada

• Nome: Realizar Saque (fluxo principal)


1. O usuário introduz o cartão no caixa eletrônico;
2. O caixa eletrônico propõe as operações disponíveis;
3. O usuário escolhe a opção “saque”;
4. O usuário escolhe a conta (ex: conta corrente ou poupança);
5. O usuário entra o valor do saque;
6. O usuário entra com a sua senha;
7. O caixa eletrônico verifica a senha com o banco;
8. O caixa eletrônico verifica o saldo da conta;
9. O caixa eletrônico dá o dinheiro para o usuário;
10. O caixa eletrônico emite um recibo;
Casos de Uso – Descrição tabular

• Nome: Realizar Saque (fluxo principal)

Cliente Sistema

Insere seu cartão no caixa eletrônico.


Apresenta solicitação de senha.
Digita senha.
Valida senha e exibe menu de
operações disponíveis.
Solicita realização de saque.
Requisita quantia a ser sacada.
Fornece o valor da quantia que deseja
sacar. Fornece a quantia desejada e imprime o
recibo para o Cliente

Retira a quantia e o recibo.


Casos de Uso – Descrição Padrão

Código
Código do caso de uso na especificação (UC.00X)

Nome do Caso de Uso


Identificação do caso de uso (Verbo + Substantivo)

Objetivos
Descrição do caso de uso (um parágrafo)

Atores
Lista de todos os nomes dos atores e pequena descrição

Prioridade
Este caso de uso é muito importante para o projeto? (P1, P2, P3, etc)

Estado
Qual o estado desse caso de uso? Ainda muito abstrato? Bem especificado? Fechado?

Pré-condições
Lista de condições que devem ser verificadas antes de o caso de uso começar
Casos de Uso – Descrição Padrão

Fluxo de eventos
Fluxo principal
1 - Primeiro passo no caso de uso
2 - Segundo passo no caso de uso
3-…
Fluxos alternativos
Descrição dos fluxos alternativos (também em passos)
Fluxos de exceção
Descrição dos fluxos alternativos (também em passos)

Pós-Condições
Lista de condições que devem ser verificadas após o fim do caso de uso

Pontos de extensão
Listas dos pontos de extensão no caso de uso

Casos de uso incluídos


Lista dos nomes dos casos de usos incluídos

Outros requisitos
Listas de outros requisitos que afetam o caso de uso
Casos de Uso – Nível de Detalhamento

• Granularidade variável
– Mais detalhada ou menos detalhada.

– Fornece detalhes consistentes com seu nível de abstração;

– Devem ser expostos somente os adornos (como pontos de extensão)


essenciais à compreensão.

• Procure modelar o quê, não o como!


Casos de Uso – Nível de Detalhamento

• CRUD (Create, Retrieve, Update, Delete)

– Cada função poderia ser especificada por um caso de uso

– Problema: Aumento exponencial do numero de casos de uso

– Solução: “Manter”
Casos de Uso – Relacionamentos

• Inclusão:
– Quando dois ou mais casos de uso incluem uma sequência
de interações comum, esta sequência comum pode ser
descrita em um outro caso de uso.
– Uma instância do primeiro caso de uso também conterá o
comportamento especificado no segundo caso de uso.
– Útil para descrever o mesmo fluxo de eventos múltiplas vezes.
– Evita a operação de copiar-e-colar de partes das descrições do
caso de uso.
Casos de Uso – Relacionamentos
Casos de Uso – Relacionamentos

• Inclusão:
Caso de Uso: Registrar Pedido
Pré-condição: Funcionário estar logado no sistema
Eventos:
1. Obter e verificar número do pedido
2. Incluir pedido (Fornecer dados do cliente)
3. Para cada parte do pedido (Incluir produto no pedido)
4. Realizar pagamento (Definir forma de pagamento)

Casos de Uso – Relacionamentos

Obter Extrato
«inclui»

«inclui»
Fornecer
Realizar Saque
Identificação

«inclui»
Cliente

Realizar
Transferência

29
Casos de Uso – Relacionamentos

• Extensão:
– Utilizado para modelar situações onde diferentes sequências
de interações podem ser inseridas em um caso de uso.
– A instância de um caso de uso pode ser estendida (acrescentada)
pela instância do outro caso de uso.
– Permite a modelagem de parte de um caso de uso que um usuário
pode ver como opcional.
– Permite modelar subfluxos condicionais.
– Permite inserir subfluxos num certo ponto, controlado pela
interação de um ator.
Casos de Uso – Relacionamentos

• Extensão:
– Sejam A e B dois casos de uso.
– Um relacionamento de extensão de A para B indica que
um ou mais dos cenários de B podem incluir o
comportamento especificado por A.
– Neste caso, diz-se que B estende A.
– O caso de uso A é chamado de estendido e o caso de
uso B de extensor.
Casos de Uso – Relacionamentos

• Extensão:
Casos de Uso – Relacionamentos

«estende» Substituir Texto

Editar Documento
«estende»
Escritor
Corrigir Ortografia
Casos de Uso – Relacionamentos

• Generalização:
– Relacionamento no qual o reuso é mais evidente.

– Este relacionamento permite que um caso de uso (ou um


ator) herde características de um caso de uso (ator) mais
genérico.

– O caso de uso (ator) herdeiro pode especializar o


comportamento do caso de uso (ator) base.

– Pode existir entre dois casos de uso ou entre dois atores.


Casos de Uso – Relacionamentos

• Na generalização entre casos de uso, sejam A e B dois casos de


uso.
– Quando B herda de A, as sequências de comportamento de A valem
também para B.
– Quando for necessário, B pode redefinir as sequências de comportamento
de A.
– Além disso, B participa em qualquer relacionamento no qual A participa.

• Vantagem: comportamento do caso de uso original é reutilizado pelos


casos de uso herdeiros.
– Somente o comportamento que não faz sentido ou é diferente para um
herdeiro precisa ser redefinido.
Generalização - UCs

Realizar Pagamento

Cliente

Realizar Pagamento Realizar Pagamento


com Cartão de Crédito com Dinheiro

36
Casos de Uso – Relacionamentos

• Generalização entre atores:


– herdeiro possui o mesmo comportamento que o ator do qual ele herda.
– herdeiro pode participar em casos de uso em que o ator do qual ele herda
não participa.

• Exemplo pratico: considere uma biblioteca na qual pode haver alunos e


professores como usuários.
– Ambos podem realizar empréstimos de títulos de livros e reservas de
exemplares.
– No entanto, somente o professor pode requisitar a compra de títulos de
livros à biblioteca.
Generalização - Atores

Reservar Livro

Devolver Livro
Usuário

Solicitar Compra
de Título

Professor
38
Notação (resumo)
Casos de Uso – Erros comuns

• Legibilidade:

Negociante
<<include>>
Definir Valores
Avaliar
<<extend>>
<<include>>
Limite ultrapassado

Realizar Acordo

Vendedor

Analizar Riscos
Casos de Uso – Erros comuns

• Estereótipo <<includes>> em associações de atores e


casos de uso:

<<include>> <<include>>

Analizar Riscos

Negociante Avaliar
<<include>>

Definir Valores
Casos de Uso – Erros comuns

• Associações entre atores:


<<include>>

Analizar Riscos

Negociante Avaliar
<<include>>

Definir Valores

<<extend>>

Vendedor Realizar Acordo Limite ultrapassado


Casos de Uso – Erros comuns

• Entendimento errado de <<extends>>:

Definir Valores

Negociante
Vendedor

Realizar Acordo

Limite ultrapassado <<extend>>


<<extend>>

Realizar Acordo Longo Prazo Realizar Acordo Curto Prazo


Casos de Uso – Exercício

• Que tipo de relacionamento é possível entre um ator e um caso de uso?

• Que tipo de relacionamento pode haver entre casos de uso?

• Que tipo de relacionamento pode haver entre atores?

Entre Entre casos de Entre ator e


atores uso caso de uso
Comunicação X

Inclusão X
Extensão X
Generalização X X
Casos de Uso – Exercício

• Construa um diagrama de casos de uso para a


seguinte situação:

"Estamos criando um serviço de entregas. Nossos clientes podem nos

requisitar a entrega de volumes. Alguns volumes são considerados de maior


valor por nossos clientes, e, portanto, eles querem ter tais volumes segurados
durante o transporte. Contratamos uma companhia de seguro para segurar
volumes de valor"
Casos de Uso – Exercício
Casos de Uso – Exercício

• Descrição do Requisito do Usuário:


“Necessitamos de um sistema de correio eletrônico para apoiar a comunicação em
nossa empresa. Esse sistema deverá permitir a composição (edição) de
mensagens, bem como o envio dessas mensagens para outros usuários do
sistema. Para isto, o usuário deverá digitar ou selecionar os contatos através de
uma lista, inserir o conteúdo ou corpo da mensagem, o assunto e os anexos (se
pertinente). O usuário poderá salvar a mensagem para envio futuro. Para enviar a
mensagem, o usuário deverá selecionar a mensagem na lista de mensagem
criadas, selecionar o(s) destinatário(s) se ainda não o tiver feito e instruir o sistema
a enviar a mensagem. Eventualmente o usuário poderá codificar a sua mensagem
caso seja desejada uma maior segurança em seu conteúdo.”
Casos de Uso – Exercício

• Descreva os seguintes casos de uso referentes a um


sistema de envio de mensagem:
– Compor Mensagem

– Enviar Mensagem
Casos de Uso – Exercício

 Compor Mensagem – Fluxo Principal:


1. O Caso de Uso começa quando o usuário escolhe compor uma mensagem.

2. O sistema solicita ao usuário os detalhes da mensagem, incluindo o recipiente ou os

recipientes, o conteúdo ou corpo, o assunto e os anexos.

3. O usuário seleciona um recipiente para a mensagem.

4. O sistema exibe uma lista de contatos, que mostra também grupos de contato.

5. O usuário seleciona um ou mais contatos ou grupos de contato da lista.

6. O sistema fecha a lista de contatos e exibe os que foram selecionados pelo usuário

no campo de recipiente na mensagem.

7. O usuário entra com o assinto e o corpo da mensagem.

8. O sistema salva os detalhes da mensagem entrados pelo usuário.

9. O Caso de Uso termina.


Casos de Uso – Exercício

 Enviar Mensagem – Fluxo Principal:


1. O Caso de Uso começa quando o usuário seleciona uma mensagem da lista de

mensagens.

2. O usuário seleciona um recipiente para a mensagem.

3. O sistema exibe uma lista de contatos, que mostra também grupos de contato.

4. O usuário seleciona um ou mais contatos ou grupos de contato da lista.

5. O sistema fecha a lista de contatos e exibe os que foram selecionados pelo usuário

no campo de recipiente na mensagem.

6. O usuário instrui o sistema para enviar a mensagem.

7. O sistema verifica se todas as informações obrigatórias foram entradas na

mensagem.

8. O sistema envia a mensagem para os recipientes.

9. O Caso de Uso termina.


Casos de Uso – Exercício

 Existem ações comuns?


– Verifiquem os passos 3 à 6 do exemplo...

– Como podemos resolver isso?

Include!!!
Casos de Uso – Exercício

 Compor Mensagem – Fluxo Principal:


1. O Caso de Uso começa quando o usuário escolhe compor uma mensagem.

2. O sistema solicita ao usuário os detalhes da mensagem, incluindo o recipiente ou os

recipientes, o conteúdo ou corpo, o assunto e os anexos.

3. O usuário escolhe selecionar um recipiente para a mensagem. (Escolher

Recipiente)

4. O usuário entra com o assinto e o corpo da mensagem.

5. O sistema salva os detalhes da mensagem entrados pelo usuário.

6. O Caso de Uso termina.


Casos de Uso – Exercício

 Enviar Mensagem – Fluxo Principal:


1. O Caso de Uso começa quando o usuário seleciona uma mensagem da lista de

mensagens.

2. O usuário escolhe selecionar um recipiente para a mensagem. (Escolher

Recipiente)

3. O usuário instrui o sistema para enviar a mensagem.

4. O sistema verifica se todas as informações obrigatórias foram entradas na

mensagem.

5. O sistema envia a mensagem para os recipientes.

6. O Caso de Uso termina.


Casos de Uso – Exercício

 Escolher Recipiente – Fluxo Principal:


1. O Caso de Uso começa quando o sistema exibe uma lista de contatos, que mostra

também grupos de contato.

2. O usuário seleciona um ou mais contatos ou grupos de contato da lista.

3. O sistema fecha a lista de contatos e exibe os que foram selecionados pelo usuário

no campo de recipiente na mensagem.

4. O Caso de Uso termina.


Casos de Uso – Exercício

 Suponha que o usuário tenha a opção de encriptar a mensagem:


1. O Caso de Uso começa quando o usuário seleciona uma mensagem da lista de

mensagens.

2. O usuário escolhe selecionar um recipiente para a mensagem. (Escolher Recipiente)

3. O usuário instrui o sistema para codificar a mensagem.

4. O sistema analisa o conteúdo da mensagem.

5. O sistema codifica o conteúdo da mensagem.

6. O usuário instrui o sistema a enviar a mensagem.

7. O sistema verifica se todas as informações obrigatórias foram entradas na

mensagem.

8. O sistema envia a mensagem para os recipientes.

9. O Caso de Uso termina.


Casos de Uso – Exercício

 Existem ações opcionais?


– Como podemos resolver isso?

Extend!!!
Casos de Uso – Exercício

 Enviar Mensagem – Fluxo Principal:


1. O Caso de Uso começa quando o usuário seleciona uma mensagem da lista de

mensagens.

2. O usuário escolhe selecionar um recipiente para a mensagem. (Escolher Recipiente)

3. O usuário instrui o sistema para codificar a mensagem. (Codificar Mensagem)

4. O usuário instrui o sistema a enviar a mensagem.

5. O sistema verifica se todas as informações obrigatórias foram entradas na

mensagem.

6. O sistema envia a mensagem para os recipientes.

7. O Caso de Uso termina.


Casos de Uso – Exercício

 Codificar Mensagem – Fluxo Principal:


1. O Caso de Uso começa quando o usuário instrui o sistema para codificar a

mensagem.

2. O sistema analisa o conteúdo da mensagem.

3. O sistema codifica o conteúdo da mensagem.

4. O Caso de Uso termina.


Casos de Uso – Exercício

• Considere a seguinte narrativa do caso de uso Realizar Saque.


Construa uma especificação deste caso de uso contemplando fluxo
básico, fluxos alternativos e fluxos de exceção.
"A operação de um caixa eletrônico tem início a partir de uma sessão em que o cliente seleciona a
opção de realizar saque. O cliente então escolhe uma quantia a ser retirada, a partir de um conjunto
de opções de quantia disponíveis.

O sistema verifica se a conta correspondente tem saldo suficiente para satisfazer a requisição. Senão,
uma mensagem adequada é reportada, o que acarreta na execução da extensão. Se há dinheiro
suficiente, os números da conta e da agência do cliente são enviados ao banco, que aprova ou
desaprova a transação. Se a transação é aprovada, a máquina libera a quantia correspondente e
emite um recibo. Se a transação é desaprovada, a extensão Informar Falha é executada.

O banco é notificado, independentemente de uma transação aprovada ter sido completada ou não
pela máquina. Se a transação é completada, o banco realiza o débito na conta do cliente”

Você também pode gostar