Você está na página 1de 53

Escrevendo Bons

Casos de Uso
Moacyr Cardoso de Mello Filho
p
Certified IT Specialist
Capturando requisitos corretamente

Necessidades Sistema a
do cliente ser
construdo
Requisitos
d f d
definidos Apenas
Esta
Parte
interessa
2

Capturando requisitos corretamente

Necessidades Sistema a
do cliente ser
construdo
Requisitos
Consenso sobre que definidos
d f d
o sistema dever Consenso em
f
fazer como o sistema
dever fazer

3

O bsico sobre Casos de Uso

Ator
Algum ou alguma coisa fora
do sistema interagindo com
Actor ele.

Caso de Uso
Use Case O que o ator quer que o
sistema faa
faa.

O bsico sobre Casos de Uso

Use Case Name

Um Caso de Uso define uma sequncia


de aes realizadas pelo sistema
(e pelos atores) que retorna um resultado
observvel
b l e de
d valor
l para o ator.

O bsico sobre Casos de Uso

Cada Caso de Uso possui:


Objetivo
j algo
g de valor ppara o ator. O caso de uso
descreve aes que o sistema toma para entregar algo de
valor para o ator
Sequncia um completo e significativo fluxo de eventos
da perspectiva particular de um ator
Interao O caso de uso modela um dilogo entre o
sistema e os atores
Sistema

6

O bsico sobre Casos de Uso

Use Case: Escolher Produtos e Fazer Pedido


Brief Description: Este caso de uso descreve como Clientes usam o sistema para
ver e comprar produtos venda
venda. Podemos encontrar produtos de vrias maneiras:
folheando, consultando por tipo de produto, por fabricante ou usando palavras chave .
Basic Flow
1. Selecionar Produtos. O cliente O sistema
2. Escolher Produto. O cliente O sistema
3. Definir Forma de Pagamento. O cliente O sistema
4
4. Definir Forma de Envio.
Envio ???
5. Confirmar Pedido. O cliente O sistema Identified
Alternate Flow
A1 Procura por Palavra Chave.
Chave O sistema OO cliente
A2 Nenhum Produto Selecionado. O sistema Outlined
A3 Produto Fora de Estoque. O sistema
A4 Forma de Pagamento Rejeitada. O sistema ..
A5 Forma de Envio Rejeitada. O sistema
A6 Pedido Sujeito a Demora. O sistema O cliente

Detailed

7

O bsico sobre Casos de Uso

Use Case Model Survey Use Case Specifications

O que o sistema dever fazer Como o sistema dever faz


faz-lo
lo
Introduo ao modelo Brief Description
D
Descrio
i Sinttica
Si tti (S(Survey)) Fl off E
Flow Events
t
Breve descrio de Atores Pre/Post Conditions
Breve descrio de Casos de S i lR
Special Requirements
i t
Uso Extension Points
diagramas desenhos,
diagramas, desenhos fotos
fotos, etc
8

O bsico sobre Casos de Uso

Requisitos no ciclo de vida do projeto


A maioria
i i A maioria
identificada e detalhada
esboada (80%)
Identified (80%)

Atividades
Outlined Em Atividades individuais
grupo

Detailed
Incio Fim
projeto projeto

9

Objetivos

Compartilhar algumas dicas e conselhos em como


escrever Casos de Uso
Compartilhar abordagens para situaes tpicas
Contexto
Problema e consequncias
P i solues
Possveis l
Dicas
Exemplos
Premissa:
Vocs j tiveram algum contato com Casos de Uso

10

Agenda

Situaes padro encontradas no uso da tcnica


Padro #1: O qque um Caso de Uso ??
Padro #2: Abusando de Casos de Uso
Padro #3: Aumentando Casos de Uso
Padro #4: Desviando Casos de Uso
P d #5:
Padro #5 RReabusando
b d de
d C
Casos de
d Uso
U
Usando Casos de Uso
Bons Casos de Uso

11

Padro
#1

Oq
que um Caso de Uso??
D b t d a natureza
Debatendo t d C
dos Casos de
d UUso.

12

O que um Caso de Uso? Problema

Contexto
Cliente ou equipe
q p so
relativamente novas no uso
da tcnica
Problema
Conceitos diferentes levam a
debates entre o cliente e a
equipe de projeto
Pior quando especialistas,
esto presentes Na UML, qualquer
coisa abstrata
escrita em itlico
13

O que um Caso de Uso? Exemplo

O que voc est debatendo? sobre o


problema?
1 No estou certo de
como deveria tratar sobre
este fluxo alternativo! metodologia?
2 Ele identificou
C
Casos de
d Uso
U antes t 3 A validao deve ser
de identificar atores! colocada num Include
Use Case, para
4 Este passo deveria compartilhamento!
ocorrer antes 5 Voc no deve usar
daquele!
flechas no diagrama!

14

O que um Caso de Uso? Soluo

Soluo
Obter ajuda
j
Dependente do ciclo de vida do projeto

IBM Rational Mentoring


g
Ainda so
teis
Existem outras coisas
mentoring e
com se preocupar
workshops
0%

Casos de Uso so ~20% 100%


usados para fechar
escopo do projeto Tempo de projeto
antes do projeto
i i i
iniciar
15

O que um Caso de Uso? Dicas

Dicas
Casos de Uso so pprincipalmente
p texto
No trabalhe apenas com o Diagrama de Casos de Uso
Faa uma mini-iterao ao incio do projeto Rational mentor
para gerar um executvel
Avalie a utilidade do Caso de Uso (anlise, design e teste)
Esteja
E t j aberto
b t para revises
i na aplicao
li dda
tcnica, ento crie um guia de orientao
Perseverana
P necessria,
i principalmente
i i l t
durante o cos inicial de um projeto
Facilitadores/ mentores devem produzir resultados
observveis j na primeira semana

16

Padro
#2

Abusando de Casos de Uso


Caando Casos de Uso
Uso

17

Abusando de Casos de Uso Problema

Contexto
Decomposio
p Funcional
Quebra da funcionalidade do sistema em pequenas partes,
isoladas entre s
As partes trabalham juntas para fornecer a funcionalidade desejada do sistema
Mas, frequentemente no fazem sentido isoladamente.
Muitos
M it C Casos de
d UUso
Problema
Dificuldade de entendimento do fluxo, especialmente dos
fluxos alternativos
Dificuldade para avaliar a completude da especificao

18

Abusando de Casos de Uso Exemplo

Casos de Uso
no
so
ffunes

(nem passos de
Login

Procura Produto alguma funo)


Cliente
Adiciona ao Carrinho

Verifica os Itens escolhidos Como voc verificaria o


Caso de Uso Faz
Pagamento, sem os demais?
Faz Pagamento

19

Abusando de Casos de Uso Exemplo

A vem o
especialista Login

<<include>>

<<include>> Procura Produto

<<include>>

Escolhe Produto e Adiciona ao


Cliente <<include>> Carrinho
Faz pedido

<<include>>
Verifica os Itens escolhidos
Trabalhe sobre a Especificao de
Casos de Uso e no somente sobre o
diagrama
diagrama. Faz Pagamento

20

Abusando de Casos de Uso Exemplo

Casos de Uso no
so fluxos de dados
dados,
Atendente
Entrada do Pedido
nem design

Notificao
do
Processamento Cliente
do Pedido
Importao de Pedidos

Qual Caso de Uso valida o pedido? Email


Qual Caso de Uso mostra um erro? Notificao ao
Gerente de Vendas
Trabalhe sobre a Especificao de Casos
de Uso, no somente com o diagrama.

21

Abusando de Casos de Uso Exemplo

Novo Pedido
Casos de Uso
no
so

Novo Item
Gesto de
Pedidos
navegao de
Alterar Pedido

Remover Item

Novo Cliente
telas
Gerente de Vendas Gesto de
Clientes Alterar Endereo
Alterar Cliente

Relatrio Semanal
Quais so os passos
para Gesto de
Relatrios
Relatrio Mensal Pedidos?

Lista de Clientes
22

Abusando de Casos de Uso Problema

Razes
Analistas tiveram experincia
p como desenvolvedores
Usurios tm experincia com fluxo de dados
Transposio direta de uma lista de requisitos
Tentativa de aplicar a tcnica usando somente o diagrama de
casos de uso sem considerar as especificaes textuais de
cada caso de uso

23

Abusando de Casos de Uso Soluo

Soluo
Quando na identificao
de Casos de Uso,,
esboar rapidamente os passos dos fluxo
bsico e os fluxos alternativos Rational mentor
Quando os fluxos de eventos parecerem
similares, junte os Casos de Uso
Passos
P similares
i il
Dados manipulados similares

24

Abusando de Casos de Uso Dicas

Dicas
Quando em dvida,, jjunte os Casos de Uso
mais fcil dividir do que juntar
Rational mentor
Pode dividir,
dividir se necessrio
necessrio, mais tarde
Tambm conhecido como Estruturar o Modelo de Casos de Uso (Structure
Use Case Model)
Equilbrio, no junte demasiado
Q
Quando orientando
Compreenso pelo cliente chave
Esteja atento para as datas de projeto
O progresso do projeto tambm chave

25

Padro
#3

Aumentando Casos de Uso


Vagarosamente passo a passo
Vagarosamente, passo, pelo fluxo bsico
bsico

26

Aumentando Casos de Uso Problema

Contexto
Muitos ppassos num fluxo,, pprincipalmente
p no fluxo bsico
Problema
Longo caminho para o Ator para executar seu objetivo
O cliente se cansa aps ler logo os primeiros passos, ento
pra de ler o resto
Consequncia
Qual a utilidade de uma especificao de requisitos se o
cliente no a l?

27

Aumentando Casos de Uso Exemplo

Verso A
1.
2.
O sistema pede o nome do produto
O usurio entra o nome do produto
Sintetize passos
3.
4.
O sistema solicita palavras chave para o produto
O usurio entra palavras chave para o produto
em transaes
t
5. O usurio submete a consulta do produto
6
6. O sistema
i t apresenta t os ddetalhes
t lh ddo produto
d t
7.

V B
Verso
1. Escolhe Produto. O cliente entra o nome do produto e palavras chave. O sistema recupera e
mostra os detalhes do produto.

Verso C
1. Escolhe Produto.
1. O cliente entra o nome do produto e palavras chave.
2. O sistema recupera e mostra detalhes do produto.

28

Aumentando Casos de Uso Exemplo

Verso A: Escolhe Produto e Faz Pedido


1. O sistema solicita a categoria do produto.
2. O usurio entra a categoria do produto.
3. O sistema recupera e mostra as sub-categorias do produto, indicando o cdigo de cada sub-
categoria e a sub-categoria.
4
4. O sistema
i t solicita
li it a sub-categoria
b t i ddo produto
d t ddesejado.
j d
5. O usurio entra o cdigo da sub-categoria do produto.
6. O sistema recupera e mostra a lista de tipos de produto para a sub-categoria, mostrando o cdigo do
tipo
p de produto,
p , o nome do tipo
p produto
p e a descrio
do tipo
p de pproduto.
7. O sistema solicita o tipo de produto.
8. O usurio entra o cdigo do tipo de produto.
9. O sistema recupera e mostra a lista de produtos para o determinado tipo de produto escolhido,
mostra o cdigo do produto
produto, o nome do produto
produto, a descrio do produto e a disponibilidade do
produto.
10.

Ainda estamos muito


longe de fazer a compra!
29

Aumentando Casos de Uso Exemplo

Verso B: Escolhe Produto e Faz Pedido


1. Selecionar Categoria do Produto. O usurio entra a categoria do produto. O sistema recupera e
mostra as sub-categorias do produto, mostrando o cdigo da sub-categoria e o nome da sub-
categoria.
2. Selecionar Sub-categoria do Produto. O usurio entra o cdigo da sub-categoria do produto.O
sistema recupera e mostra a lista de tipos de produto para a sub-categoria
sub categoria, mostrando o cdigo do
tipo de produto, o nome do tipo de produto e a descrio.
3. Selecionar Tipo do Produto. O usurio entra o cdigo do tipo de produto. O sistema recupera e
mostra a lista de produtos para o tipo de produto escolhido, mostrando o cdigo do produto, o nome
do produto
produto, a descrio e a disponibilidade do produto.
produto
4.

Q i as grandes
Quais d operaes

desse fluxo?
30

Aumentando Casos de Uso Exemplo

Verso
V C: C Escolhe
E lh Produto
P d t e Faz
F Pedido
P did
1. Selecionar Produto
1. Selecionar Categoria do Produto. O usurio .
2. Selecionar Sub-categoria do Produto. O usurio .
3. Selecionar Tipo de Produto. O usurio .
4. Selecionar Produto. O usurio .
5. Adicionar ao Carrinho de Compras. O usurio .
2. Verificar Itens Escolhidos
1. Mostra a Lista de Compras Selecionada. O usurio solicita o fechamento de sua lista .
2
2. Mostra as Formas de Pagamento e Envio.
Envio O usurio .
3. Totalizao e Confirmao do Pedido. O usurio .
3. Fazer Pagamento
1. Selecionar Forma de Pagamento. O usurio .
2
2. C fi
Confirmao
do
d Pagamento.
P t O usurio
i .

31

Aumentando Casos de Uso Dicas

Dicas
Storyboards
y de Casos de Uso
Cada tela poder fornecer uma indicao de transao
Precisamos capturar requisitos de interface de usurio (UI) Rational mentor
MAS,
MAS no coloque detalhes de UI nas Especificaes de Caso
de Uso a menos que deseje que se transformem em
requisitos
Alguma
Al identao
id t no flfluxo ajuda
j d na lleitura
it
Mas no exagere!
Escolha um estilo que funcione para a equipe
Seja consistente

32

Padro
#4

Desviando os Casos de Uso


Descobrindo que existem fluxos alternativos
alternativos

33

Desviando os Casos de Uso Problema

Contexto
Muitos fluxos alternativos
60% - 80% so variantes, alternativas, excees
Problema
Dificuldade em rastrear os Cenrios
Consequncia
Os leitores se pperdem
Soluo
Agrupamento de fluxos alternativos
Pr-Condies

34

Desviando os Casos de Uso Problema

Fluxos alternativos que s fazem volume


A qqualquer
q tempo p o cliente ppode sair (q
(quit))
A qualquer tempo o cliente pode cancelar a solicitao
Se a conexo terminar por timeout o Caso de Uso termina
Se o database ficar for a do ar o sistema mostrar tela azul, o
cliente necessita chamar o suporte

35

Desviando os Casos de Uso Exemplo

Verso A: Solicitao de Servio Tcnico


Fluxos Alternativos
A1 Se no passo 1.1 do Fluxo Bsico, houver qualquer campo
no preenchido o Caso de Uso termina
A2 Se no passo 11.22 do Fluxo Bsico
Bsico, o aparelho e fabricante no
so vlidos o Caso de Uso termina
A3 Se no passo 1.3 do Fluxo Bsico, o nmero serial no estiver
no database de inventrio
inventrio, o Caso de Uso termina
A4 Se no passo 1.4 do Fluxo Bsico, no h dias insuficientes no
contrato o Caso de Uso termina
A5 Se no passo 1.5 do Fluxo Bsico, o solicitante no est em
dia com o contrato de manuteno o Caso de Uso termina

36

Desviando os Casos de Uso Soluo

Verso B: Solicitao de Servio Tcnico


Fluxos Alternativos
A1 Solicitaes Invlidas
A1.1 Se no passo 1.1 do Fluxo Bsico, houver qualquer campo no preenchido o Caso de Uso termina
A1 2 Se no passo 11.22 do Fluxo Bsico
A1.2 Bsico, o aparelho e fabricante no so vlidos o Caso de Uso termina
A1.3 Se no passo 1.3 do Fluxo Bsico, o nmero serial no estiver no inventrio, o Caso de Uso termina
A1.4 Se no passo 1.4 do Fluxo Bsico, no h dias insuficientes no contrato o Caso de Uso termina
A1.5 Se no ppasso 1.5 do Fluxo Bsico, o solicitante no est em dia com o contrato o Caso de Uso termina
A2 No H Tcnicos Disponveis
A2.1 ..

37

Desviando os Casos de Uso Soluo

Verso C: Solicitao de Servio Tcnico


Pr-Condies

O cliente tem dias suficientes no contrato
O cliente est em dia com o ppagamento
g do contrato
Fluxo de Eventos
Fluxo Bsico

38

Padro
#5

Reabusando de Casos de Uso


Repetindo fluxos!

39

Reabusando de Casos de Uso Problem

Contexto
Alguns
g fluxos so repetitivos
p
Alguns fluxos no tm importncia para visualizar o negcio
Problema
Ao deix-los no fluxo bsico eles se tornam confusos
Consequncia
Os leitores se pperdem
Alteraes em muitos lugares
Soluo
Sub-Fluxos, Incluso (Include Use Case)

40

Reabusando de Casos de Uso Exemplo

V A:
Verso A Solicitao
S li it dde S
Servio
i TTcnico
i
Fluxo de Eventos
Fl
Fluxo Bsico
B i
Submeter Solicitao de Servio
Entrar Detalhes da Solicitao. O usurio
V lid Aparelho.
Validar A lh O sistema
i t valida
lid aparelho,
lh verificando
ifi d titipo e ffabricante
bi t
Validar Nmero de Srie.
..
Fluxos Alternativos
A1 Aparelho Invlido
Sub Fluxo
S1 valida aparelho
1. Validar Tipo e Fabricante. O sistema verifica se o tipo e o fabricante do aparelho so elementos
vlidos no inventrio de aparelhos suportados.
2
2. Validar Nmero Serial.
Serial O sistema verifica se o nmero serial fornecido identifica corretamente o
cliente e o aparelho no database de inventrio.
3. Retorno. O Caso de Uso retorna no prximo passo.

41

Reabusando de Casos de Uso Soluo

Especificao de Caso de Uso


Rational mentor

Fluxo de Eventos
Fluxo Bsico 1 V rapidamente at o objetivo do
1 At antes
Ator t de
d colocar
l ddetalhes
t lh
Fluxos Alternativos 2 Explore alternativas e aes
A1 corretivas
Sub Fluxos 3 Simplifique movendo fragmentos
S1 para sub-fluxos
Pr
P Condies
C di Simplifique alternativos
Ps Condies 4
com pr-condies

42

Reabusando de Casos de Uso Soluo

include

Especificao de Caso de Uso Include Use Case


Rational mentor

Fluxo de Eventos Fluxo de Eventos
Fluxo Bsico
Fluxo Bsico 1
1
Fluxos Alternativos
Fluxos Alternativos A1
A1
S b Fluxos
Sub Fl
Sub Fluxos S1
S1
Pr
P Condies
C di
Ps Condies

43

Reabusando de Casos de Uso Dicas

include

Caso de Uso Caso de Uso de Incluso


Rational mentor

Cuidado
C id d com a decomposio
d i ffuncional
i l
Praticantes avanados trabalhando em grandes
sistemas
i t
Iniciantes devem permanecer com o Bsico,
Alt
Alternativos
ti eS
Sub-fluxos
b fl

44

Usando Casos de Uso
Resumindo

45

Usando Casos de Uso - Dicas

Identificar Casos de Uso

Identificado

Esboado
Lista das tarefas e
Lista de Atores objetivos dos A
Agrupar tarefas
t f em
Detalhado
Atores Casos de Uso

Descrever como Atores e


Casos de Uso Interagem 46

Usando Casos de Uso - Dicas

Esboar Casos de Uso

Identificado
Tome um Caso de Uso
Esboado Esclarea tarefa e objetivo

Detalhado
Li t os passos ddo iincio
Liste i
at atingir o objetivo
Para cada passo explore
qualquer fluxo alternativo

47

Usando Casos de Uso - Dicas

Esboar Casos de Uso


Fluxos Bsicos e Fluxos Storyboards para Casos de Uso
Alternativos

Explore e priorize variaes


Aes do sistema (validao, notificao) Liste contedo e aes
Trabalhe com os alternativos Esboce navegao
(nem tudo visvel da tela)
48

Usando Casos de Uso - Dicas

Detalhar Casos de Uso


Nome Descreva cada passo e
Breve Descrio condio.
Identificado
Fluxo de Eventos
Fluxo Bsico A li
Aplique id
identao
t e
Esboado cabealhos.
1
Fluxos Alternativos
Detalhado A1 Escreva concisamente:
Sub Fluxos quem faz o que?
S1
Pr Condies
Acrescente diagramas.
Ps Condies Pare!
P !
Requisitos Especiais
Diagramas desenhos
Diagramas, desenhos
49

Bons Casos de Uso
O qque so Bons Casos de Uso?

50

Bons Casos de Uso

Quanto de detalhe um Caso de Uso deve ter?

Se o gato preto ou branco no importa.


O qque importa
p qque ppegue
g o rato."

51

Bons Casos de Uso

Dicas
Requisitos
q comunicao

Se no parece bom, no est bom
A partir de prottipos/releases refine as orientaes para escrever Casos de Uso
Teste definitivo
Deve ser til para design e teste
Bons Casos de Uso facilitam design e teste

Envolva o seu cliente no importa quanto


ele conhea sobre Casos de Uso
Voc ficar surprso com que velocidade se
aprende esta tcnica
52

Moacyr Cardoso de Mello Filho
mcmello@br.ibm.com
Thanks to
Dr Ng Pan Wei
Wei, pwng@br
pwng@br.ibm.com.
ibm com

53