Um caso de uso é uma descrição narrativa
de uma seqüência de eventos que ocorre
quando um ator (agente externo) usa um
sistema para realizar uma tarefa[Jacobson
92]
Uma unidade coerente de funcionalidade
provida por um sistema, manifestada por
uma seqüência de mensagens trocadas entre
o sistema e um ou mais usuários externos
(representados como atores), junto com as
ações executadas pelo sistema.
ã
|
!
ã"
# $
Mostram apenas o que o sistema faz, e não
como.
|aso de uso: representação
gráfica
%&' ()
"
*
*
|
$
"
+ , ,
$
+
-
)
ã
-
.
*/
$
$ |
0#
1 2334
#
5
$ - 6
0
$
$ | /
$
|
|omo encontrar atores?
Quem usa o sistema?
Quem instala/mantém o sistema?
Quem inicia/desliga o sistema?
Que outros sistemas usam o sistema?
Quem recebe informação do sistema?
Quem provê informação ao sistema?
|omo encontrar casos de
uso?
Que funções o ator vai querer do sistema?
O sistema armazena informações? Que
informações atores irão criar, ler, atualizar ou
apagar?
O sistema precisa notificar o ator sobre
mudanças no seu estado interno?
Existe algum evento externo que o sistema
precisa saber? Que ator informa o sistema
desses eventos?
Vluxo de Eventos
Especifica o comportamento de um caso de
uso
É uma seqüência de comandos declarativos
que descreve as etapas de execução de um
|aso de Uso
Permanece focado no domínio do problema e
não em sua solução
Pode conter testes condicionais e iterações
|ontém informações relativas:
± Às condições de início e término do caso de uso
± Quais os atores interessados no sistema
± |omo o caso de uso interage com esses atores
5
O fluxo de eventos de um caso de uso é
composto por:
± Um Vluxo Básico - descreve a funcionalidade
principal do caso de uso, quando nenhum desvio
é tomado
± Zero ou Mais Vluxos Alternativos - descrevem
desvios pré-definidos do fluxo básico
Esses fluxos podem ser especificados
através de:
± Descrição textual informal
± Texto semi-formal (através de pré-, pós-condições
e invariantes)
± Pseudo-código
± Ou uma combinação destes
Exemplo (Vluxo Básico do
caso de uso |omprar
Produtos)
Descrito em pseudo-código:
2 ã
+$
7 " #
/
ã $
8
$
ã
9
: ã
#
4 ã
Exemplo (Vluxo Básico de
Eventos ± |ont...)
...
½ ã
$ $
; )
+
$ &<
+
=
> ã $
? ã
$
3 ã
+
$
2@ ã
$
Exemplo (Vluxos Alternativos
de
A
/
Eventos)
1. No passo 2 do fluxo básico, pode haver um
produto com um código inválido. Nesse caso, o
sistema avisará que o código fornecido é inválido e
pede que o atendente registre o próximo produto.
Vá para o passo 2 do fluxo básico.
2. No passo 6, o cliente pode escolher pagar com
cartão de crédito ou débito.Neste caso, o
atendente passa o cartão e o cliente digita a
senha.Se houver, vá para o passo 6 do fluxo
básico.
3. A qualquer momento, o atendente pode cancelar a
transação. Nesse caso, as informações referentes
|
Em UML significa um caminho através de um
caso de uso.
Uma instância de um caso de uso
)BC
Exemplo (Sacar dinheiro):
± Saque com sucesso
± Tentativa de saque MAS senha incorreta
± Tentativa de saque MAS saldo insuficiente
| |
2
2
2
Vormato de Documentação de
|asos de Uso
Não existem padrões na indústria ou na
literatura para sua formatação
Deve-se incluir informações que
facilitem a comunicação entre os
clientes e a equipe de desenvolvimento
do sistema
Vormato de Documentação de
|asos de Uso
(Modelo mais usado)
%|
D
*
"
/5
0
"-|
A
"8|
A
/
E
E
/
%
5F
ã $
#
*6
# C
/
$
#
'
G
$
#
H
#
ã
# +
$
#
ã
-
#
ã
-
#
ã
-
$
#
!
#
I J
Quando você estiver descrevendo comportamentos semelhantes
entrecasos de uso, mas algum deles faz um pouco mais que o outro.
Exemplo:
Um caso de uso incorpora explicitamente o
comportamento de outro caso de uso, evitando assim
repetições de descrição de fluxos.
ã
-
E
#
E
BC
# 8
KK
LL
0
I J
Quando houver repetição entre casos de uso e você desejar evitar
esta repetição
Exemplo:
É usado para descrever cenários opcionais de um
caso de uso
± os casos de uso descrevem cenários que sempre
acontecerão no sistema
± os casos de uso estendidos ocorrerão em uma situação
específica
± concentra-se essa seqüência em um caso de uso público
Exemplo:
V
"
:
6
# *|
ã
È
È
$
È
È
$
"
È 0
*
È 0
|
È |
È |
$ |
È
$
* F
"
# |
ã
È
A|
È
|
|
"
È 0
|
$
È *
'
*
$ |
È * |
A
+ |
ã
È
"
È 5
È + A
|
È
+
È
5 |
ã
È ã
#
"
È 0
A
E 5
F
KK
LL
È
E M KK!
#
LL
$KK
LL
È 0
A
È 5
A
F
KKLL5/|
A5
*