Conceito: Modelo de Caso de Uso
Este artefato é um modelo das funções desejadas para o sistema e seus arredores, e serve como um contrato entre o cliente e a equipe do projeto.
Relacionamentos
Descrição Principal

Explicação

Um modelo de caso de uso é um modelo que descreve como diferentes tipos de usuários interagem com o sistema para resolver um problema. Como tal, ele descreve as metas dos usuários, as interações entre os usuários e o sistema, bem como o comportamento necessário do sistema para satisfazer estas metas.

Um modelo de caso de uso consiste em um conjunto de elementos de modelo. Os elementos de modelo mais importantes são: casos de uso, atores e as relações entre eles.

Um diagrama de caso de uso é usado para descrever graficamente um subconjunto do modelo para simplificar a comunicação. Normalmente existirão vários diagramas de caso de uso associados a um determinado modelo, cada um mostrando um subconjunto de elementos de modelo relevantes para um determinado fim. O mesmo elemento de modelo pode ser exibido em vários diagramas de caso de uso, mas cada instância tem que ser consistente. Se alguma ferramenta for usada para manter o modelo de caso de uso, esta restrição de consistência deve ser automatizada, de forma que quaisquer alterações em um elemento de modelo (alteração do nome, por exemplo) serão automaticamente refletidas em todos os diagramas de caso de uso que mostram o elemento.

O modelo de caso de uso pode conter pacotes que são usados para estruturar o modelo e simplificar a análise, a comunicação, a navegação, o desenvolvimento, a manutenção e o planejamento.

Muito do modelo de caso de uso é na verdade textual, com o texto capturado nos Caso de Uso que estão associadOs a cada elemento de modelo de caso de uso. Estas especificações descrevem o fluxo de eventos do caso de uso.

O modelo de caso de uso serve como um unificador em todo o desenvolvimento do sistema. É usado como a principal especificação dos requisitos funcionais para o sistema, servindo como base para a análise e o design, como uma entrada para o planejamento da iteração, como base para a definição de casos de teste e como base para a documentação dos usuários.

Elementos de modelo básicos

O modelo de caso de uso contém, no mínimo, os seguintes elementos de modelo básicos.

Ator

Um elemento de modelo que representa cada ator. São suas propriedades o nome e uma descrição resumida do ator. Veja Concept: Ator para obter mais informações.

Caso de Uso

Um elemento de modelo que representa cada caso de uso. São suas propriedades o nome do caso de uso e sua especificação. Veja Artifact: Caso de Uso e Concept: Caso de Uso para obter mais informações.

Associações

As associações são usadas para descrever os relacionamentos entre os atores e os casos de uso que eles participam. Este relacionamento é comumente conhecido como uma "associação de comunicação".

Elementos de modelo avançados

O modelo de caso de uso pode conter também os seguintes elementos de modelo avançados.

Assunto

Um elemento de modelo que representa o limite do sistema de interesse.

Pacote de Caso de Uso

Um elemento de modelo utilizado para estruturar o modelo de caso de uso e simplificar a análise, a comunicação, a navegação e o planejamento. Se existirem muitos casos uso ou atores, você pode usar os pacotes de Caso de Uso para estruturar o modelo de caso de uso da mesma forma que você usa pastas ou diretórios para estruturar as informações no seu disco rígido.

Você pode dividir um modelo de caso de uso em pacotes de caso de uso por várias razões, incluindo:

  • Para refletir a ordem, configuração ou unidades de implantação no sistema acabado, ajudando assim no planejamento de iteração.
  • Para ajudar o desenvolvimento em paralelo, dividindo o problema em peças de tamanho apropriado.
  • Para simplificar a comunicação com os diferentes stakeholders, através da criação de pacotes contendo casos de uso e atores relevantes para um determinado stakeholder.

Generalizações

Um relacionamento entre atores para ajudar na reutilização de propriedades comuns.

Dependências

Vários tipos de dependência entre casos de uso estão definidos na UML. Em especial, <<extend>> e <<include>>.

<<extend>> é utilizada para incluir um comportamento opcional de um caso de uso extensor para um caso de uso estendido.

<<include>> é utilizada para incluir um comportamento comum de um caso de uso incluído para um caso de uso base, a fim de suportar a reutilização do comportamento comum.

Esta última é a dependência mais usada e é útil para:

  • Fatorar o comportamento do caso de uso base que não seja necessário para a compreensão da finalidade principal do caso de uso simplificando a comunicação.
  • Fatorar o comportamento que é comum em dois ou mais casos de uso para maximizar a reutilização, simplificar a manutenção e assegurar a consistência.

Exemplo de Diagrama de Caso de Uso

A Figura 1 mostra um diagrama de caso de uso de um modelo de caso de uso de um Caixa Automático (ATM).

Figura 1: Diagrama de Caso de Uso do ATM

Figura 1: Diagrama de Caso de Uso do ATM

Este diagrama mostra o assunto (atm:ATM), quatro atores (Cliente, Banco, Caixa e Profissional de Manutenção), cinco casos de uso (Retirar Dinheiro, Transferir Fundos, Depositar Fundos, Recarregar Máquina e Validar Usuário), três dependências <<include>> e as associações entre os atores e os casos de uso.

Os casos de uso Retirar Dinheiro, Depositar Fundos e Transferir Fundos precisam identificar o usuário no sistema. Esse comportamento pode ser extraído para um novo caso de uso incluído chamado Validar Usuário, o qual os três casos de uso básicos incluem. Os casos de uso base são independentes do método utilizado para identificação do usuário, que é encapsulado no caso de uso de inclusão. Do ponto de vista dos casos de uso base, não importa se o método de identificação irá ler um cartão magnético, ou escanear a retina. Eles só dependem do resultado de Validar Usuário.

Note que a Figura 1 é apenas uma visão parcial do modelo de caso de uso. O modelo completo também inclui as descrições de cada ator, as descrições de cada caso de uso e as especificações para cada caso de uso.