SingularCode

Diagrama de Caso de Uso

Diagrama de Caso de Uso

O Diagrama de Casos de Uso é uma das ferramentas fundamentais e amplamente utilizadas dentro da Linguagem de Modelagem Unificada (UML). Ele desempenha um papel fundamental no desenvolvimento de sistemas de software, oferecendo uma representação gráfica das funcionalidades que um sistema deve fornecer e as interações entre o sistema e seus usuários finais ou outros sistemas. Essencialmente, ele descreve o comportamento do sistema do ponto de vista do usuário, facilitando a compreensão dos requisitos do sistema por todas as partes interessadas.

 

Objetivos e Benefícios

O principal objetivo do Diagrama de Casos de Uso é capturar os requisitos funcionais de um sistema, mostrando quais funções serão realizadas e quem será responsável por elas. Isso inclui:

  • Identificar os Atores: Os atores representam os usuários do sistema (que podem ser humanos ou outros sistemas) que interagem diretamente com ele. Eles são fundamentais para entender quem utiliza o sistema e de que forma.
  • Definir os Casos de Uso: Cada caso de uso representa uma sequência de ações que o sistema realiza e que produz um resultado de valor para um ator. Eles são a essência do comportamento do sistema.
  • Estabelecer Relacionamentos: Os relacionamentos entre atores e casos de uso, bem como entre diferentes casos de uso, são explicitamente mostrados, ajudando a entender como as diferentes partes do sistema interagem entre si.

 

Componentes de um Diagrama de Casos de Uso

  • Atores: Representados por figuras que parecem “bonecos de palito”, simbolizam os usuários ou sistemas que interagem com o caso de uso.
  • Casos de Uso: Representados por elipses, descrevem as ações realizadas pelo sistema que agregam valor aos atores.
  • Sistema: Geralmente representado por um retângulo que engloba todos os casos de uso, define o escopo do sistema em análise.
  • Relacionamentos: Incluem associações (linhas simples que conectam atores a casos de uso), generalizações (indicando herança entre atores ou casos de uso), e incluem/estendem dependências que mostram como um caso de uso pode ser reutilizado ou estendido por outro.

Como criar um Diagrama de Casos de Uso

  1. Identificar os Atores: Comece identificando todos os usuários ou sistemas que interagem com seu sistema.
  2. Definir os Casos de Uso: Liste todas as funcionalidades principais que o sistema precisa fornecer aos atores.
  3. Desenhar o Sistema: Use um retângulo para definir o limite do seu sistema.
  4. Associar Atores aos Casos de Uso: Conecte os atores aos casos de uso relevantes através de linhas, mostrando quem pode realizar ou participar de cada caso de uso.
  5. Detalhar Relacionamentos: Adicione relacionamentos de inclusão, extensão ou generalização conforme necessário para representar as dependências entre casos de uso.
 
O Diagrama de Casos de Uso é fundamental para:
  • Compreensão dos Requisitos: Ajuda todos os stakeholders a entenderem o que o sistema deve fazer, de uma maneira clara e concisa.
  • Comunicação: Facilita a comunicação entre a equipe de desenvolvimento, clientes e usuários finais, garantindo que todos tenham a mesma compreensão dos requisitos do sistema.
  • Planejamento do Projeto: Serve como uma base para o planejamento de projetos, ajudando a estimar esforços, tempo e custos.
  • Teste e Validação: Auxilia na criação de planos de teste, assegurando que todos os requisitos funcionais sejam testados e validados.

 

O Diagrama de Casos de Uso é uma ferramenta essencial na modelagem de sistemas, oferecendo uma visão clara dos requisitos funcionais e facilitando a comunicação entre os envolvidos no desenvolvimento de software. Ele permite uma compreensão profunda das necessidades do usuário e como o sistema deve atendê-las, sendo fundamental para o sucesso do projeto de software.

Relacionamentos

Os relacionamentos em um diagrama de caso de uso  descreve como os atores e os casos de uso interagem entre si, além de como os próprios casos de uso interagem ou dependem uns dos outros. Existem principalmente três tipos de relacionamentos no diagrama de caso de uso: associação, inclusão e extensão, além de um quarto tipo menos comum, a generalização. Vamos explorar cada um deles em detalhes.

 

Associação

A associação é o relacionamento mais básico em um diagrama de caso de uso, representado por uma linha simples que conecta um ator a um caso de uso. Esse relacionamento indica que o ator está envolvido de alguma forma com o caso de uso. Por exemplo, um cliente (ator) que faz uma compra (caso de uso) em um e-commerce. A associação não especifica a natureza da interação; apenas afirma que há uma interação.

 

Inclusão (<<Include>>)

O relacionamento de inclusão é usado quando um caso de uso incorpora o comportamento de outro caso de uso. Este é representado pela palavra-chave <<include>> junto com uma seta apontando do caso de uso base para o caso de uso incluído. A inclusão é usada para evitar a repetição de funcionalidades comuns entre vários casos de uso, promovendo a reutilização. Por exemplo, em um sistema de e-commerce, o caso de uso “Finalizar Compra” pode incluir o caso de uso “Calcular Frete”. Isso indica que o cálculo do frete é um processo necessário e parte integrante da finalização da compra.

 

Extensão (<extend>>)

O relacionamento de extensão é utilizado quando o comportamento de um caso de uso pode ser estendido ou complementado por outro caso de uso. Este é representado pela palavra-chave <<extend>> junto com uma seta apontando do caso de uso opcional (que estende) para o caso de uso base (que é estendido). A extensão é usada para modelar comportamentos opcionais ou condicionais que não são sempre executados. Por exemplo, o caso de uso “Aplicar Cupom de Desconto” pode estender o caso de uso “Finalizar Compra”, indicando que a aplicação de um cupom de desconto é um passo opcional no processo de compra.

 

Generalização

A generalização é um relacionamento que indica uma hierarquia ou herança entre casos de uso ou atores, semelhante à herança em programação orientada a objetos. Um ator filho pode herdar os relacionamentos e comportamentos de um ator pai, mas também pode ter comportamentos adicionais. No contexto de casos de uso, isso é menos comum, mas pode ser usado para simplificar e organizar casos de uso semelhantes sob um caso de uso mais geral. Por exemplo, “Processar Pagamento” pode ser um caso de uso geral que é especializado em “Processar Pagamento com Cartão” e “Processar Pagamento com Boleto”.

 

Entender esses relacionamentos é crucial para desenhar um diagrama de caso de uso eficaz. Eles ajudam a esclarecer como os atores interagem com o sistema e como diferentes partes do sistema dependem umas das outras. Um bom diagrama de caso de uso, com relacionamentos claramente definidos, serve como uma ferramenta valiosa para a análise e design de sistemas, facilitando a comunicação entre desenvolvedores, analistas de sistemas e stakeholders, e garantindo que todos tenham uma compreensão comum dos requisitos do sistema

Exemplo de Inclusão e Extensão

Exemplo Prático: Sistema de Biblioteca Online

Associe o ator aos Casos de Uso Principais:

  1. Pesquisar Livros: Permite ao usuário pesquisar livros disponíveis na biblioteca online.
  2. Empréstimo de Livro: Permite ao usuário emprestar um livro.
  3. Devolução de Livro: Permite ao usuário devolver um livro emprestado.

Casos de Uso Secundários (Relacionados):

  • Autenticação do Usuário: Necessário para emprestar ou devolver um livro.
  • Notificação de Atraso: Envia uma notificação ao usuário se o livro não for devolvido até a data de vencimento.
 
Inclusão
  • Entre Empréstimo de Livro e Autenticação do Usuário
  • Entre Devolução de Livro e Autenticação do Usuário

 

Extensão:

  • Entre Notificação de Atraso e Devolução de Livro

Exemplo: Ecommerce de Livro

Requisitos Funcionais Principais

  1. Cadastro de Usuário: Os usuários devem poder criar uma conta, fornecendo informações básicas como nome, e-mail e senha.
  2. Login/Logout: Autenticação para permitir que os usuários acessem suas contas e saiam delas quando desejarem.
  3. Pesquisa de Livros: Capacidade de pesquisar livros por título, autor, gênero ou outras categorias relevantes.
  4. Visualização de Detalhes do Livro: Ao selecionar um livro, o usuário deve poder visualizar detalhes como preço, sinopse, avaliações, etc.
  5. Gerenciamento do Carrinho de Compras: Adicionar, remover ou alterar a quantidade de livros no carrinho de compras.
  6. Checkout: Processo de finalização de compra, incluindo fornecimento de informações de pagamento e endereço de entrega.
  7. Avaliações e Comentários: Os usuários podem deixar avaliações e comentários sobre os livros após a compra.
  8. Histórico de Pedidos: Os usuários podem visualizar o histórico de suas compras.
  9. Gestão de Estoque: Funcionalidade administrativa para adicionar, remover ou atualizar livros disponíveis no e-commerce.
  10. Promoções e Descontos: Capacidade de aplicar descontos a livros ou categorias específicas.

Mapeamento para um Diagrama de Caso de Uso

Atores e Casos de Uso

  • Ator: Usuário

    • Casos de Uso:
      • Cadastro de Usuário
      • Login/Logout
      • Pesquisa de Livros
      • Visualização de Detalhes do Livro
      • Gerenciamento do Carrinho de Compras
      • Checkout
      • Avaliações e Comentários
      • Visualização do Histórico de Pedidos
  • Ator: Administrador

    • Casos de Uso:
      • Gestão de Estoque
      • Criação de Promoções e Descontos

Casos de Uso Secundários (Relacionados):

  • Autenticação do Usuário: Necessário para realizar uma compra.
  • Aplicar Desconto: Opcional, permite aplicar um desconto ao preço final no checkout, sob certas condições.
  • Recomendação de Livros: Sugere livros similares ao usuário baseado em seu histórico de navegação ou compras.

Relacionamentos de Include e Extend

Include (Inclusão):

  1. Autenticação do Usuário -> Comprar Livro

Extend (Extensão):

  1. Aplicar Desconto <-extend Comprar Livro 

  2. Recomendação de Livros <-extend Visualizar Detalhes do Livro

Atualizado em: 01/04/2024 por Nelson H. Koshoji