de_DEen_USes_ESfr_FRid_IDjapl_PLru_RUvizh_CNzh_TW

Um Guia Completo sobre Relações Include e Extend em Diagramas de Casos de Uso UML

Linguagem Unificada de Modelagem (UML)diagramas de casos de uso são ferramentas poderosas para modelar os requisitos funcionais de um sistema. Eles ilustram como os atores (usuários ou sistemas externos) interagem com o sistema por meio de casos de uso, que representam funcionalidades específicas. Duas relações-chave em diagramas de casos de uso—Include e Extend—ajudam a gerenciar a complexidade ao estruturar e modularizar o comportamento. Este tutorial oferece uma explicação detalhada dessas relações, seus propósitos, características e aplicações práticas, completo com exemplos para garantir clareza.


O que são as Relações Include e Extend?

Em diagramas de casos de uso UML, Include e Extendrelações de Include e Extend permitem dividir casos de uso complexos em componentes menores, reutilizáveis ou opcionais. Essas relações aumentam a modularidade, reduzem a redundância e melhoram a clareza dos diagramas.

Include” and “Extend” Use Cases - Visual Paradigm Blog

  • Relação Include (<<include>>): Representa um comportamento obrigatório que é sempre executado como parte de um caso de uso base. Ele extrai funcionalidades comuns compartilhadas por vários casos de uso em um componente reutilizável.

  • Relação Extend (<<extend>>): Representa um comportamento opcional ou condicional que estende um caso de uso base sob condições específicas, mantendo o caso de uso base focado em sua funcionalidade principal.

Ambas as relações usam setas tracejadas para conectar casos de uso, com rótulos indicando<<include>> ou <<extend>>. A direção da seta é crítica, pois reflete a dependência entre os casos de uso.


Relação Include (<<include>>)

Propósito

O IncluirO relacionamento é usado para extrair comportamentos comuns e obrigatórios de múltiplos casos de uso para um único caso de uso reutilizável. Isso promove a reutilização e simplifica os casos de uso base, evitando funcionalidades duplicadas.

Características

  • Obrigatório: O caso de uso incluído é sempre executado quando o caso de uso base é realizado.

  • Reutilizável: O caso de uso incluído é uma função autônoma e coerente que pode ser utilizada por múltiplos casos de uso base.

  • Simplifica Diagramas: Ao extrair etapas comuns, o caso de uso base permanece conciso e focado.

  • Direção: A seta aponta do caso de uso base para o caso de uso incluído, indicando que o caso de uso base depende do incluído.

Notação

  • Uma seta tracejada rotulada<<incluir>> conecta o caso de uso base ao caso de uso incluído.

Exemplo 1: Sistema de Compras Online

Considere um sistema de compras online onde um cliente podeColocar Pedido ou Cancelar Pedido. Ambos os casos de uso exigem que o clienteFaça Login no sistema.

  • Casos de Uso Base: Colocar Pedido, Cancelar Pedido

  • Caso de Uso Incluído: Entrar

  • Explicação: Entrar é uma etapa obrigatória tanto para fazer quanto para cancelar um pedido. Em vez de duplicar a funcionalidade de login em ambos os casos de uso, ela é extraída para um caso de uso separadoEntrar caso de uso, que é incluído por ambos.

Representação do Diagrama:

[Fazer Pedido] ----<<incluir>>----> [Entrar]
[Cancelar Pedido] ----<<incluir>>----> [Entrar]

Exemplo 2: Sistema de Gestão de Biblioteca

Em um sistema de biblioteca, um usuário podePegar Livro ou Devolver Livro. Ambos os processos exigemVerificar Usuário.

  • Casos de Uso Básicos: Pegar Livro, Devolver Livro

  • Caso de Uso Incluído: Verificar Usuário

  • Explicação: Verificar a identidade do usuário (por exemplo, verificar seu cartão de biblioteca) é uma etapa obrigatória tanto ao pegar quanto ao devolver um livro. OVerificar Usuário o caso de uso é incluído para evitar redundância.

Representação do Diagrama:

[Pegar Livro] ----<<incluir>>----> [Verificar Usuário]
[Devolver Livro] ----<<incluir>>----> [Verificar Usuário]

Quando usar

  • Quando múltiplos casos de uso compartilham uma etapa comum e obrigatória.

  • Quando você deseja simplificar as descrições dos casos de uso ao extrair funcionalidades reutilizáveis.

  • Quando o caso de uso incluído é significativo por si só (por exemplo, Entrar ou Verificar Usuário pode ser entendido como funções independentes).


Relação de Extensão (<<extender>>)

Propósito

O ExtenderA relação de extensão é usada para modelar comportamentos opcionais ou condicionais que são executados apenas sob circunstâncias específicas. Permite que o caso de uso base permaneça focado em sua funcionalidade principal, ao mesmo tempo que adiciona comportamentos opcionais de forma modular.

Características

  • Opcional/Condicional: O caso de uso de extensão é executado apenas se certas condições forem atendidas.

  • Dependente: O caso de uso de extensão não é significativo por si só e depende do caso de uso base.

  • Pontos de Extensão: O caso de uso base pode definir pontos específicos onde o comportamento de extensão pode ser inserido.

  • Direção: A seta aponta do caso de uso de extensão para o caso de uso base, indicando que o caso de uso de extensão adiciona comportamento ao base.

Notação

  • Uma seta tracejada rotulada <<extend>> conecta o caso de uso estendido ao caso de uso base, frequentemente com uma observação especificando a condição ou ponto de extensão.

Exemplo 1: Sistema de Caixa Eletrônico

Em um sistema de caixa eletrônico, o caso de uso base éSacar Dinheiro. Um comportamento opcional,Imprimir Comprovante, pode ocorrer se o usuário solicitar um comprovante.

  • Caso de Uso Base: Sacar Dinheiro

  • Caso de Uso Estendido: Imprimir Comprovante

  • Condição: O usuário escolhe imprimir um comprovante após sacar dinheiro.

  • Explicação: Imprimir um comprovante não é obrigatório e só ocorre se o usuário solicitá-lo explicitamente. OImprimir Comprovante caso de uso estendeSacar Dinheiro no ponto de extensão “Usuário solicita comprovante.”

Representação do Diagrama:

[Imprimir Comprovante] ----<<extend>>----> [Sacar Dinheiro]rn(Nota: Condição = Usuário solicita comprovante)

Exemplo 2: Plataforma de Curso Online

Em uma plataforma de curso online, um usuário podeResponder Questionário. Um comportamento opcional,Solicitar Dica, ocorre se o usuário tiver dificuldade com uma pergunta.

  • Caso de Uso Básico: Responder Questionário

  • Caso de Uso de Extensão: Solicitar Dica

  • Condição: O usuário solicita uma dica durante o questionário.

  • Explicação: Solicitar uma dica é opcional e depende da necessidade do usuário. O Solicitar Dica caso de uso estende Responder Questionário no ponto de extensão “Usuário precisa de ajuda.”

Representação do Diagrama:

[Solicitar Dica] ----<<extender>>----> [Responder Questionário]
(Nota: Condição = Usuário precisa de ajuda)

Quando usar

  • Quando o comportamento é opcional ou depende de condições específicas.

  • Quando você deseja manter o caso de uso básico focado em sua funcionalidade principal.

  • Quando o caso de uso de extensão não tem sentido sem o caso de uso básico (por exemplo, Imprimir Comprovante é irrelevante sem Sacar Dinheiro).


Principais Diferenças entre Incluir e Estender

A tabela abaixo resume as diferenças entre Incluir e Estenderrelações para orientar seu uso:

Critérios

Incluir (<<incluir>>)

Estender (<<estender>>)

O comportamento é obrigatório?

Sim, sempre executado como parte do caso de uso base

Não, executado apenas sob condições específicas

O comportamento pode funcionar sozinho?

Sim, é uma função coerente e reutilizável

Não, depende do caso de uso base

Ocorre em múltiplos casos de uso?

Sim, compartilhado entre múltiplos casos de uso

Normalmente específico a um único caso de uso

Propósito

Promover reutilização e simplificar o caso de uso base

Adicionar comportamento opcional ou excepcional de forma modular

Direção da seta

Base → Caso de uso incluído

Estendendo → Caso de uso base


Exemplo prático: Sistema de Gestão de Restaurante

Vamos aplicar ambas as relações em um sistema de gestão de restaurante para ilustrar seu uso em um cenário do mundo real.

Cenário

Um sistema de restaurante permite que os clientesPedir comida e Reservar Mesa. O sistema também gerencia comportamentos adicionais como Pagar Conta e Solicitar para Levar.

Casos de Uso

  • Pedir Comida: O cliente pede comida no menu.

  • Reservar Mesa: O cliente reserva uma mesa para jantar.

  • Autenticar Cliente: Verifica a identidade do cliente (por exemplo, por meio de uma conta de fidelidade).

  • Pagar Conta: O cliente paga pelo seu pedido (obrigatório para Pedir Comida).

  • Solicitar para Levar: Uma solicitação opcional para embalar o pedido para levar.

Relacionamentos

  • Incluir: Ambos Pedir Comida e Reservar Mesa exigem Autenticar Cliente para verificar a identidade do cliente. Pedir Comida também inclui Pagar Conta porque o pagamento é obrigatório após o pedido.

  • Estender: Pedir Comida pode ser estendido porSolicitar para Levar se o cliente optar por levar sua comida.

Representação do Diagrama

[Pedir Comida] ----<<incluir>>----> [Autenticar Cliente]
[Pedir Comida] ----<<incluir>>----> [Pagar Conta]
[Reservar Mesa] ----<<incluir>>----> [Autenticar Cliente]
[Solicitar para Levar] ----<<estender>>----> [Pedir Comida]
(Nota: Condição = Cliente solicita para levar)

Explicação

  • Autenticar Cliente é incluído em ambosPedir Comida eReservar Mesa porque é uma etapa obrigatória para acessar o sistema.

  • Pagar Conta é incluído emPedir Comida porque o pagamento é necessário para concluir o pedido.

  • Solicitar para Levar estendePedir Comida porque é um comportamento opcional que ocorre apenas se o cliente solicitar para levar.


Melhores Práticas para Usar Incluir e Estender

  1. Use Incluir com Moderação: Apenas extraia comportamentos para um caso de uso incluído se ele for compartilhado por múltiplos casos de uso ou simplificar significativamente o caso de uso base. O uso excessivo de inclusões pode tornar os diagramas confusos.

  2. Defina Pontos de Extensão Claros para Estender: Especifique as condições ou pontos no caso de uso base onde o comportamento de extensão se aplica para evitar ambiguidades.

  3. Mantenha os Casos de Uso Focados: Certifique-se de que o caso de uso base permaneça simples e focado em seu objetivo principal, usando Incluir para etapas obrigatórias e Estender para os opcionais.

  4. Valide a Reutilização para Incluir: O caso de uso incluído deve ser significativo e reutilizável em diferentes contextos.

  5. Evite Complexificar Diagramas: Use Incluir e Estender apenas quando adicionarem clareza. Relações complexas podem confundir os interessados.


Armadilhas Comuns e Como Evitá-las

  1. Confundir Incluir com Estender:

    • Armadilha: Usar Incluir para comportamento opcional ou Estender para comportamento obrigatório.

    • Solução: Verifique sempre se o comportamento é obrigatório (use Incluir) ou condicional (use Estender).

  2. Sobreuso de Relacionamentos:

    • Armadilha: Criando muitos Incluir ou Estenderrelacionamentos, tornando o diagrama difícil de ler.

    • Solução: Use apenas esses relacionamentos quando eles reduzem a redundância ou melhoram a clareza.

  3. Condições de Extensão Vagas:

    • Armadilha: Não especificar a condição para um Estenderrelacionamento, levando a confusão.

    • Solução: Sempre inclua uma nota ou descrição da condição ou ponto de extensão.

  4. Incluindo Comportamento Não Reutilizável:

    • Armadilha: Criando um caso de uso incluído que é usado apenas por um caso de uso base.

    • Solução: Certifique-se de que o caso de uso incluído seja reutilizável ou simplifique significativamente o caso de uso base.


Conclusão

Os Incluir e Estenderrelacionamentos em diagramas de casos de uso UML são essenciais para gerenciar a complexidade e garantir a modularidade. O Incluir relação promove reutilização ao extrair comportamentos obrigatórios e compartilhados, enquanto a Extenderrelação mantém os casos de uso base focados ao modelar comportamentos opcionais ou condicionais. Ao compreender seus propósitos, características e melhores práticas, você pode criar diagramas de casos de uso claros, mantáveis e eficazes que comunicam a funcionalidade do sistema aos interessados.

Referência

Follow
Loading

Signing-in 3 seconds...

Signing-up 3 seconds...