O diagrama de classes é um tipo de diagrama de estrutura que serve para representar, visualmente, as classes (e suas relações) de um sistema. Esse diagrama é um dos mais utilizados (se não for o mais utilizado) diagramas da UML. Ele auxilia tanto a construção da aplicação como a construção do banco de dados.
Modelando uma classe no Diagrama
Uma classe neste diagrama é modelada da seguinte forma:
1° compartimento: Nome da Classe – Identidade única
2° compartimento: Atributos – Estado
3° compartimento: Métodos – Comportamentos
A visibilidade dos atributos e métodos no sistema é representado no diagrama da seguinte forma:
- Pública (+): qualquer classe pode acessa-lo;
- Privada (-): só a classe que o possui pode acessa-lo;
- Protegida (#): somente as classes e subclasses podem acessa-lo
- Pacote (~): todas as classes que pertencem ao pacote podem acessa-lo.
Modelando relacionamentos no diagrama
Associação:
A associação representa a relação existente entre objetos. No diagrama, sua sintaxe é uma linha que liga as duas classes que representam os objetos relacionados.
Casos especiais de Associação
Agregação: representa uma relação todo-parte entre o agregado e suas partes. Nessa relação, a perda do todo não resulta, obrigatoriamente, na perda das partes. Sua sintaxe é uma linha com um losango branco na classe que corresponde ao todo.
Composição: também representa uma relação todo-parte entre o agregado e suas parte. Porém a composição representa um forte relacionamento, em que as partes não sobrevivem sem o todo. Sua sintaxe é a de uma linha com um losango preto na classe que corresponde ao todo.
Generalização / Especialização:
Generalização ou Especialização representa a relação existente entre classes. Este relacionamento também é conhecido na orientação a objetos como herança. É quando existe a necessidade de criar uma classe que herde as propriedades de outra classe, isto é, os atributos, métodos e também relacionamentos (associações) da classe superior.
Nesse exemplo houve a necessidade de criar uma classe mais geral, porque todos os animais possuem tamanho e cor e se alimentam de alguma forma. Por outro lado, houve a necessidade de especializar alguns animais por possuírem características únicas. Animal é uma generalização de Leão e Cavalo e Leão e Cavalo são especializações de Animal. Portanto, generalização e especialização são a mesma coisa, vistas de perspectivas diferentes.
A generalização no diagrama de classes da UML possui como sintaxe uma seta branca e fechada com direção das classes específicas para a mais geral, ou seja, das subclasses para as superclasses.
Conclusão
Neste artigo foi abordado a notação de classes e relacionamentos no diagrama da UML. O próximo passo é saber o que são e como são representados os papéis e multiplicidades de uma Associação, as classes associativas, as classes reflexivas e as associações ternárias.
veja o próximo post: spaceprogrammer.com/uml/compreendendo-multiplicidade-e-os-tipos-de-associacao
Para gerar as imagens dos exemplos acima, utilizamos uma excelente ferramenta para modelagem que é o Astah. Esta ferramenta está disponível gratuitamente na versão Community e para estudantes na versão professional.
2 comentários
Marcelo · 24/09/2017 às 16:53
Muito bom o post.
Marcio · 24/09/2017 às 17:19
muito bom