Desenvolvedores.Net - TechBlog

Tipos de Relacionamento (UML)

3
1 Estrela2 Estrelas3 Estrelas4 Estrelas5 Estrelas (5 votos, média: 5,00 de 5)
Loading ... Loading ...
14 de abril de 2011

Para um melhor entendimento deste Artigo veja o Índice (UML)

Neste artigo irei abordar os tipos de relacionamento que a UML tem.

Os relacionamentos  ou associações definem as dependências e ligações entre as classes, objetos, pacotes, tabelas, entre outros que iremos ver no decorrer do artigo.

Vamos à eles:

Associação

É uma conexão entre as classes , tabelas e objetos. Um relacionamento.

Em UML uma associação representa um relacionamento que descreve as ligações entre os objetos ligados.

Uma associação deve ter sempre duas pontas, onde uma é o objeto de início e a outra o objeto final.

Uma associação pode representar a multiplicidade entre os objetos. Podemos ter as seguintes representações de multiplicidade:
0 (zero)
1 (um)
0…1 (zero ou um)
0…* (zero ou mais)
1…* (um para muitos)
* (muitos)

 

Por exemplo, podemos pegar uma Nota Fiscal e seus Itens.

Uma nota fiscal, vários itens.

 

As associações podem ser:

  • Normais:
    • É o tipo mais comum, é representada por uma linha sólida entre as classes. Possui um nome em cada ponta que identifica o que cada uma representa, normalmente é um verbo. Mas fica a critério de cada um para facilitar o entendimento.
  • Recursiva:
    • Indica que uma classe pode conectar-se a ela mesma. Por exemplo. Pegamos o objeto Pessoa. Ele é um objeto que pode ser um Pai, um Filho, um Fornecedor, um Cliente, um Usuário. Mas todos estes são “Pessoas”.
  • Um outro exemplo pode ser um plano de contas, onde podemos ter:

    Fornecedor
        |----> Água;
        |----> Luz;
    Receitas
        |----> Vendas
        |----> Serviços
    Despesas
        |----> Financeiras
        |----> Funcionários

    Neste caso podemos estar colocando todos dentro do mesmo objeto e definir o “pai” como o nível superior de cada conta.

  • Exclusiva:
    • Em alguns momentos precisamos representar que um objeto pode participar apenas de um tipo em determinado momento.
    • Uma associação exclusiva é representada por um linha tracejada entre as associações, entre elas existe a especificação {ou}.
    • Abaixo um exemplo. A pessoa não pode ser Jurídica e Física ao mesmo tempo.
  • Qualificada:
    • As associações qualificadas representam as ligações de 1…* (um para muitos) ou * (muitos).
      O “qualificador” identifica no final da associação qual o objeto está identificado.

Agregação

A agregação é um tipo de associação onde o todo está relacionado com suas partes. É representada com o símbolo de um diamante junto a classe agregadora.

Composição

A composição é muito semelhante a agregação, o objeto “Parte” pode pertencer somente ao objeto “Todo” e normalmente o objeto “Todo” vive e morre com suas “Partes”.

É representada pelo símbolo de um diamante preto na classe agregadora.

Generalização

Generalização é a capacidade de identificar as similaridades entre várias classes, com isso criamos um supertipo que encapsula todas as funcionalidades comuns as demais classes filhas.

Podemos usar a generalização para agrupar os nossos objetos em um tipo comum.

Especialização

A especialização cria uma classe herdada da generalização onde refina o processo definido na classe pai. Como o próprio nome diz, especializa a classe pai para um tipo específico.

Usando a mesma imagem acima da generalização, podemos identificar quem é a generalização “subindo” e quem é a especialização “descendo”.

Realização

A realização é um relacionamento entre os itens que implementa o comportamento especificado por outro.
Um exemplo disso seria as classes abstratas e as interfaces que definem que o objeto “filho” deverá realizar alguma método, propriedade no momento da herança.

Dependência

Este é simples :) é um item (objeto) que depende de outro.

Com isto finalizamos este tópico, mas ainda temos muita coisa para ver.
Eu recomendo a leitura de alguns artigos sobre Programação Orientada à Objetos para fixar a idéia e ver a aplicação do que foi aprendido.

  1. Herança
  2. Definições – Avançado
  3. Abstração e Interface

Ver Índice

É isso ai pessoal :)
Até o próximo
♦ Marcelo

Be Sociable, Share!

About Marcelo

Nascido em Juruaia/MG em uma fazenda de criação de búfalos. Está perdido em São Paulo trabalhando com desenvolvimento de aplicações desde os 17 anos. Atualmente é arquiteto de software, é um cara meia boca que fica entre a equipe de desenvolvimento e o gerente de projetos, no meio da ponte. Para saber mais ... http://desenvolvedores.net/marcelo []'s

3 Trackbacks / Pingbacks for this entry

Deixe um Comentário

O seu endereço de email não será publicado

Você pode usar estas tags e atributos de HTML: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>