Resumo de UML – Casos de Uso

Introdução
Segundo Martin Fowler, em seu livro UML Distilled, 2003, caso de uso é a técnica para capturar os requisitos funcionais de um sistema, descrevendo as interações típicas entre os usuários do sistema e o sistema em si. Cada caso de uso representa um cenário onde o usuário irá interagir de alguma forma com o sistema. Este cenário posteriormente será detalhado e fornecerá informações vitais no processo de análise.
Lembrando que o caso de uso tem como objetivo principal identificar os usuários do sistema e as ações que eles realizarão na visão do próprio usuário, detalhes de como será feita não entram no nosso diagrama.
Componentes
O diagrama de caso de uso faz parte da UML desde a versão 1.0. O diagrama possui os seguintes componentes:
Ator – é o papel exercido por um usuário, processo ou outro sistema, que irá interagir com um ou vários casos de uso enviando e recebendo mensagens. Os nomes dos atores refletem o papel que um usuário desempenha no sistema.
Figura 01 - Exemplo de Ator
Caso de Uso – representa uma funcionalidade completa do sistema, formado por uma sequência de ações que irá gerar um resultado para um ou mais atores. Cada caso de uso possui uma história descritiva das ações que ele realizará, seus métodos de entrada e saída, e as informações que retornará para o ator.
Figura 02 – Exemplo de caso de uso
Lembrando que o principal foco do caso de uso é dizer O QUE o sistema faz, e não COMO faz.
Relacionando atores e casos de uso
Temos os seguintes relacionamentos entre casos de uso:
Relacionamento simples – representado por uma linha sólida conectando o ator ao caso de uso o qual ele interage. A linha indica que o relacionamento é bidirecional, o ator envia e recebe informações do caso de uso; pode também ser unidirecional, o ator só envia ou recebe informações. É o único relacionamento existente entre atores e casos de uso.
Figura 03 – Relacionamento simples
Relacionamento de inclusão (include) – ocorre quando um caso de uso precisa dos recursos de outro, desejamos reduzir a complexidade de um caso de uso ou evitar repetições. É representado por uma seta tracejada rotulada com a palavra << include >>. A seta aponta para o caso de uso solicitado.
Figura 04 – Relacionamento de inclusão (include)
No exemplo acima o caso de uso “Renovar estoque” solicita os serviços de “Fornecer produtos”. O estoque será renovado ao serem fornecidos mais produtos.
Relacionamento de extensão (extends) – ocorre quando um caso de uso precisa de recursos de outro, não sendo vitais para a realização do mesmo. Em outras palavras, um caso de uso pode usar os recursos de outro, não sendo obrigatório esse uso. É representado por uma seta tracejada rotulada com a palavra << extends >>. A seta aponta para o caso de uso solicitante.
Figura 05 – Relacionamento de extensão (extends)
No exemplo acima o caso de uso “Auditar contas” pode solicitar os recursos de “Consultar relatórios”, não sendo vital para a realização do mesmo.
Generalização – indica que temos especializações de um ator ou caso de uso, indicando comportamentos específicos. Ou seja, posso ter atores especializados para um ou mais casos de uso, assim como casos de uso especializados para uma ou mais tarefas no sistema. É representado por uma seta com ponta sem preenchimento que aponta para o ator ou caso de uso base.
Figura 06 – Generalização
No exemplo acima, Gerente é um ator especializado de Funcionário que gera relatórios. O caso de uso “Gerar relatórios” é um caso de uso mais genérico, “Gerar relatório financeiro” e “Gerar relatório gerencial” são mais específicos.
Descrevendo os casos de uso
Após a elaboração do nosso diagrama de caso de uso partimos para a descrição do mesmo. Descrever um caso de uso é documentar qual ator interage, qual o fluxo principal e alternativo das ações que ele realiza, suas exceções e regras de negócio que possui.
Em nosso exemplo, temos um sistema de controle de estoque. O funcionário renova o estoque dos produtos quando ele recebe mais produtos do fornecedor e o sistema lhe informa do estoque baixo. O gerente cuida da geração dos relatórios que podem ser usados na auditoria da fiscalização.
Figura 07 – Diagrama de Caso de Uso – Sistema Estoque
Percebe-se que os casos de uso estão dentro de um retângulo, que representa a fronteira do sistema. Os casos de uso externos ao retângulo não farão parte do desenvolvimento do sistema. Podemos também incluir notas informativas para esclarecer certos papéis e relacionamentos, como é o caso de “Renovar estoque”.
Em uma descrição de caso de uso temos os seguintes itens que ajudarão no processo de análise e na confecção de outros diagramas:
- número do caso de uso: numeração de controle do caso de uso.
- nome do caso de uso: nome do caso de uso.
- descrição: neste item é apresentado o propósito do caso de uso de forma detalhada.
- ator(es): atores que participam do caso de uso.
- pré-condição(ões): condições que devem estar satisfeitas para que o caso de uso possa ser iniciado.
-pós-condição(ões): condições que devem ser satisfeitas após o término do caso de uso. Podem ocorrer ou não.
- fluxo ou cenário principal: descrição, passo a passo, de “o quê” o sistema deve fazer. Também deverão ser escritas as regras de negócio específicas para este caso de uso, quando houver.
- fluxo ou cenário alternativo: descrição de cada cenário alternativo possível para este caso de uso, detalhando os passos a serem seguidos.
- exceções: descrição dos passos a serem seguidos para exceção identificada para o caso de uso.
- inclusão (includes): apresenta os casos de uso incluídos neste.
- extensões (extends): apresenta os casos de uso que o estendem.
- regras de negócios: lista das regras de negócio associadas a este caso de uso, se houver.

FONTE: hslife.com
Referências:
Fowler, Martin. UML Distilled: A Brief Guide to the Standard Object Modeling Language, Third Edition. Addison Wesley, 2003.
Curso SENAC. Análise Orientada a Objetos: Casos de Uso.
Filho, Ly Freitas. Definindo o Escopo: Modelo de Caso de Uso.
Jr, Miguel Argollo. Modelo de casos de uso.

Comentários

Formulário de contato

Nome

E-mail *

Mensagem *