O diagrama de classes descreve uma visão estática de um aplicativo. Representa os tipos de objetos que residem no sistema e os relacionamentos entre eles. Uma classe consiste em seus objetos e também pode herdar de outras classes. Um diagrama de classes é usado para visualizar, descrever, documentar vários aspectos diferentes do sistema e também construir código de software executável.
Ele mostra os atributos, classes, funções e relacionamentos para fornecer uma visão geral do sistema de software. Constitui nomes de classes, atributos e funções em um compartimento separado que auxilia no desenvolvimento de software. Por ser uma coleção de classes, interfaces, associações, colaborações e restrições, é denominado diagrama estrutural.
Objetivo dos diagramas de classes
O principal objetivo dos diagramas de classes é construir uma visão estática de um aplicativo. É o único diagrama amplamente utilizado para construção e pode ser mapeado com linguagens orientadas a objetos. É um dos diagramas UML mais populares. A seguir estão os objetivos dos diagramas de classes fornecidos abaixo:
- Ele analisa e projeta uma visão estática de um aplicativo.
- Ele descreve as principais responsabilidades de um sistema.
- É uma base para diagramas de componentes e implantação.
- Ele incorpora engenharia direta e reversa.
Benefícios dos diagramas de classes
- Pode representar o modelo de objeto para sistemas complexos.
- Reduz o tempo de manutenção, fornecendo uma visão geral de como um aplicativo está estruturado antes da codificação.
- Ele fornece um esquema geral de um aplicativo para melhor compreensão.
- Representa um gráfico detalhado destacando o código desejado, que deve ser programado.
- É útil para as partes interessadas e os desenvolvedores.
Componentes vitais de um diagrama de classes
O diagrama de classes é composto de três seções:
- Coloque a letra inicial do nome da classe em maiúscula.
- Coloque o nome da classe no centro da seção superior.
- O nome da classe deve ser escrito em negrito.
- O nome da classe abstrata deve ser escrito em itálico.
- Os atributos são escritos junto com seus fatores de visibilidade, que são público (+), privado (-), protegido (#) e pacote (~).
- A acessibilidade de uma classe de atributos é ilustrada pelos fatores de visibilidade.
- Um nome significativo deve ser atribuído ao atributo, o que explicará seu uso dentro da classe.
Relacionamentos
Na UML, os relacionamentos são de três tipos:
No exemplo a seguir, Student_Name depende de Student_Id.
Por exemplo, a conta corrente, a conta poupança e a conta de crédito são a forma generalizada de conta bancária.
Por exemplo, um departamento está associado à faculdade.
Multiplicidade: Ele define um intervalo específico de instâncias permitidas de atributos. Caso um intervalo não seja especificado, um é considerado como multiplicidade padrão.
chave composta chave primária
Por exemplo, vários pacientes são internados em um hospital.
Agregação: Uma agregação é um subconjunto de associação, que representa um relacionamento. É mais específico que a associação. Ele define um relacionamento parte-todo ou parte-do. Nesse tipo de relacionamento, a classe filha pode existir independentemente de sua classe pai.
A empresa abrange vários funcionários e, mesmo que um funcionário se demita, a empresa ainda existe.
Composição: A composição é um subconjunto de agregação. Ele retrata a dependência entre pai e filho, o que significa que se uma parte for excluída, a outra parte também será descartada. Representa um relacionamento todo-parte.
Uma agenda de contatos consiste em vários contatos e, se você excluir a agenda de contatos, todos os contatos serão perdidos.
Aulas abstratas
Na classe abstrata, nenhum objeto pode ser uma entidade direta da classe abstrata. A classe abstrata não pode ser declarada nem instanciada. É usado para encontrar as funcionalidades nas classes. A notação da classe abstrata é semelhante à da classe; a única diferença é que o nome da classe está escrito em itálico. Como não envolve nenhuma implementação para uma determinada função, é melhor usar a classe abstrata com vários objetos.
Vamos supor que temos uma classe abstrata chamada deslocamento com um método declarado dentro dele, e esse método será chamado como um dirigir () . Agora, este método de classe abstrata pode ser implementado por qualquer objeto, por exemplo, carro, bicicleta, scooter, bicicleta, etc.
Como desenhar um diagrama de classes?
O diagrama de classes é usado mais amplamente para construir aplicativos de software. Ele não representa apenas uma visão estática do sistema, mas também todos os principais aspectos de um aplicativo. Uma coleção de diagramas de classes como um todo representa um sistema.
Alguns pontos-chave que devem ser mantidos em mente ao desenhar um diagrama de classes são fornecidos abaixo:
- Para descrever um aspecto completo do sistema, sugere-se dar um nome significativo ao diagrama de classes.
- Os objetos e suas relações devem ser reconhecidos antecipadamente.
- Os atributos e métodos (responsabilidades) de cada classe devem ser conhecidos.
- Um número mínimo de propriedades desejadas deve ser especificado, pois um número maior de propriedades indesejadas levará a um diagrama complexo.
- As notas podem ser usadas como e quando exigido pelo desenvolvedor para descrever os aspectos de um diagrama.
- Os diagramas deverão ser redesenhados e retrabalhados quantas vezes forem corretos antes de produzir sua versão final.
Exemplo de diagrama de classes
Um diagrama de classes que descreve o sistema de pedidos de vendas é fornecido abaixo.
Uso de diagramas de classes
O diagrama de classes é usado para representar uma visão estática do sistema. Ele desempenha um papel essencial no estabelecimento dos diagramas de componentes e implantação. Ajuda a construir um código executável para realizar engenharia direta e reversa para qualquer sistema, ou podemos dizer que é usado principalmente para construção. Ele representa o mapeamento com linguagens orientadas a objetos que são C++, Java, etc. Os diagramas de classes podem ser usados para os seguintes propósitos:
- Descrever a visão estática de um sistema.
- Para mostrar a colaboração entre cada instância na visualização estática.
- Descrever as funcionalidades executadas pelo sistema.
- Construir a aplicação de software utilizando linguagens orientadas a objetos.