Diagrama de Caso de Uso (use case diagram)

O correto uso da linguagem de notação (ou ainda chamada diagramação) UML e o diagrama de casos de uso durante o levantamento de requisitos de um sistema auxilia no entendimento da lógica do sistema e do negócio envolvido.

O diagrama de caso de uso é um artefato visual da linguagem de modelagem padrão de software, a UML (Unified Modeling Language), um framework muito conhecido e utilizado pelas melhores empresas de desenvolvimento de software.

O que é UML?

A Linguagem de Modelagem Unificada, é uma linguagem de notação gráfica padronizada para o desenvolvimento de software.

A UML oferece uma maneira de representar visualmente os diferentes aspectos de um sistema, como estrutura, comportamento e funcionalidade, facilitando a comunicação entre os membros da equipe de desenvolvimento e a compreensão do sistema.

A UML, ou Linguagem de Modelagem Unificada, é uma linguagem de notação gráfica padronizada para o desenvolvimento de software.

A UML, ou Linguagem de Modelagem Unificada, é uma ferramenta poderosa para desenhar o “mapa” do seu software. Ela usa símbolos visuais para representar as diferentes partes do sistema, como telas, dados e regras de negócio.

Este diagrama juntamente com os demais artefatos fornecidos por esta linguagem de e notação de software possibilitam que a execução e o gerenciamento de um projeto de desenvolvimento de software seja padronizado e detalhadamente documentado.

A importância dos Diagramas UML

Quando elaborados por analistas que dominam a linguagem de notação UML, os casos de uso tornam-se uma importante ferramenta de documentação e validação de requisitos.

A utilização de diagramas de casos de uso pode (deve) ser combinada com o documento de especificação de requisitos utilizado pela equipe, sendo fundamental para a engenharia de requisitos atual.

O entendimento de diagramas UML não apresenta maiores dificuldades, já que seus elementos e simbologia são altamente lúdicos.

Entretanto, mesmo considerando a facilidade de entendimento é necessário que os envolvidos tenham domínio da notação UML. Caso contrário a utilização de tais diagramas pode impor riscos graves para o projeto.

Utilizando UML e Padrões de Craig Larman

Um literatura recomenda a todos os profissionais que desejam compreender melhor e utilizar de forma mais eficiente os diagramas UML é o livro “Utilizando UML e Padrões” do autor Craig Larman.

Você pode fazer o download gratuito do livro em: Livro/PDF: Utilizando UML e Padrões de Craig Larman

Livro "Utilizando UML e Padrões" de Craig Larman (download pdf)
Livro para download grátis em PDF: Livro – Utilizando UML e Padrões: uma Introdução à Análise e ao Projeto Orientados a Objetos e ao Desenvolvimento Iterativo.|

O que é um Caso de Uso?

Através da modelagem de um diagrama de caso de uso, é possível representar os requisitos de um sistema, sejam estes requisitos funcionais ou não funcionais.

O correto uso da linguagem de notação (ou ainda chamada diagramação) UML e o diagrama de casos de uso durante o levantamento de requisitos de um sistema auxilia no entendimento da lógica do sistema e do negócio envolvido.

O diagrama de caso de uso descreve a funcionalidade proposta para um novo sistema que será projetado, é uma excelente ferramenta para o levantamento dos requisitos funcionais do sistema.

Em projetos que utilizam notações visuais em seu processo de desenvolvimento, a incidência de refluxos durante as fases de arquitetura, desenvolvimento e testes tendem a serem menores.

Mesmo que a diagramação dos casos de uso seja uma tarefa mais comum do analista de requisitos, é possível também que sua elaboração seja feita pelo analista de negócios da equipe.

Componentes do Diagrama de Caso de Uso

Todo diagrama de caso de uso é composto por elementos que indicam entidades, requisitos, processos, restrições e atuadores. Graficamente a representação é feita através de:

  • Atores
  • Casos de Uso (requisitos de sistema ou negócio)
  • Relacionamento de inclusão (include)
  • Relacionamento de extensão (extend)
  • Relacionamento de herança (pattern)

Através destes três tipos de representação é possível elaborar modelagens complexas e detalhadas da execução de determinada rotina, função ou condição em um software.

Diagrama de casos de uso UML, aprenda como funcionam.
Diagrama de casos de uso UML, aprenda como funcionam.

Atores do Caso de Uso

É toda e qualquer entidade que, durante a execução de determinada tarefa, rotina ou função interage com sistema ou algum artefato de saída por ele produzido.

Essa definição do ator de um caso aplica-se para sistemas de software ou sistemas de negócios. A representação gráfica do ator é feita por um boneco de linhas retas e um círculo representando sua cabeça, no estilo “boneco palito”.

Representação dae um “ator” em um diagrama de casos de uso UML.
Representação de um “ator” em um diagrama de casos de uso UML.

Requisitos no Caso de Uso

É a representação de toda e qualquer interação com o sistema (seja ele um software ou não). Um caso de uso pode representar uma interação com um ou mais atores, uma interação com um ou mais casos de uso adicionais.

Ainda é correto afirmar que um caso de uso pode contem um requisito de sistema, seja ele um requisito funcional ou não funcional.

Um caso de uso pode também representar uma interação com outros casos de uso e com um ou vários atores simultaneamente. A representação padrão é um círculo contendo em seu interior o título do caso de uso.

Representação de um “caso de uso” em um diagrama de casos de uso UML.
Representação de um “caso de uso” em um diagrama de caso de uso UML.

Relacionamento de Casos de Uso

Em um diagrama de caso de uso elaborado na linguagem UML existem três tipos de relacionamentos possíveis, include, extend e herança.

Os relacionamentos entre casos de uso do tipo include e extend são representados por uma linha pontilhada com seta, já os relacionamentos de herança são representados por uma linha sólida com seta.

Include ou Inclusão de Caso de Uso

Indica que o tipo de relacionamento entre dois casos de uso implica na obrigatoriedade da execução do caso de uso que está sendo incluído no caso de uso base.

De forma simples e genérica podemos dizer que: quando um caso de uso “A” possui relacionamento do tipo include com o caso de uso “B”, sua execução deverá também executar o caso de uso “B”.

Representação de um relacionamento “include” em um diagrama de caso de uso UML.
Representação de um relacionamento “include” em um diagrama de caso de uso UML.

Extend ou Extensão

Este tipo de relacionamento indica que dois ou mais casos de uso relacionados podem ou não executar o caso de uso que recebe o relacionamento do tipo extend.

O caso de uso “H” possui relacionamento do tipo extend com o caso de uso “P”, tal relacionamento significa que ao executar o caso de uso “H” pode-se ou não requisitar a execução do caso de uso “P”.

De forma objetiva, podemos afirmar que um relacionamento extend indica que a execução do caso de uso relacionado é opcional, não implicando no sucesso da execução do caso de uso base.

Representação de um relacionamento “extend” em um diagrama de caso de uso UML.
Representação de um relacionamento “extend” em um diagrama de caso de uso UML.

Herança e Generalização de Casos de Uso

O relacionamento do tipo herança ou ainda chamado de patern, é um relacionamento possível entre dois ou mais atores de um caso de uso.

Entretanto a linguagem UML não prevê explicitamente o relacionamento de herança entre casos de uso. É muito comum encontrar diagramas de caso de uso onde o analista realizou essa ligação não permitida, dessa forma é necessário atenção durante a criação dos relacionamentos do caso de uso.

Quando dois ou mais atores de um diagrama de caso de uso estão relacionados através da representação gráfica de herança, indica que o ator que solicita a herança de outro ator, deve herdar todas as permissões e características do ator que recebe o relacionamento.

Este tipo de ligação entre atores é extremamente útil para o reaproveitamento de características em diagramas que representam sistemas complexos ou grandes cenários de interação.

Representação de um relacionamento “herança” em um diagrama de caso de uso UML.
Representação de um relacionamento “herança” em um diagrama de caso de uso UML.

Exemplos de Caso de Uso

Uma vez que tenhamos bem claro quais são os componentes de um diagrama de caso de uso vamos entender como ele é elaborado.

Caso de Uso Simples “Logar no Sistema”

Abaixo mostraremos um exemplo de diagrama de caso de uso extremamente simples, apenas para representar seu uso. Não se preocupe, mesmo que pareça ter pouco sentido, o diagrama é muito fácil de entender e útil.

Explicação do Caso de Uso “Logar no Sistema”

O caso de uso “Fazer Login” permite que um usuário acesse o sistema. O usuário digita seu nome de usuário e senha. Se as informações forem válidas, o sistema concede acesso. Se não, o sistema exibe uma mensagem de erro e pede para o usuário tentar novamente. O sistema bloqueia o acesso após um número de tentativas inválidas.

Detalhes do Caso de Uso “Logar no Sistema”

  • Caso de Uso: Fazer Login no Sistema
  • Atores:: Usuário, Sistema
  • Pré-condições do caso de uso:
    • O usuário já deve possuir cadastro no sistema.
    • O sistema deve estar disponível.

Fluxo Principal do Caso de Uso “Logar no Sistema”

  1. O usuário digita seu nome de usuário e senha na tela de login.
  2. O sistema verifica se o nome de usuário e senha são válidos.
  3. Se forem válidos, o sistema concede acesso ao usuário e o direciona para a tela inicial.
  4. Se forem inválidos, o sistema exibe uma mensagem de erro e solicita que o usuário tente novamente.

Pós-condições do Caso de Uso “Logar no Sistema”

  • O usuário está logado no sistema.
  • O sistema disponibiliza a interface principal do sistema ao usuário.

Restrições do Caso de Uso “Logar no Sistema”

  • O usuário tem 3 tentativas para digitar o nome de usuário e senha corretamente.
  • Após 3 tentativas falhas, o sistema bloqueia o acesso do usuário por 1 minuto.

Comportamentos Não Obrigatórios do Caso de Uso

  • O sistema deve lembrar o nome de usuário do usuário para o próximo login.
  • O sistema deve exibir uma mensagem de aviso quando o usuário estiver próximo do limite de tentativas de login.

Inclusão e Extensão de Caso de Uso (include e extend)

O caso de uso “Consultar Cardápio” também é acionado pelo ator “Usuário”. Diferente do caso de uso anterior, este possui um relacionamento do tipo include com o caso de uso “Efetuar login”.

Ele indica que para a execução do “Consultar cardápio” obrigatoriamente o caso de uso “Efetuar login” deve ser executado.

Este caso de uso possui ainda um relacionamento do tipo extend com o caso de uso “Realizar pedido”. O extend entre os dois casos de uso citados, indica que o caso de uso “Realizar pedido” pode ou não ser executado em decorrência do seu extensor (“Consultar cardápio”).

Por último existe o caso de uso “Efetuar pagamento”, que é incluído (relacionamento tipo include) pelo caso de uso “Realizar pedido”.

Este relacionamento está definindo a obrigatoriedade da execução do incluído para a finalização do caso de uso base.

Caso de Uso Include “Efetuar Compra”

O caso de uso “Efetuar Compra” permite que um cliente finalize a compra de produtos. O cliente precisa estar logado e ter produtos no carrinho.

O sistema valida as informações, apresenta a tela de pagamento, processa o pagamento e envia a confirmação de compra. O sistema inclui a validação dos dados de pagamento.

Detalhes do Caso de Uso “Efetuar Compra”

  • Caso de Uso: Efetuar Compra
  • Atore: Cliente, Sistema
  • Pré-condições:
    • O cliente deve estar logado no sistema.
    • O cliente deve ter um carrinho de compras com produtos.
  • Caso de Uso Include: Validar Dados de Pagamento

Fluxo principal:

  1. O cliente clica no botão “Efetuar Compra”.
  2. O sistema verifica se o cliente está logado e se possui um carrinho de compras com produtos.
  3. Se o cliente estiver logado e tiver um carrinho de compras com produtos, o sistema apresenta a tela de pagamento.
  4. O cliente escolhe a forma de pagamento e insere os dados de pagamento.
  5. O sistema verifica se os dados de pagamento são válidos.
  6. Se os dados de pagamento forem válidos, o sistema processa o pagamento e envia a confirmação de compra para o cliente.
  7. Se os dados de pagamento forem inválidos, o sistema exibe uma mensagem de erro e solicita que o cliente tente novamente.

Pós-condições do Caso de Uso “Efetuar Compra”

  • A compra foi efetuada.
  • O cliente recebeu a confirmação de compra.

Restrições do Caso de Uso “Efetuar Compra”

  • O cliente não pode efetuar compras sem estar logado no sistema.
  • O cliente não pode efetuar compras sem ter um carrinho de compras com produtos.

Comportamentos Adicionais do Caso de Uso

  • O sistema deve oferecer diferentes formas de pagamento, como cartão de crédito, boleto bancário e pix.
  • O sistema deve enviar a confirmação de compra para o e-mail cadastrado pelo cliente.
  • O sistema de pagamento pode estar offline.
  • O cliente pode ter digitado os dados de pagamento incorretamente.
  • O caso de uso pode ser estendido para permitir a compra com um clique.

Caso de Uso Relacionados

  • Fazer Login
  • Adicionar Produto ao Carrinho
  • Remover Produto do Carrinho

Exemplo de Herança de Caso de Uso (pattern)

O diagrama acima é composto por dois atores diferentes e cinco casos de uso distintos. Logo de início, podemos observar que entre o ator “Cliente” e o ator “Usuário” existe um relacionamento de herança, indicando que o “Cliente” herdará todas as atribuições e permissões do ator “Usuário”.

Aprenda mais sobre UML e Requisitos

Conheça e aprenda mais sobre o processo de gerenciamento de projetos e análise de requisitos de software. Recomendamos a leitura dos seguintes artigos:

Sair da versão mobile