Relacionamentos UML com EXEMPLO: Dependência, Generalização, Realização

Índice:

Anonim

O que é relacionamento UML?

Os relacionamentos em UML são usados ​​para representar uma conexão entre coisas estruturais, comportamentais ou de agrupamento. Também é chamado de link que descreve como duas ou mais coisas podem se relacionar durante a execução de um sistema. Os tipos de relacionamento UML são Associação, Dependência, Generalização e Realização.

Vamos estudá-los em detalhes

  • Associação

É um conjunto de links que conecta elementos do modelo UML. Ele também define quantos objetos estão participando dessa relação.

  • Dependência

Em um relacionamento de dependência, como o nome sugere, dois ou mais elementos são dependentes um do outro. Nesse tipo de relacionamento, se fizermos uma mudança em um elemento específico, é provável que todos os outros elementos também sejam afetados pela mudança.

  • Generalização

Também é chamado de relacionamento pai-filho. Na generalização, um elemento é uma especialização de outro componente geral. Pode ser substituído por ele. É usado principalmente para representar herança.

  • Realização

Em um relacionamento de realização da UML, uma entidade denota alguma responsabilidade que não é implementada por ela mesma e a outra entidade que as implementa. Essa relação é encontrada principalmente no caso de interfaces.

Neste tutorial UML, você aprenderá:

  • Associação
  • Dependência
  • Generalização
  • Realização
  • Composição
  • Agregação

Associação

É uma relação estrutural que representa que os objetos podem ser conectados ou associados a outro objeto dentro do sistema. As seguintes restrições podem ser aplicadas ao relacionamento de associação.

  • {implícito} - restrições implícitas especificam que o relacionamento não é manifesto; é baseado em um conceito.
  • {ordenado} - restrições ordenadas especificam que o conjunto de objetos em uma extremidade de uma associação é de uma maneira específica.
  • {mutável} - restrição mutável especifica que a conexão entre vários objetos no sistema pode ser adicionada, removida e modificada de acordo com o requisito.
  • {addOnly} - Especifica que as novas conexões podem ser adicionadas a partir de um objeto que está situado na outra extremidade de uma associação.
  • {frozen} - especifica que quando um link é adicionado entre dois objetos, então ele não pode ser modificado enquanto a restrição congelada está ativa no link fornecido ou em uma conexão.

Também podemos criar uma classe que tenha propriedades de associação; é chamado de classe de associação.

Associação reflexiva

A associação reflexiva é um subtipo de relacionamento de associação em UML. Em uma associação reflexiva, as instâncias da mesma classe podem estar relacionadas entre si. Uma instância de uma classe também é considerada um objeto.

A associação reflexiva afirma que um link ou uma conexão pode estar presente nos objetos da mesma classe.

Vamos considerar um exemplo de fruta de classe. A classe fruta tem duas instâncias, como manga e maçã. A associação reflexiva afirma que uma ligação entre manga e maçã pode estar presente, pois são instâncias da mesma classe, como fruta.

Associação dirigida

Como o nome sugere, a associação direcionada está relacionada à direção do fluxo dentro das classes de associação.

Em uma associação direcionada, o fluxo é direcionado. A associação de uma classe para outra classe flui em uma única direção apenas.

É denotado por uma linha sólida com uma ponta de seta.

Exemplo:

Você pode dizer que existe uma relação de associação direta entre um servidor e um cliente. Um servidor pode processar as solicitações de um cliente. Esse fluxo é unidirecional, que flui apenas do servidor para o cliente. Portanto, um relacionamento de associação direcionado pode estar presente nos servidores e clientes de um sistema.

Dependência

Usando um relacionamento de dependência em UML, pode-se relacionar como várias coisas dentro de um determinado sistema dependem umas das outras. Dependência é usada para descrever o relacionamento entre vários elementos em UML que dependem uns dos outros.

Estereótipos

  • « Bind » - Bind é uma restrição que especifica que a fonte pode inicializar o modelo em um local de destino, usando os parâmetros ou valores fornecidos.
  • «Derivar» - representa que a localização de um objeto de origem pode ser calculada a partir do objeto de destino.
  • «Amigo» - Especifica que a fonte tem visibilidade única no objeto de destino.
  • «InstanceOf» - Especifica que a instância de um classificador de destino é o objeto de origem.
  • «Instanciar» - Especifica que o objeto de origem é capaz de criar instâncias de um objeto de destino.
  • «Refinar» - Especifica que o objeto de origem tem abstração excepcional do que o objeto de destino.
  • «Use» - É usado quando os pacotes são criados em UML. O estereótipo de uso descreve que os elementos de um pacote de origem também podem estar presentes dentro do pacote de destino. Ele descreve que o pacote de origem faz uso de alguns elementos de um pacote de destino.
  • «Substituir» - especifica que o cliente pode ser substituído pelo fornecedor em tempo de execução.
  • «Access» - especifica que o pacote de origem acesse os elementos do pacote de destino, que também é chamado de mesclagem privada.
  • «Import» - Especifica que o destino pode importar o elemento de um pacote de origem como eles são definidos dentro do destino, o que também é chamado de fusão pública.
  • «Permitir» - especifica que o elemento fonte tem acesso ao elemento fornecedor independentemente da visibilidade declarada do fornecedor.
  • «Extend» - Ajuda a especificar que o destino pode estender o comportamento do elemento de origem.
  • «Incluir» - Permite que você especifique o elemento de origem que pode ser incluído no comportamento de outro elemento em um local especificado. (igual a uma chamada de função em c / c ++)
  • «Se tornar» - Especifica que o destino é semelhante à origem, com valores e funções diferentes.
  • «Call» - Especifica que a fonte pode invocar um método de objeto de destino.
  • «Cópia» - Especifica que o objeto de destino é independente, cópia de um objeto de origem.
  • «Parâmetro» - o fornecedor é um parâmetro das operações do cliente .
  • «Enviar» - o cliente é uma operação que envia ao fornecedor algum destino não especificado.

Estereótipos entre máquinas de estado

  • «Send» - Especifica que a operação de origem envia o evento de destino.

Generalização

É uma relação entre uma entidade geral e uma entidade única que está presente dentro do sistema.

Em um relacionamento de generalização, o conceito orientado a objetos denominado herança pode ser implementado. Existe uma relação de generalização entre dois objetos, também chamados de entidades ou coisas. Em um relacionamento de generalização, uma entidade é pai e outra é chamada de filho. Essas entidades podem ser representadas por herança.

Na herança, um filho de qualquer pai pode acessar, atualizar ou herdar a funcionalidade conforme especificado no objeto pai. Um objeto filho pode adicionar sua funcionalidade a si mesmo, bem como herdar a estrutura e o comportamento de um objeto pai.

Esse tipo de relacionamento é conhecido coletivamente como relacionamento de generalização.

Estereótipos e suas restrições

  • «Implementação» - Este estereótipo é usado para representar que a entidade filha está sendo implementada pela entidade pai, herdando a estrutura e o comportamento de um objeto pai sem violar as regras. Nota Este estereótipo se amplamente utilizado em uma herança única .

O relacionamento de generalização contém restrições como completo, incompleto para verificar se todas as entidades filhas estão sendo incluídas no relacionamento ou não.

Realização

Em um relacionamento de realização da UML, uma entidade denota alguma responsabilidade que não é implementada por ela mesma e a outra entidade que as implementa. Essa relação é encontrada principalmente no caso de interfaces.

A realização pode ser representada de duas maneiras:

  • Usando um formulário canônico
  • Usando um formulário elidido

No diagrama acima, as regras de negócios da conta realizam a interface IRuleAgent.

Tipos de realização:

  1. Forma canônica

    Em um relacionamento de realização de UML, a forma canônica é usada para realizar interfaces em todo o sistema. Ele usa um estereótipo de interface para criar uma interface e o relacionamento de realização é usado para realizar a interface específica.

    Em uma forma canônica, o relacionamento de realização é denotado usando a linha direcionada tracejada com uma ponta de seta aberta de tamanho considerável.

    No diagrama acima, a interface Iruleagent é realizada usando um objeto chamado Account Business Rules.

  2. Forma elidida

    A realização no diagrama de classes UML também pode ser mostrada usando um formulário omitido. Em uma forma elidida, a interface é denotada por um círculo que também é chamado de notação pirulito.

    Essa interface, quando realizada usando qualquer coisa presente dentro do sistema, cria uma estrutura omitida.

    No diagrama acima, a interface Iruleagent é denotada usando um formulário elidido que está sendo realizado por acctrule.dll.

Composição

Não é um relacionamento UML padrão, mas ainda é usado em vários aplicativos.

A agregação composta é um subtipo de relação de agregação com características como:

  • é uma associação bidirecional entre os objetos.
  • É uma relação todo / parte.
  • Se um composto for excluído, todas as outras partes associadas a ele serão excluídas.

A agregação composta é descrita como uma associação binária decorada com um losango preto preenchido na extremidade do agregado (todo).

Uma pasta é uma estrutura que contém n vários arquivos. Uma pasta é usada para armazenar os arquivos dentro dela. Cada pasta pode ser associada a qualquer número de arquivos. Em um sistema de computador, cada arquivo faz parte de pelo menos uma pasta dentro do sistema de organização de arquivos. O mesmo arquivo também pode fazer parte de outra pasta, mas não é obrigatório. Sempre que um arquivo é removido da pasta, a pasta não é afetada, enquanto os dados relacionados a esse arquivo específico são destruídos. Se uma operação de exclusão for executada na pasta, também afetará todos os arquivos que estão presentes dentro da pasta. Todos os arquivos associados à pasta são destruídos automaticamente assim que a pasta é removida do sistema.

Este tipo de relacionamento em UML é conhecido por relacionamento de agregação composto.

Agregação

Uma agregação é um subtipo de um relacionamento de associação em UML. Agregação e composição são os dois tipos de relacionamento de associação em UML. Um relacionamento de agregação pode ser descrito em palavras simples como "um objeto de uma classe pode possuir ou acessar os objetos de outra classe".

Em um relacionamento de agregação, o objeto dependente permanece no escopo de um relacionamento, mesmo quando o objeto de origem é destruído.

Vamos considerar um exemplo de um carro e uma roda. Um carro precisa de uma roda para funcionar corretamente, mas uma roda nem sempre precisa de um carro. Também pode ser usado com a bicicleta, bicicleta ou qualquer outro veículo, mas não em um carro específico. Aqui, o objeto roda é significativo mesmo sem o objeto carro. Esse tipo de relacionamento é chamado de relação de agregação.

Resumo

  • O relacionamento em UML permite que uma coisa se relacione com outras coisas dentro do sistema.
  • Relacionamentos de associação, dependência, generalização e realização são definidos pela UML.
  • O relacionamento de composição também pode ser usado para representar que o objeto pode fazer parte de apenas um composto por vez.
  • Associação é usada para descrever que um objeto pode ser associado a outro objeto.
  • Dependência denota que os objetos podem ser dependentes uns dos outros.
  • Uma realização é um relacionamento significativo entre classificadores.
  • A generalização também é chamada de relacionamento pai-filho.