segunda-feira, 9 de janeiro de 2012

UML - Diagrama de classes

Sem dúvida alguma o mais importante diagrama da UML, o seu objetivo principal é permitir a visualização das classes que comporão o sistema com seus respectivos métodos e atributos bem como em demonstrar como as classes do diagrama se relacionam, complementam e transmitem informações entre si.

O diagrama de classes serve como base para construir a maioria dos diagramas da UML pois ele é uma “visão” das estruturas das classes de forma simples.
Veja um exemplo da classe pessoa

E ai ? Entendeu? Sinceramente isso é intuitivo não acha? Para vc é que do contra vou explicar melhor; O nome “Pesso” é o nome da classe, os ‘Nome’ e ‘Sexo’ são os atributos da classe e o o ‘Falar(),Pensar()’ e etc são métodos, ou seja, funções dessa classe.
Ainda criamos a classe ‘Engenheiro’ que herda tudo que a classe Pessoa tem com um método a mais que é o ‘ganharDinheiro’ rsrs... tudo bem que se fosse a classe ‘Político brasileiro’ iriam existir mais método como ‘corrompimento’ e o valor recebido do ganharDinheiro seria um long double max plus alfa int mas não vamos entrar nesse mérito ok?

Persistência
O diagrama de classe foi interncionalmente projetado para ser uma evolução do MER (modelo entidade relacionamento) e pode ser utilizado para modelar a estrutura lógica das tabelas que comporão um banco de dados

Relacionamentos
As classes costumam possuir relacionamentos entre si, com o intuito de compartilhar informações e colaborarem afim de permitir a execução de seus processos.

Associações
Vínculo que ocorre entre duas classes, uma classe pode estar associada a si mesma, chamado de associação unária, ou uma mesma associação para várias classes que é chamada de ternária seu uso é muito raro e complexo.
A associação determina que uma instância de uma classe esteja de alguma forma ligadas a instâncias das outras classes envolvidas podendo haver troca de informações.

As associação são o mair próximo dos relacionamento utilizados no MER, ou seja, seu objetivo é definir como as classes estão unidas.





Veja um exemplo de associação;

Associação unária ou Reflexiva
Este tipo de associação ocorre quando existe um relacionamento de uma classe para consigo mesma. Um exemplo de associação unária pode ser observado abaixo;

Note que na classe acima temos o nome “Funcionário” com os atributos Codigo, Nome e Codigo do chefe. O chefe do funcionário também é, por sua vez, um funcionário da empresa e, portanto também se constitui em uma instância da classe Funcionário. Logo a associação chamada “Chefia” indica uma possível relação entre uma ou mais instâncias da classe Funcionário com outras instâncias da própria classe Funcionário, ou seja, esta associação determina que um funcionario pode ou não chefia outros funcionários.

Assim, é preciso existir uma associação da classe funcionário com ela mesma, o que força que a classe possua o atributo Codigo_Chefe para armazenar o código do funcionário que é responsável pela instância do funcionário em questão.

Percebam que existe outra informação na associação, além de seu próprio nome, representada pelo valor “0...*”, esta informação é conhecida como multiplicidade. A multiplicidade, ela é extremamente igual o conceito de cardinalidade no MER, pois procura determinar qual das classes envolvidas em uma associaçção fornece informações para as outras, além de permitir especificar o nível de dependência de uma classe para com as outras envolvidas na associação.

No classo da figura acuna a multiplicidade 0...* indica que um determinado funcionário pode chefiar nenhum (0) ou muitos (*) funcionários, ou seja, um funcipnário pode não chefiar ninguém ou pode chefiar um o mais funcionários. Pode-se perceber que só existe multiplicidade em uma das extremidades, po default, quando não existe multiplicidade explícita entende-se que a multiplicidade é “1...1” .

A tabela abaixo demonstra laguns dos diversos valores de multiplicidade que podem ser utilizados em uma associação :

Associação Binária
A mais utilizada ocorre quando são indentificados relacionamentos entre duas classes, veja um exemplo;
 

Simples n é? um Objeto da classe sócio pode possuir 0 ou vários dependentes.

O diagrama de classe ainda tem outros tipos de relação como Agregação e composição mas já que a idéia é explicar a UML de maneira mais rápida se eu continuar vou ficar até o mês que vem escrevendo. O importante é entender essa estrutura e depois(se achar interessante ir a fundo).

Obrigado e até a próxima.

5 comentários:

  1. Obrigada pelo artigo ficou bem claro viu?

    Beijos

    ResponderExcluir
  2. Paulo gostaria de saber onde encontro livros seu sobre engenharia de software.

    Estou realmente perdido nela e ai conheço seu blog que fala claramente de UML existe um livro seu que alem de UML engloba engenharia de software completa? Preciso muito disso pois me inscrevi para um concurso público e se não passar não sei o que faço da vida

    Valeu meu amigo

    ResponderExcluir
  3. Não Aparece as imagens !!

    ResponderExcluir