O diagrama de classes é composto principalmente por classes, interfaces e vários relacionamentos, que incluem generalização, dependência, associação e realização.
O diagrama de classe é uma visão estática na modelagem UML, usada para descrever classes, interfaces, colaborações e suas relações, mostrando a estrutura estática desses conceitos no sistema, amplamente utilizada nas fases de análise e design de sistemas na engenharia de software.
O diagrama de classe é um dos principais componentes da modelagem orientada a objetos e define a base para outros diagramas UML. A partir do diagrama de classe, é possível desenhar diagramas de estados, diagramas de colaboração, diagramas de componentes e diagramas de configuração, entre outros.
O diagrama de classe é principalmente um modelo estático usado para mostrar a estrutura estática e as relações entre classes e interfaces no sistema. Após o design do diagrama de classe, os programadores podem implementar em código o conteúdo incluído no diagrama de classe.
Colaboração em tempo real multiutilizador com links partilháveis para transferência instantânea
Gera automaticamente gráficos a partir de texto com melhorias de estilo
Temas predefinidos com personalização completa
Suporta ícones, imagens, etiquetas, fórmulas LaTeX, blocos de código, links, anexos
Exportar: PNG, VISIO, PDF, SVG | Importar: VISIO, Mermaid
Armazenamento cloud em tempo real, sincronização multi-dispositivo, histórico de versões e segurança de dados
O diagrama de classes é composto principalmente por classes, interfaces e vários relacionamentos, que incluem generalização, dependência, associação e realização.
Uma classe é geralmente composta por nome, atributos e operações. Além disso, a composição de uma classe inclui responsabilidades, restrições e anotações.
Em um diagrama de classes, uma classe é representada por um retângulo dividido em três partes: a primeira parte contém o nome da classe, a segunda contém os atributos e a terceira contém as operações.
O nome de uma classe deve ser um substantivo e deve refletir com precisão e clareza o conceito no domínio do problema. De acordo com a convenção UML, cada palavra no nome da classe deve começar com uma letra maiúscula. Classes concretas são representadas com fonte normal, enquanto classes abstratas são representadas com fonte itálica.
Uma interface em um diagrama de classes também é representada por um retângulo, mas diferentemente de uma classe, a primeira parte do retângulo da interface é identificada pelo estereótipo <<interface>>, seguido pelo nome da interface, e a segunda parte contém os métodos da interface.
Existem certos relacionamentos entre classes e classes, classes e interfaces, e interfaces e interfaces. Em diagramas de classes UML, linhas geralmente indicam esses relacionamentos. Existem seis tipos de relacionamentos: realização, generalização, associação, dependência, agregação e composição.
1. O modelo estabelecido por um diagrama de classes descreve uma situação geral, enquanto o modelo estabelecido por um diagrama de objetos descreve uma situação específica.
2. Um diagrama de classes pode descrever completamente a estrutura dos objetos do sistema, enquanto um diagrama de objetos não pode.
3. Uma classe em um diagrama de classes pode corresponder a vários objetos em um diagrama de objetos.
Uma classe geralmente é composta por nome, atributos e operações, representada por um retângulo dividido em três camadas: a primeira camada é o nome da classe, a segunda são os atributos da classe e a terceira são as operações da classe.
No entanto, no uso prático, existem três formas de representação: "nome da classe", "nome da classe" + "atributos da classe", "nome da classe" + "operações da classe".
O nome de uma classe deve ser um substantivo, com a primeira letra de cada palavra em maiúscula, e as classes instanciáveis são representadas em fonte normal, enquanto as classes abstratas são representadas em itálico.
A sintaxe de definição de atributos de uma classe é: [visibilidade] nome do atributo [:tipo de dado] [=valor inicial] [{string de atributo}]
Onde o conteúdo entre [] é opcional.
A restrição de uma classe especifica uma ou mais regras que a classe deve satisfazer, e no UML, a restrição é representada por informações de texto entre chaves.
Relação de implementação: Representada por um triângulo oco + linha tracejada, do ponto de vista da classe que implementa para a classe de interface.
Relação de generalização: Representada por um triângulo oco + linha sólida, do ponto de vista da subclasse para a superclasse.
Relação de associação: Representada por uma linha sólida com seta, do ponto de vista da classe que referencia para a classe referenciada.
Relação de agregação: Representada por um losango oco + linha sólida, do ponto de vista da classe parte para a classe todo.
Relação de composição: Representada por um losango sólido + linha sólida, do ponto de vista da classe parte para a classe todo.
Relação de dependência: Representada por uma linha tracejada com seta, do ponto de vista da classe que referencia para a classe dependente.
O diagrama de classes não é completamente independente, ele deve abstrair entidades, classes de controle e de fronteira do diagrama de casos de uso, mantendo a coerência semântica com diagramas de casos de uso, diagramas de atividades, diagramas de sequência, etc.
Uma classe deve manter uma única responsabilidade, podendo dividir classes grandes e distribuir responsabilidades de forma razoável entre várias classes, evitando alto acoplamento, definindo limites claros, em conformidade com os princípios de design orientado a objetos.