Análise Orientado aos Objetos Prof. Wolley W. Silva Diagrama de Classes Análise Orientado aos Objetos Prof. Wolley W. Silva
Agenda Entender e Aplicar os relacionamentos entre classes: Generalização (Herança) Dependência Todo-Parte Agregação Composição Classes Associativas
Diagrama de Classes UML O mesmo diagrama UML pode ser usado em múltiplas respectivas: Visualizar um Modelo de Domínio Diagrama de classe de Projeto
Diagrama de Classes UML Visualizar um Modelo Análise ou Domínio
Diagrama de Classes UML Diagrama de classe de Projeto
Diagrama de Classes UML Modos de mostrar atributos em um relacionamento de Associação Notação de linha de associação Ambas juntas
Diagrama de Classes UML Modos de mostrar atributos UML Notação de linha de associação Ambas juntas
Diagrama de Classes UML Registradora tem Três Atributos Id vendaCorrentes localização Classes de um sistema PDV
Diagrama de Classes UML Resultado das associações em Código
Diagrama de Classes UML Resultado de uma associação 1..* no código
Diagrama de Classes UML Declaração de Operações (Métodos) Um dos compartimentos da caixa de classe UML mostra a assinatura das operações. visibilidade nome (lista-de-parametros): tipo-de-retorno
Generalização Compartilhamento de características entre classes com base em um relacionamento hierárquico.
Generalização Representado com uma linha sólida e uma seta triangular grande da subclasse para a superclasse.
Generalização Cada instância de uma subclasse é também uma instancia indireta de sua superclasse. Uma subclasse possui (herda) as características e os comportamentos de sua superclasse.
Generalização É uma É uma
Dependência entre Classes
Dependência entre Classes Um objeto utiliza recursos (atributos ou métodos) de outro objeto para executar o seu comportamento. uma modificação no objeto fornecedor pode afetar o comportamento e outros objetos.
Dependência entre Classes Representada por uma linha tracejada, com uma seta partindo do cliente para o fornecedor. Método saque depende de um objeto da classe Contas
Dependência entre Classes Método ligar da classe ControleUniversal depende de um objeto da classe da classe AparelhoEletronico
Todo-Parte Informações de um objeto (todo) são completadas por informações contidas em outros objetos (parte) de outra classe. Agregação Uma floresta é um agregado de árvores Composição Uma pessoa e composta por cabeça, perna, braço
Todo-Parte Agregação Composição
Agregação As três características mais importantes da agregação todo-parte são: O objeto todo (agregado) pode potencialmente existir sem os seus objetos parte (constituintes). Um objeto todo (agregado) pode estar associado com vários objetos parte (constituintes). A agregação tende a ter suas partes semelhantes.
Agregação As partes da agregação podem fazer outras coisas em outras partes da aplicação, eles podem ser referenciados por outros.
Composição As três características mais importantes da composição são; O objeto todo (composto) não pode existir sem os seus componentes. Cada objeto parte (componente) pode estar associado somente a um objeto todo (composto). O objeto todo (composto) é formado por objetos parte não semelhante.
Composição Não faz sentido existirem itens de nota fiscal sem existir uma nota fiscal onde tais itens estariam contidos.
Classes Associativas Uma classe associativa permite tratar uma associação em si como uma classe e modelá-la com atributos e operações.
Classes Associativas É uma classe que está ligada a uma associação, em vez de estar ligada a outras classes. É normalmente necessária quando duas ou mais classes estão associadas, e é necessário manter informações sobre esta associação.
Classes Associativas
Exercícios Objetivo: Identificas as classes do domínio descrito. Definir os relacionamentos de associação (agregação, composição) com as multiplicidades e herança.
Modelo de Domínio