Sei sulla pagina 1di 38

Engenharia de Software I

*Casos de Uso

*Aula reaproveitada da Dr. Silvia Vergílio da Universidade Federal do Paraná


O que é
 Descrições narrativas de processos do domínio da
aplicação

 Documentam a seqüência de eventos de um ator (um


agente externo) usando o sistema para completar, do
início ao fim, um determinado processo

 Representação em UML:
Buy Items

2
Objetivos de um Caso de Uso
 Ser compreensível para os usários leigos em informática

 Auxiliar a tarefa de análise, especificando funcionalidades e


comportamento do sistema

 Delimitar o sistema

 Servir de base para derivar casos de teste

3
Atores

 Entidades externas ao sistema que de algum modo


participam da estória do caso de uso
 Estimulam o sistema com eventos de entrada, ou recebem
alguma coisa dele
 Designados pelo papel que exercem no caso de uso
 Ex.: Cliente, Operador, etc.

 Representação em UML:
Customer

4
Atores e Casos de Uso
 Um caso de uso possui um ator que o inicia, que gera o
estímulo inicial, e possivelmente vários atores participantes
 O ator iniciador deve ser indicado explicitamente na descrição
do caso de uso

 Algumas categorias típicas de atores incluem:


 papeis exercidos por pessoas
 sistemas de computação, outros softwares
 dispositivos elétricos e mecânicos
 hardware

5
Diagramas de Caso de Uso
 Ilustram um conjunto de casos de uso e atores para um
sistema e os relacionamentos entre eles

POST

Buy Items

Cashier Customer
Log In

Refund Purchased
items

6
Diagrama de Caso de Uso

7
Relacionamentos no Diagrama de
Casos de Uso

 Relacionamento entre atores

 Relacionamento entre atores e casos de uso

 Relacionamento entre casos de uso

8
Relacionamento entre atores
 Relacionamento de Associação

_________
Cliente Caixa

 Relacionamento de Generalização

_________

Funcionario Vendedor

9
Herança entre atores

Gerente

Gerente de Gerente de
Compras Vendas

10
Relacionamento entre atores e casos
de uso

_________ Buy Items


Cliente

_________ Buy Items


Customer

A seta pode indicar duas alternativas a escolher: ator que


11 inicia o caso de uso ou simplesmente a direção dos dados
Relacionamento entre Casos de Uso
<<uses>> ou <<extends>>
<< include>>

______ ________ RealizarPedido


RealizarPedido
Cliente
Cliente
<<extends>>
<<uses>>

ValidarCliente
CadastrarCliente

12
Relacionamento de Uso ou Include

 Utilizar quando se tem um bloco de comportamento que é o


mesmo para vários casos de uso.

 Representar o fluxo comum como um outro caso de uso B a


ser chamado pelo caso de uso A complexo: A <<include>>B

 ValidarCliente pode ser um caso de uso utilizado por outro


caso tal como faz o Realizar Pedido

13
Relacionamento de Extensão
 Utilizar quando se tem dois casos de usos que fazem algo
parecido, só que o caso de uso B faz alguma coisa a mais que
A. B estende A

 B representa alguma situação não muito comum que ocorre


em A mediante a satisfação de uma pré-condição

14
Relacionamento de Generalização
 relação estrutural
entre um caso de uso
mais geral e um caso _______

de uso mais específico. Customer


Identificar Usuário

 o caso de uso mais


geral é uma generalização (abstração)
do ou dos casos de uso mais
específicos. O caso de uso geral, Verificar Senha

representa as partes comuns de casos


de uso especializados.
15
Fluxo de Eventos, Cenários
 Um caso de uso descreve um fluxo de eventos para realizar
uma operação

 Cenário: é uma das formas possíveis de se realizar um caso de


uso

 Tipos de fluxos:
 Típicos: Principal ou Básico
 Atípicos: Alternativos, casos de erro, cancelamento, etc.

16
Pré e Pós Condições
 Condições que devem ser verdadeiras antes de o caso de uso
ser executado, ou após a sua execução.

Ex: retirar dinheiro em um caixa


 Pré-condição: cliente precisa ter conta no banco
 Pós-condição: o terminal fica pronto para outro cliente.

17
Interfaces entre Atores e Casos de Uso

 Identificam quais operações o ator (ou o caso de uso) realizam


 Auxiliam a especificar as interações e a reutilizar casos de uso

________ --------------

Cliente Interface
Realizar Pedido
Cliente

18
Tipos de Caso de Uso Com Respeito à
Importância
 Primário
Representam os processos principais ou mais comuns (ex.:
Comprar Itens)

 Secundário
Representam processos menos importantes ou mais raros (ex.:
Cadastrar Operadores)

 Opcional
Representam processos que podem ser ignorados ou incluídos
em futuras versões do sistema (ex.: Solicitar Estoque para um Novo
Produto)
19
Tipos de Casos de Uso com Respeito à
Descrição Textual

 Alto-nível
 Breve descrição de um processo, normalmente em duas ou três
frases, e deliberadamente vago em decisões de projeto
 Criados na fase inicial de requisitos

 Expandido
 Descrição passo a passo dos fluxos de eventos de um processo
 Durante a fase de requisitos, apenas os casos de uso mais
importantes são geralmente escritos nesse formato

20
Casos de Uso Alto Nível
 Exemplo de um caso de uso de alto-nível:
Caso de uso: Comprar Itens (Buy Items)
Atores: Cliente (Customer), Operador (Cashier )
Tipo: primário
Descrição: Um Cliente chega no caixa com itens para comprar. O
Operador registra os itens e coleta o pagamento. Ao
final, o Cliente sai com os itens.

 A UML não especifica um formato rígido para os


cabeçalhos e a estrutura de um caso de uso
 Podem ser alterados de acordo com as necessidades de
documentação

21
Caso de Uso Expandido
 Exemplo de um caso de uso expandido:

Caso de uso: Comprar Itens com Dinheiro (Buy Items with Cash)
Atores: Cliente (Iniciador), Operador
Propósito: Capturar uma venda e seu pagamento em dinheiro.
Descrição: Um Cliente chega no caixa com itens para comprar. O
Operador registra os itens e coleta um pagamento com
dinheiro. Ao final, o Cliente sai com os itens.
Tipo: primário e essencial
Referencia: Funções: R1.1, R1.2, R1.3, R1.7, R1.9, R2.1

Típica Seqüência de Eventos


Ação do Ator Resposta do Sistema
1. Este caso de uso começa
quando um Cliente chega no
caixa com itens para comprar.
22
Caso de Uso Expandido
 Exemplo de um caso de uso expandido (cont.):
Típica Seqüência de Eventos
Ação do Ator Resposta do Sistema
2. O Operador registra o identi- 3. Determina o preço do item e
ficador de cada item. adiciona informação sobre o item
Se há mais de um do mesmo à transação de venda em anda-
item, o Operador também pode mento.
informar a quantidade. Mostra a descrição e o preço do
item corrente.
4. Após processar o último item, o 5. Calcula e mostra o valor total
Operador indica ao POST que a da venda.
entrada de itens terminou.
6. O Operador informa o total ao .
Cliente.

23
Caso de Uso Expandido
 Exemplo de um caso de uso expandido (cont.):
Típica Seqüência de Eventos
Ação do Ator Resposta do Sistema
7. O Cliente entrega um paga-
mento em dinheiro, possivelmente
maior do que o valor total.
8. O Operador registra o valor 9. Mostra o troco devido.
recebido em dinheiro. Emite um recibo.
10. O Operador deposita o 11. Registra a venda no log de
dinheiro e retira o troco devido. vendas completadas.
O Operador entrega o troco e o
recibo ao Cliente.
12. O Cliente sai com os itens .
comprados.

24
Tipos de Casos de Uso com Respeito à
Implementação

 Essencial
 Descrição de um processo em termos de sua motivação e
atividades essenciais
 Expressos relativamente livres de detalhes de implementação,
decisões de projeto, e uso de tecnologias

 Real
 Descrição de um processo em termos de seu projeto real,
comprometido com tecnologias de desenvolvimento, interfaces
de entrada e saída, etc.

25
Caso de Uso Essencial
Trecho do caso de uso Comprar Itens essencial

Ação do Ator Resposta do Sistema


2. O Operador registra o identi- 3. Determina o preço do item e
ficador de cada item. adiciona informação sobre o item
Se há mais de um do mesmo à transação de venda em anda-
item, o Operador também pode mento.
informar a quantidade. Mostra a descrição e o preço do
item corrente.
4. ... 5. ...

26
Caso de Uso Real
Trecho do caso de uso Comprar Itens real
Ação do Ator Resposta do Sistema
2. Para cada item, o Operador 3. Determina o preço do item e
digita o código universal de pro- adiciona informação sobre o item
duto (UPC) no campo de entrada à transação de venda em anda-
UPC da Janela 1. Ele então pres- mento.
siona o botão “Entra Item” com o Mostra a descrição e o preço do
mouse ou pressiona a tecla item corrente na Caixa de Texto 2
<Enter>. da Janela 1.
4. ... 5. ...

27
Casos de Uso com Fluxos Alternativos
 Caso de uso Comprar Itens Expandido
Seção: Principal
Ação do Ator Resposta do Sistema
1. ...
2. O Cliente escolhe o tipo de
pagamento:
a) Se pagamento com dinheiro,
veja seção Pagamento com
Dinheiro.
b) ...
Seção: Pagamento com Dinheiro
Ação do Ator Resposta do Sistema
1. O Cliente entrega um paga-
mento em dinheiro ...
28
Formato para um Caso de Uso
Nome do caso de uso
Descrição
Atores
Tipo
Referências
Pré-condições
Fluxo de eventos
Fluxo principal (típico)
Fluxos alternativos
Fluxos não típicos (erros, cancelamentos, etc)
Pós-condições
Pontos de extensão
Casos de uso incluídos
Outros requisitos (Interfaces)

29
Decomposição de Diagramas de Casos
de Uso

 Pode-se dividir sistemas complexos em sub-sistemas e para


cada um deles um diagrama de Casos de Uso

 Para mostrar o relacionamento entre esses sub-sistemas, os


Casos de Uso são agrupados em Pacotes.

30
Decomposição de Diagramas de Casos
de Uso

Casos de uso Casos de uso


Adminitrativos Mercadológicos

Casos de uso
Gerai
s

31
Identificando Casos de Uso

 Normalmente não são eventos ou passos individuais, mas


um processo completo
 Erro mais comum!

 Método baseado em atores


1. Identificar os atores relacionados com o sistema ou
organização
2. Para cada ator, identificar os processos que eles iniciam ou
participam

32
Identificando Casos de Uso
 Método baseado em eventos
1. Identificar os eventos externos aos quais o sistema deve
responder
2. Relacionar os eventos a atores e casos de uso

 Exemplos do sistema Posto Comercial


 Operador: Efectuar Login, Retirar Dinheiro
 Cliente: Comprar Itens, Devolver Itens
 Digitar Senha?
 Imprimir Recibo?

33
Casos de Uso e Funções

 Todas as funções do sistema identificadas na especificação dos


requisitos devem ser alocadas a casos de usos
 Alocação documentada através da seção Referencia

34
Casos de Uso e o Limite do Sistema
 Identificar os atores e casos de uso de um sistema requer a
definição de seu limite de atuação

 Alguns limites típicos incluem:


 o software/hardware de um dispositivo ou sistema de computação
 um departamento de uma organização
 uma organização inteira

 Limites diferentes podem resultar em diferentes conjuntos


de atores e casos de uso

35
Casos de Uso e o Limite do Sistema
 Exemplo de um diagrama de caso de uso para o sistema Posto
Comercial, quando o limite de atuação é a loja inteira

Store

Buy Items

Customer
Refund Purchased
items

36
Recomendações
 Crie nomes sempre começando com um verbo

 Identifique primeiro os fluxos principais, iniciando com:


1. Este caso de uso começa quando <Ator> <inicia evento>
 Use a seção Seqüências não Típicas para representar desvios para
seqüências de eventos incomuns ou excepcionais.

 Use subseções para representar desvios para seqüências


alternativas com igual importância ou probabilidade de
ocorrência

37
Recomendações
 Procure estimar a dimensão (granularidade) do caso de uso. Se ele
estiver muito extenso procure identificar sub-casos
 Procure identificar partes comuns nos seus casos de uso, e usar
<<include>>.
 Identifique serviços comuns aos casos de uso e crie casos de uso
genéricos.
 A medida que se definem os casos de uso um refinamento no
diagrama é possível

38

Potrebbero piacerti anche