Use Cases
O que é um Use Case?
Um Use Case (ou Caso de Uso) é uma técnica utilizada em engenharia de software para descrever como os utilizadores (atores) interagem com um sistema para alcançar um objetivo específico. Ele documenta o comportamento funcional de um sistema a partir da perspetiva do utilizador, representando o "o quê" e não o "como" o sistema faz.
Objetivos de um Use Case
- Documentar requisitos funcionais: Focar em como o sistema deve reagir às interações dos atores.
- Garantir clareza: Ajudar equipas técnicas e não técnicas (stakeholders) a entender os fluxos de funcionamento.
- Promover análise completa: Identificar variações, exceções e fluxos alternativos.
Componentes Essenciais de um Use Case
Nome do Use Case:
- Descreve o objetivo central do caso de uso, de forma concisa.
- Exemplo: "Efetuar devolução de livro".
Descrição:
- Resumo breve do que o caso de uso pretende realizar.
- Exemplo: "Funcionário regista a devolução de um livro emprestado ao utente".
Atores:
- Identificação de quem interage com o sistema. Podem ser:
- Primários: Quem inicia o caso de uso (ex.: funcionário, utente).
- Secundários: Quem apoia ou é impactado (ex.: administrador do sistema).
Cenários:
- Identificam contextos específicos que o caso de uso cobre, como variações de requisitos ou condições especiais.
Pré-condições:
- Estado que o sistema ou o ator deve cumprir antes que o caso de uso possa ser executado.
- Exemplo: "O ator deve estar autenticado".
Pós-condições:
- Estado final do sistema após a execução bem-sucedida do caso de uso.
- Exemplo: "O livro é registado como devolvido e está disponível para requisição".
Fluxos:
- Descrição passo a passo de como o sistema interage com o ator.
- Fluxo Normal: Caminho mais comum, sem interrupções.
- Fluxo Alternativo: Variações de comportamento que levam ao mesmo resultado.
- Fluxo de Exceção: Caminhos que lidam com erros ou condições imprevistas.
Melhores Práticas ao Elaborar Use Cases
Ser claro e objetivo:
- Usar linguagem acessível aos stakeholders, evitando termos técnicos complexos.
Dividir fluxos complexos:
- Sempre que necessário, utilizar fluxos alternativos ou fluxos de exceção para tratar variações e erros.
Evitar ambiguidades:
- Cada passo deve ter uma ação clara e específica do ator ou sistema.
Definir o escopo adequadamente:
- Limitar o caso de uso a um único objetivo funcional.
Incluir cenários relevantes:
- Explorar condições reais e edge cases para que o sistema seja robusto.
Manter a rastreabilidade:
- Relacionar cada caso de uso com os requisitos que ele suporta.
Ferramentas e Representação
Texto Estruturado: Útil para maior detalhe e clareza. Diagrama de Casos de Uso (UML):
- Representação gráfica que ilustra os atores, os casos de uso e as relações entre eles.