For faster navigation, this Iframe is preloading the Wikiwand page for Diagrama de classes.

Diagrama de classes

Diagramas da UML 2.0 editar
Diagramas estruturais
Diagramas comportamentais ou dinâmicos

Em programação, um diagrama de classes é uma representação da estrutura e relações das classes que servem de modelo para objetos.[1] É uma modelagem muito útil para o desenvolvimento de sistemas, pois define todas as classes que o sistema necessita possuir e é a base para a construção dos diagramas de comunicação, sequência e estados.

Exemplo de Diagrama de Classes com duas classes e duas anotações. A classe à direita compõe a classe à esquerda
  • Classe: Elemento abstrato que representa um conjunto de objetos. A classe contém a especificação do objeto; suas características: atributos (características) e métodos (ações / comportamentos).
    • Atributo: Define características da classe como:
      • Visibilidade:
        • Pública, representada pelo símbolo: +, onde outras classes podem ter acesso ao atributo;
        • Privada, representada pelo símbolo: -, o atributo somente é acessado diretamente pela própria classe e;
        • Protegida, representada pelo símbolo: #, ou
        • Pacote, representada pelo símbolo: ~, que é acessado pelo relacionamento da classe com a classe externa.
      • Nome: Identificação do atributo.
      • Tipo de dados: Tipo de dado do atributo.
      • Multiplicidade: Relacionamentos.
      • Valor inicial: Depende da linguagem de programação, valor opcional.
      • Propriedade: Características do elemento, opcional.
    • Operação: Função requerida a um objeto abstrato.
      • Nome, Visibilidade e Parâmetros.
    • Associação: Relacionamentos entre classes.
      • Nome: Nome da associação.
      • Multiplicidade.
      • Navegação: De onde vêm as informações da classe e para onde vão.

Relacionamento entre classes

[editar | editar código-fonte]

Os objetos tem relações entre eles: um professor ministra uma disciplina para alunos numa sala, um cliente faz uma reserva de alguns lugares para uma data, etc.[2] Essas relações são representadas também no diagrama de classe.Geralmente as classes não estão sós e se relacionam entre si. O relacionamento e a comunicação entre as classes definem responsabilidades , temos 3 tipos :


Associações : Agregação e composição, Generalização (herança), Dependências


Associação (Agregação)

[editar | editar código-fonte]

São relacionamentos estruturais entre instâncias e especificam que objetos de uma classe estão ligados a objetos de outras classes. Podemos ter associação unitária etc. A associação pode existir entre classes ou entre objetos. Uma associação entre a classe Professor e a classe disciplina (um professor ensina uma disciplina) significa que uma instância de Professor (um professor específico) vai ter uma associação com uma instância de Disciplina. Esta relação significa que as instâncias das classes são conectadas, seja fisicamente ou conceitualmente.

A composição, diferentemente da agregação, é um relacionamento de contenção. Um objeto (container) CONTÉM outros objetos (elementos). Esses elementos que estão contidos dentro de outro objeto dependem dele para existir. Eles são criados e destruídos de acordo com o seu container. Um exemplo de container poderia ser uma nota fiscal, e seus elementos seriam seus itens. Não faz sentido existir itens de nota fiscal, sem que haja uma nota fiscal onde tais itens estejam contidos. Eles só existem se houver uma nota fiscal da qual eles façam parte. Se a nota fiscal é destruída, todos os seus itens também são, o que não acontece com a agregação, onde, se uma reunião é destruída, seus participantes continuam existindo, pois podem participar de outras reuniões. A composição, na UML, é representada por uma linha com um losango preenchido do lado da classe dona do relacionamento. No primeiro exemplo existem duas classes distintas a primeira é a classe Carro e a segunda é a classe Motor. Imagine que toda classe Carro tenha uma classe Motor, neste exemplo há uma relação entre Carro e Motor de composição, pois o motor está contido na classe Carro.

Um exemplo de composição é a relação entre Livro e Autor são duas classes distintas, onde cada objeto da classe Livro possui um objeto da classe Autor. Neste caso existirá uma relação de composição, pois a classe Autor faz parte da classe Livro.

Uma forma de verificar se uma determinada classe A tem uma relação de composição com uma classe B. É fazer perguntar-se: "A classe A está contida na classe B?". Caso a resposta seja positiva existe uma relação de composição entre as duas classes. Abaixo é possível visualizar alguns exemplos: • Um Livro tem Autor? - SIM – Logo, se usa a composição. • Um Automóvel tem um Carro Antigo ? - NÃO – Logo, não se usa a composição. • Um Automóvel tem Porta ? - SIM – Logo, pode se usar a composição.

Agregação Regular

[editar | editar código-fonte]

Tipo de associação (é parte de, todo/parte) onde o objeto parte é um atributo do todo; a existência do objeto-parte faz sentido, mesmo não existindo o objeto-todo. Por exemplo Carro e rodas: as rodas existem mesmo sem o carro. A agregação, na UML, é representada por uma linha com um losango sem preenchimento do lado da classe dona do relacionamento.

Especialização ou Generalização

[editar | editar código-fonte]

Também conhecida como herança, representa as dependências e hierarquias.

São relacionamentos de utilização no qual uma mudança na especificação de um elemento pode alterar a especificação do elemento dependente. A dependência entre classes indica que os objetos de uma classe usam serviços dos objetos de outra classe.

Referências

{{bottomLinkPreText}} {{bottomLinkText}}
Diagrama de classes
Listen to this article

This browser is not supported by Wikiwand :(
Wikiwand requires a browser with modern capabilities in order to provide you with the best reading experience.
Please download and use one of the following browsers:

This article was just edited, click to reload
This article has been deleted on Wikipedia (Why?)

Back to homepage

Please click Add in the dialog above
Please click Allow in the top-left corner,
then click Install Now in the dialog
Please click Open in the download dialog,
then click Install
Please click the "Downloads" icon in the Safari toolbar, open the first download in the list,
then click Install
{{::$root.activation.text}}

Install Wikiwand

Install on Chrome Install on Firefox
Don't forget to rate us

Tell your friends about Wikiwand!

Gmail Facebook Twitter Link

Enjoying Wikiwand?

Tell your friends and spread the love:
Share on Gmail Share on Facebook Share on Twitter Share on Buffer

Our magic isn't perfect

You can help our automatic cover photo selection by reporting an unsuitable photo.

This photo is visually disturbing This photo is not a good choice

Thank you for helping!


Your input will affect cover photo selection, along with input from other users.

X

Get ready for Wikiwand 2.0 🎉! the new version arrives on September 1st! Don't want to wait?