Este documento resume os principais conceitos relacionados a casos de uso no gerenciamento ágil de projetos. Casos de uso são narrativas que descrevem como atores interagem com um sistema para atingir objetivos. Eles ajudam a descobrir e documentar requisitos funcionais e são representados por diagramas UML. Os casos de uso devem ser escritos nos níveis corretos e incluir pré-condições, garantias de sucesso e cenários principais.
2. Casos de Uso
• Casos de Uso são narrativas em texto,
amplamente utilizadas para descobrir e
registrar requisitos.
• Modelo de Casos de Uso trata-se do
conjunto de todos os casos de uso escritos.
• Diagrama de Casos de Uso é a notação
da UML para ilustrar os casos de uso, os atores
e o relacionamento entre eles.
Slide 2 Aula 2 - Abordagens Ágeis
3. Definições
• Ator é algo com comportamento, tal como uma
pessoa, sistema ou organização.
• Cenário é uma sequência específica de ações e
interações entre atores e o sistema.
• Um caso de uso é uma coleção de cenários
relacionados de sucesso e fracasso que
descrevem um ator usando um sistema
como meio para atingir um objetivo.
Aula 2 - Abordagens Ágeis
[1]
Slide 3
4. Por que Casos de Uso?
• Casos de Uso são uma boa maneira de manter as
coisas simples e tornar possível a especialistas no
domínio a escrevê-los (ou participar da escrita);
• Enfatizam os objetivos e perspectivas do
usuário: “quem está usando o sistema, quais são
seus típicos cenários de uso e seus objetivos”;
• Níveis “configuráveis” de sofisticação e
formalidade;
Aula 2 - Abordagens Ágeis
[1]
Slide 4
5. Situações para usar
• Casos de uso são uma forma de escrita que pode
ser utilizada em diferentes situações:
• Para descrever um processo de trabalho;
• Para focar a discussão sobre futuros requisitos de software;
• Para ser os requisitos funcionais de um sistema;
• Para documentar o projeto do sistema;
• Para ser escrito em um grupo pequeno e restrito; ou em
um grupo grande e distribuído;
Aula 2 - Abordagens Ágeis
[2]
Slide 5
6. Notação do Caso de Uso
• Resumido: um parágrafo, geralmente o cenário
principal.
• Informal: múltiplos parágrafos que cobrem vários
cenários.
• Completo: todos os passos e variantes são escritos em
detalhes.
• Quando? Resumido e informal no início do projeto.
Completo, durante o primeiro workshop de requisitos
para os casos de uso críticos;
Aula 2 - Abordagens Ágeis
[1]
Slide 6
7. Atores têm Objetivos
• Um balconista responsável por anotar as
ordens de serviço pelo telefone tem um objetivo:
• Ter o registro no computador e iniciar a ordem de serviço;
• O sistema também tem uma responsabilidade:
• Registrar e inicializar a ordem de serviço;
• Para cumprir a responsabilidade o sistema
formula subobjetivos; Ele pode realizar alguns
objetivos internamente, mas precisa do auxílio de
um ator secundário para realizar outros;
Aula 2 - Abordagens Ágeis
[2]
Slide 7
8. Objetivos podem falhar
• O que acontece se o computador desligasse no meio
da anotação de um pedido?
• Se o sistema não consegue entregar a promessa de
serviço, o balconista deve enviar um objetivo de backup
- neste caso, papel e caneta;
• O sistema pode encontrar uma falha em um dos seus
subobjetivos; Talvez o ator primário tenha enviado
dados errados;
• Este foco em falha de objetivos é uma das razões
de casos de uso serem excelentes requisitos funcionais;
Aula 2 - Abordagens Ágeis
[2]
Slide 8
9. Interações são compostas
• Uma sequência de mensagens, ou cenário, é uma
interação composta; Suponha a interação com uma
máquina de refrigerante:
1. Eu insiro uma nota de um real
2. Pressiono “guaraná”
3. A maquina diz “Necessária quantia exata”
4. Eu pressiono a Devolução de Moedas
5. A máquina devolve o valor de um real em moedas
6. Eu pego as moedas e vou embora.
Aula 2 - Abordagens Ágeis
[2]
Slide 9
10. Um Caso de Uso agrupa cenários
• O ator primário tem um objetivo;
• O sistema deveria ajudar o ator a atingir este objetivo;
• Alguns cenários mostram o objetivo sendo alcançado;
• Alguns terminam como ele sendo abandonado;
• Cada cenário tem uma sequência de passos
mostrando como as ações e iterações se desdobram;
• Um caso de uso agrupa todos os cenários, mostrando
todas as maneiras para um objetivo ter sucesso ou
falhar;
Aula 2 - Abordagens Ágeis
[2]
Slide 10
11. Como escrever
• Aprender a escrever um bom caso de uso é
difícil;
• Conceitos aplicáveis:
• Escopo: Qual é realmente o sistema sob discussão
(SsD)?
• Ator Primário: Quem tem o objetivo?
• Nível: Quão alto ou baixo é o nível do objetivo?
Aula 2 - Abordagens Ágeis
[2]
Slide 11
12. Modelo
• Nome: Iniciado com um verbo; Geralmente
expressa o objetivo do ator principal;
• Escopo: Empresa, sistema ou subsistema;
• Nível: branco, azul ou índigo;
• Stakeholders e interesses: Quem se importa com o
caso de uso e o que desejam;
• Ator Principal: chama o sistema para fornecer os
serviços;
Aula 2 - Abordagens Ágeis
[1]
Slide 12
13. Modelo
• Pré-condições: O que precisa ser verdade de início e
vale a pena dizer ao leitor;
• Garantia de sucesso: O que precisa ser verdade ao
término bem sucedido e vale a pena dizer ao leitor;
• Cenário de sucesso principal: um caminho típico,
incondicional e otimista do cenário de sucesso;
• Extensões: cenários alternativos de sucesso ou
fracasso;
Aula 2 - Abordagens Ágeis
[1]
Slide 13
14. Modelo
• Requisitos especiais: requisitos não funcionais
relacionados;
• Variantes tecnológicas e de dados: métodos de
entrada e saída e formatos de dados variáveis;
• Frequência de ocorrência: Influencia a investigação,
teste e oportunidade da implementação;
• Diversos: Como, por exemplo, pontos em aberto;
Aula 2 - Abordagens Ágeis
[1]
Slide 14
15. Escopo
• Um caso de uso de negócio tem a empresa
como escopo. Seu símbolo é uma casa.
• Colorida de preto ( ) trata todo o
empreendimento como uma caixa preta;
• Colorida de branco ( ) fala sobre os
departamentos e pessoal dentro da
organização;
Aula 2 - Abordagens Ágeis
[2]
Slide 15
16. Escopo
• Um caso de uso do sistema tem um computador
como seu escopo; Seu símbolo é uma caixa.
• Colorida de preto ( ) trata como uma caixa-preta;
• Colorida de banco ( ) se você revela como seus
componentes trabalham;
• Um caso de uso de componente é sobre um
subsistema ou componente de um sistema em
desenvolvimento. Seu símbolo é um parafuso ( ).
Aula 2 - Abordagens Ágeis
[2]
Slide 16
17. Stakeholders e atores
• Um stakeholder é • Procure atores em:
alguém que participa • Os stakeholders do
no contrato. sistema;
• Um ator é qualquer • O ator primário de um
caso de uso;
coisa que tem um • O próprio sistema sob
comportamento. Pode discussão (SsD);
ser uma pessoa, uma • Atores secundários de
empresa, um software, um caso de uso;
um hardware, etc. • Atores internos -
componentes do SsD;
Aula 2 - Abordagens Ágeis
[2]
Slide 17
18. Níveis de Objetivos
• Objetivos do Usuário (Azul, Nível do Mar , !)
• É o objetivo que o ator primário tem ao tentar ter seu
trabalho realizado ou que o usuário tem ao usar o sistema.
• Corresponde ao processo de negócio elementar.
• Remete à questão: “O ator primário pode ir embora feliz
depois de ter feito isso?”
• Teste do café: “Depois que acabar isso, eu posso tomar um
café?”;
• Geralmente uma pessoa em uma sessão (2-20 min);
Aula 2 - Abordagens Ágeis
[2]
Slide 18
19. Níveis de Objetivos
• Nível de Resumo (Branco, Nuvem / Pipa , +)
• Objetivos nível-resumo envolvem múltiplos objetivos do
usuário.
• Mostram o contexto no qual os objetivos do usuário operam;
• Mostram a sequência do ciclo de vida de objetivos
relacionados;
• Fornecem um índice para os casos de uso de mais baixo
nível;
Aula 2 - Abordagens Ágeis
[2]
Slide 19
20. Níveis de Objetivos
• Subfunções (Índigo/Preto, Debaixo D’Água /
Marisco , -)
• São aqueles necessários para realizarem os objetivos do
usuário;
• Só inclua conforme você precisar, geralmente podem ser
descritos como passos em cenários;
• Podem ser utilizados para representar re-uso;
Aula 2 - Abordagens Ágeis
[2]
Slide 20
21. Encontrando o Nível
• Encontre o objetivo do usuário
• O que o ator primário realmente quer?
• Por que esse ator está fazendo isso?
• Use de 3 a 10 passos por caso de uso
• Remova detalhes de interface do usuário.
• Eleve o nível perguntando “por que” para encontrar
o próximo mais alto nível de objetivo.
Aula 2 - Abordagens Ágeis
[2]
Slide 21
22. Pré-condições
• A pré-condição de um caso de uso anuncia o que o
sistema garantirá que é verdadeiro antes de permitir o
início do caso de uso.
• Geralmente indica que alguns outros casos de uso já
executaram para estabelecê-la;
• Um erro comum é escrever algo que
frequentemente, mas não necessariamente, é
verdadeiro.
• Ex.: Atendente entrou no sistema; O cliente foi validado;
O sistema já localizou a informação da apólice do seguro
Aula 2 - Abordagens Ágeis
[2]
Slide 22
23. Garantias Mínimas
• As garantias mínimas são as menores promessas que o
sistema faz aos stakeholders, particularmente quando o
objetivo do ator primário não pode ser alcançado.
• São escritas como um conjunto de simples asserções
que serão verdadeira ao final de qualquer execução do
caso de uso.
• Mostra os interesses de cada stakeholder sendo
satisfeito;
• Ex.: Pedido será iniciado somente se o pagamento for
recebido; O pedido parcial é gravado;
Aula 2 - Abordagens Ágeis
[2]
Slide 23
24. Garantias de Sucesso
• A garantia de sucesso estabelece quais interesses dos
stakeholders são satisfeitos depois de uma conclusão
bem sucedida do caso de uso, ou ao término de um
cenário de sucesso principal ou ao término de um
caminho de sucesso alternativo;
• O teste de verificação para a seção de garantias de
sucesso é que os stakeholders concordam que seus
interesses foram satisfeitos;
• Ex.: O arquivo será salvo; O sistema iniciará uma
ordem de serviço; As taxas serão calculadas;
Aula 2 - Abordagens Ágeis
[2]
Slide 24
25. Acionadores
• O acionador (gatilho) especifica o evento que
faz o caso de uso começar.
• Às vezes o acionador precede o primeiro passo
de um caso de uso, às vezes ele é o primeiro
passo.
• Ex.: Cliente insere cartão; Cliente solicita
informação; Às 17 horas de segunda à sexta;
Aula 2 - Abordagens Ágeis
[2]
Slide 25
26. Cenário de Sucesso Principal
• O cenário de sucesso principal e todas as extensões
são acomodadas dentro de da estrutura:
• Uma condição sob a qual o cenário é executado (pré-condição
+ acionador);
• Um objetivo a alcançar;
• Um conjunto de passos de ação;
• Uma condição de fim;
• Um possível conjunto de extensões escritas como fragmentos de
cenários;
Aula 2 - Abordagens Ágeis
[2]
Slide 26
27. Corpo do cenário
• Todo cenário é escrito como uma sequência de
ações dos diversos atores para alcançar seu objetivo;
• Um cenário deve descrever:
• Uma interação entre dois atores;
• Um passo de validação para proteger um interesse de um
stakeholder;
• Uma mudança interna para satisfazer um interesse de um
stakeholder;
Aula 2 - Abordagens Ágeis
[2]
Slide 27
28. Exemplo
1. Atendente entra com o número da apólice;
2. Sistema preenche a informação disponível;
3. Atendente entra com informação da perda;
4. Sistema confirma que há reivindicações e atribui um
número;
5. Atendente continua entrando com informação específica
de perda;
6. Sistema extrai informação de cobertura;
7. Atendente seleciona e designa um Organizador;
8. Sistema salva e dispara confirmação;
Aula 2 - Abordagens Ágeis
[2]
Slide 28
29. Exemplo
1. Atendente entra com o número da apólice;
2. Sistema preenche a informação disponível;
3. Atendente entra com informação da perda;
4. Sistema confirma que há reivindicações e atribui um
número;
5. Atendente continua entrando com informação específica
de perda;
6. Sistema extrai informação de cobertura;
7. Atendente seleciona e designa um Organizador;
8. Sistema salva e dispara confirmação;
Aula 2 - Abordagens Ágeis
[2]
Slide 28
30. Diretrizes
• Use gramática simples
Sujeito ... verbo ... objeto direto... frase preposicional.
O sistema ... deduz ... a quantia ... do saldo da conta.
• Mostre claramente “quem está com a bola”
• Escreva com uma Visão Geral
Use: “O cliente insere no caixa o cartão e a senha
O sistema deduz a quantia do saldo da conta”
No lugar de: “Pegar o cartão do caixa e a senha. Deduzir
quantia do saldo da conta”.
Aula 2 - Abordagens Ágeis
[2]
Slide 29
31. Diretrizes
• Mostre o processo avançando
Use: “Usuário entra com nome e endereço”
No lugar de: “Usuário pressiona a tecla tab”
• Mostre a interação dos atores, não os
movimentos
Use: “Usuário entra com nome e endereço.
Sistema apresenta o perfil do usuário.”
No lugar de: “Sistema pergunta o nome. Usuário entra
com o nome. Sistema pergunta endereço. Usuário entra
com endereço. Usuário clica em OK...”
Aula 2 - Abordagens Ágeis
[2]
Slide 30
32. Diretrizes
• Inclua um conjunto de Ações “Razoável”
Use: “1. O cliente entra com o número de
pedido.
2. O sistema detecta que ele corresponde ao
premiado.
3. O sistema registra o usuário e pedido como
ganhador.”
No lugar de: “O cliente entra com o número de pedidos. O
sistema detecta que ele corresponde ao premiado. O sistema
registra o usuário e pedido como ganhador.”
Aula 2 - Abordagens Ágeis
[2]
Slide 31
33. Diretrizes
• “Valide”, Não “Verifique se”
Use: “O sistema valida que a senha está correta”
No lugar de: “O sistema verifica se a senha está correta”
• Mencione o tempo ocionalmente
• Expressão idiomática: “Usuário tem Sistema
A chama sistema B”
Use: “Usuário tem recuperando dados do
sistema B”
No lugar de: “Usuário sinaliza para recuperar dados do
sistema B. Sistema recupera dados do sistema B”
Aula 2 - Abordagens Ágeis
[2]
Slide 32
34. Diretrizes
• Expressão idiomática: “Faça Passos x-y
até Condição”
Use: ”... 3. Cliente seleciona um item pra comprar.
4. Sistema adiciona item ao carrinho de compras.
Cliente repete os passos 3-4 até indicar que terminou”
Use: “Passos 3-5 podem ocorrer em qualquer odem
3. Usuário seleciona produtos para comprar
4. Usuário especifica forma de pagamento
5. Usuário fornece endereço de destino”
Aula 2 - Abordagens Ágeis
[2]
Slide 33
35. Extensões
• Casos de uso devem conter todos os cenários, tanto
de sucesso como de falha.
• Poderíamos descrever cada cenário individualmente,
porém, isso é um pesadelo para manutenção.
• Uma boa maneira é organizar o texto do cenário
principal de sucesso com uma sequência simples até a
conclusão. E então escrever um cenário de extensão
para cada ponto de desvio.
• Extensões estão onde os mais interessantes requisitos
residem.
Aula 2 - Abordagens Ágeis
[2]
Slide 34
36. Extensões
• Encontrar extensões em três fases:
1. Fazer brainstorming e incluir toda
possibilidade que vocês e seus colegas possam
levantar;
2. Avaliar, eliminar e juntar idéias;
3. Sentar e trabalhar no tratamento de cada
uma dessas condições pelo sistema
Aula 2 - Abordagens Ágeis
[2]
Slide 35
37. Extensões - Exemplo
• Cenário de Sucesso Principal:
...
3. O sistema percorre o documento verificando cada
palavra no seu dicionário.
4. O sistema detecta um erro ortográfico, destaca a
palavra e fornece alternativas.
5. O usuário seleciona uma da opções para substituição.
...
Aula 2 - Abordagens Ágeis
[2]
Slide 36
38. Extensões
• Extensões:
4a. O sistema não detecta outro erro até o final.
4a1. O sistema notifica o usuário, e finaliza o caso de uso
5a. Usuário escolhe manter a ortografia original.
5a1. O sistema ignora a palavra e continua:
5b. Usuário digita uma nova ortografia que não está na
lista:
5b1. O sistema re-valida a nova ortografia, volta ao
passo 3
Aula 2 - Abordagens Ágeis
[2]
Slide 37
39. Diretrizes
• Faça a condição dizer o que foi detectado
Use: “Senha Inválida; Rede inoperante; O cliente não
responde (time-out); Dinheiro não foi ejetado;”
• Alinhe o Tratamento da Condição
Use: “2a. Fundo Insuficiente
2a1. Sistema notifica cliente, pede por nova quantia.
2a2. Cliente entra com nova quantia”
Aula 2 - Abordagens Ágeis
[2]
Slide 38
40. Variações Tecnológ. e de dados
• Variações Tecnológicas e de Dados são usadas para
expressar “maneiras diferentes pelas quais isto pode ser
feito”. Ex.:
“7. Reembolsar cliente pelas mercadorias devolvidas.
Variações Tecnológicas e de Dados:
7a. Reembolsar por cheque,TED ou crédito para compras.”
“2. Usuário identifica-se, o banco e código da conta.
Variações Tecnológicas e de Dados:
2a. Usar cartão magnético ou impressão digital”
Aula 2 - Abordagens Ágeis
[2]
Slide 39
41. Mão na massa
30 min
• Elabore junto com a turma um caso de uso
para os casos abaixo:
Comprar refrigerante da máquina;
Fazer saque no caixa eletrônico;
• Elabore os casos de uso do estudo de caso
com o seu grupo.
Slide 40 Desenvolvimento Ágil com Ruby on Rails
42. Referências
• [LAR06] LARMAN, Craig. Utilizando UML e Padrões -
Uma Introdução à Análise e ao Projeto Orientado a
Objetos e ao Desenvolvimento Iterativo. 3a. Edição;
Bookman: 2006; ISBN 8560031529
• [COC05] COCKBURN, Alistair. Escrevendo Casos de Uso
Eficazes. 1a Edição; Bookman: 2005; ISBN 9788536304571
Slide 41 Aula 2 - Abordagens Ágeis