Um caso de uso pode ser definido, resumidamente, como uma descrição do que o sistema deve fazer para atingir um determinado objetivo. Em uma narrativa em texto, os casos de uso são amplamente utilizadas para descobrir e registrar requisitos, necessários para o desenvolvimento de sistemas.
Abaixo apresento a estrutura de um caso de uso, em formato de tabela:
Título do Caso de Uso | o nome é o objetivo na forma de uma pequena frase de verbo ativo | ||
Contexto de Uso: | uma sentença maior do contexto de uso se necessário | ||
Escopo: | qual sistema está sendo considerado caixa-preta sob desenvolvimento | ||
Nível: | um dentre estes: resumo, objetivo do usuário, subfunção | ||
Ator Primário: | um nome de papel para o ator primário, ou a descrição | ||
Stakeholders e Interesses: | Stakeholder | Interesse | |
nome do stakeholder | coloque aqui o interesse do stakeholder | ||
nome do stakeholder | coloque aqui o interesse do stakeholder | ||
Pré-condição: | o que esperamos que já seja o estado do mundo | ||
Garantias mínimas: | os interesses protegidos em qualquer saída | ||
Garantias de sucesso: | os interesses satisfeitos em um final bem sucedido | ||
Acionador: | a ação sob o sistema que inicia o caso de uso | ||
Descrição | Passo | Ação | |
1 | coloque aqui os passos do cenário do acionamento a entrega do objetivo e qualquer esclarecimento posterior | ||
2 | <…> | ||
3 | |||
Extensões | Passo | Ação de Desvio | |
1a | condição que causa o desvio: ação ou nome do sub caso de uso | ||
Variações Tecnológicas e Dados | |||
1 | lista de variações |
Para escrever um caso de uso, observe as seguintes sugestões:
- Escreva algo legível. Casos de uso casuais e legíveis ainda são úteis, enquanto casos de uso ilegíveis não serão lidos.
- Trabalhe com amplitude primeiro, da menor precisão para a maior precisão.
- Nível de Precisão 1: Nome e objetivos dos atores primários.
- Nível de Precisão 2: O resumo do caso de uso ou o cenário de sucesso principal.
- Nível de Precisão 3: As condições de extensão.
- Nível de Precisão 4: Os passos de tratamento da extensão.
- Para cada passo:
- Mostre um objetivo tendo sucesso.
- Capture as intenções do ator, não os detalhes da interface do usuário.
- Tenha um ator passando informação, validando uma condição ou atualizando um estado.
- Escreva comentários entre os passos para indicar a seqüência dos passos (ou a falta de).
- Pergunte “por que” para encontrar um próximo nível de objetivo mais alto.
O processo de escrita de um caso de uso pode ser realizado nos seguintes passos abaixo:
- Especifique o escopo e os limites do sistema. Rastreie mudanças no diagrama de contexto inicial com a lista dentro/fora.
- Faça brainstorming e liste os atores primários. Encontre todo ator primário humano e não humano ao longo da vida do sistema.
- Faça brainstorming e liste exaustivamente os objetivos dos usuários para com o sistema. A lista ator-objetivo inicial agora está disponível.
- Capture os casos de uso resumo mais externos para ver quem realmente importa. Confira se há um caso de uso mais externo para cada ator primário.
- Reconsidere e revise os casos de uso resumo. Adicione, subtraia e junte objetivos. Reexamine os acionadores baseados em tempo e outros eventos no limite do sistema.
- Selecione um caso de uso para expandir. Considere escrever uma narrativa para aprender o material.
- Capture os stakeholders e interesses, pré-condições e garantias. O sistema assegurará as pré-condições e garantirá todos os interesses.
- Escreva o cenário de sucesso principal (CSP). Use de 3 a 9 passos para satisfazer todos os interesses e as garantias.
- Faça brainstorming e liste exaustivamente as condições de extensão. Inclua todas que o sistema pode detectar e deve tratar.
- Escreva os passos de tratamento de extensão. Cada um terminará voltando para o CSP, com uma saída de sucesso separada ou com uma falha.
- Extraia fluxos complexos para subcasos de uso; junte subcasos de uso triviais. Extrair um subcaso de uso é fácil, mas ele adiciona custo ao projeto.
- Reajuste o conjunto: adicione, subtraia e junte conforme necessário. Verifique pela legibilidade, integridade e satisfação dos interesses dos stakeholders.
Por fim, faça a verificação de cada um dos campos do caso de uso escrito, respondendo às seguintes perguntas:
Campo | Questão |
Título do Caso de Uso | 1. É uma frase com verbo ativo que declara o objetivo do ator primário? |
2. O sistema pode alcançar o objetivo? | |
Escopo e Nível | 3. Os campos estão preenchidos? |
Escopo | 4. O caso de uso trata do sistema mencionado no Escopo como uma caixa-preta? (A resposta deve ser “Sim” se é um documento de requisitos de sistema, mas poderia ser “Não” se o caso de uso é um caso de uso de negócio caixa-branca.) |
5. Se o sistema no Escopo é o sistema a ser projetado, o projetista tem que projetar tudo dentro dele e nada fora dele? | |
Nível | 6. O conteúdo do caso de uso corresponde ao nível de objetivo declarado? |
7. O objetivo está realmente no nível de objetivo declarado? | |
Ator Primário | 8. Ele/ela/isso tem comportamento? |
9. Ele/ela/isso tem um objetivo com o Sistema sob Discussão (SsD) que é uma promessa de serviço do SsD? | |
Pré-condições | 10. Elas são obrigatórias e podem ser estabelecidas no local pelo SsD? |
11. É verdade que elas nunca são verificadas no caso de uso? | |
Stakeholders e Interesses | 12. Eles são nomeadas e o sistema deve satisfazer seus interesses como declarado? (Uso varia por formalidade e tolerância) |
Garantias Mínimas | 13. Todos interesses dos stakeholders estão protegidos? |
Garantias de Sucesso | 14. Todos interesses dos stakeholders estão satisfeitos? |
Cenário de Sucesso Principal | 15. Ele tem de 3 a 9 passos? |
16. Ele é executado do acionamento até a entrega da garantia de sucesso? | |
17. Ele permite as variações corretas na seqüência? | |
Cada Passo em Qualquer Cenário | 18. É descrito em uma frase como um objetivo que tem sucesso? |
19. O processo move-se distintamente para frente depois de sua conclusão bem-sucedida? | |
20. Está claro qual ator está operando o objetivo – quem está “com a bola”? | |
21. Está clara a intenção do ator? | |
22. O nível de objetivo do passo é menor do que o nível de objetivo do caso de uso geral? Ele está, preferivelmente só um pouco abaixo no nível de objetivo do caso de uso? | |
23. Você tem certeza que o passo não descreve o projeto de interface de usuário do sistema? | |
24. Está clara qual informação está sendo passada no passo? | |
25. Ele “valida”, em vez de “verificar” a condição? | |
Condição de Extensão | 26. O sistema pode e deve detectá-la e tratá-la? |
27. Ela é o que o sistema realmente precisa? | |
Lista de Variações Tecnológicas e de Dados | 28. Você tem certeza que não é uma extensão habitual de comportamento do cenário de sucesso principal? |
Conteúdo do Caso de Uso Geral | 29. Para os responsáveis e usuários: “É isso que você quer?” |
30. Para os responsáveis e usuários: “Você será capaz de dizer, na entrega, se você o obteve?” | |
31. Para os desenvolvedores: “Você pode implementá-lo?” |
Fonte: COCKBURN, A. Writing Effective Use Cases, 1/e. Boston: Addison-Wesley, 2001