Nessa aula, vamos examinar com mais detalhes o diagrama de classes da UML.
Ao final da aula, entenderemos como construir um diagrama de classe UML representando a estrutura dos conceitos de um programa.
Um diagrama de classes UML pode ser composto pelos seguintes elementos:
Classe
Representa uma classe (conceito) do sistema.
É desenhada como um retângulo segmentado em 3 partes:
Primeiro o nome da classe.
Na segunda parte os atributos são listados, junto com os seus tipos, separados por ":".
Na terceira parte são listados os métodos, junto com os seus argumentos e tipos.
Atributos e métodos públicos são precedidos do símbolo (+) e privados, do símbolo (-).
Interface
Representa uma interface do sistema.
É desenhada de forma similar às classes, mas apenas com os métodos e atributos da interface.
Acima do nome da interface incluimos o estereótipo <<interface>>, para indicar uma interface.
Relacionamentos
Indicam uma relação entre duas classes.
São desenhados como linhas conectando duas classes ou uma classe e uma interface.
Dependendo do tipo de relação, a linha possui pontas ou traço diferente.
Herança
Indica uma relação de herança entre duas classes.
É desenhada como uma linha apontando da classe filha para a classe mãe.
A ponta conectada à classe mãe tem uma seta na forma de um triângulo vazio.
Implementação
Indica uma relação de implementação entre uma classe e uma interface.
É desenhada de forma similar à relação de herança, mas com a linha tracejada.
Associação
Indica uma relação de associação entre duas classes.
É desenhada como uma linha conectando duas classes, anotada com o significado da associação.
Próximo às classes associadas são colocadas as cardinalidades da associação, indicando a quantidade de instâncias possíveis para cada lado.
No exemplo abaixo, uma pessoa mora em apenas um endereço, mas um endereço pode abrigar uma ou mais pessoas.
Dependência
Indica uma relação de dependência entre duas classes.
É desenhada como uma linha tracejada, apontando da classe dependente para a classe dependida.
A ponta conectada à classe dependida possui uma seta aberta.
No exemplo abaixo, a classe FabricaDeCarros depende da existência da classe Carro.
Composição
Indica uma associação "parte - todo" entre as classes.
É desenhada como um losango preenchido na ponta "todo" da associação.
No exemplo abaixo, uma turma é composta por alunos.
Agregação
Indica uma associação "tem um" entre as classes.
É desenhada como um losango vazio na ponta da classe que "tem" da associação.
No exemplo abaixo, um professor "tem" uma ou mais turmas para ensinar.
Classe de associação
Indica uma associação entre a classes que contem atributos próprios.
É desenhada como uma classe conectada a uma associação por uma linha pontilhada.
No exemplo abaixo, uma avaliação é uma associação entre aluno e turma, que possui atributos próprios: a data em que a avaliação foi feita e a nota obtida pelo aluno.
Um diagrama completo
Agora já podemos desenhar nossos próprios diagramas de classe UML.
Além disso, podemos também compreender a estrutura de um sistema baseado em seu diagrama de classes e implementar o código java correspondente.
Perguntas:
Exercício:
Até a próxima aula!