Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de...

22
Diagrama de Classes Diagrama de Classes e Diagrama de e Diagrama de Objetos Objetos

Transcript of Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de...

Page 1: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

Diagrama de Classes e Diagrama de Classes e

Diagrama de ObjetosDiagrama de Objetos

Page 2: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

• Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de objetos e, portanto, fornece limites conceituais definidos claramente, relativos à perspectiva do observador.

• Enfoca a visão externa do objeto e, assim, serve para separar um comportamento essencial do objeto de sua implementação (a interface de um objeto fornece seu comportamento essencial ou métodos públicos e nada mais).

A orientação a objetos estimula os programadores e usuários a pensarem sobre aplicações em termos abstratos. Começam com um conjunto de objetos para os quais criam um comportamento comum e encaixam em superclasses abstratas. As bibliotecas de classe detêm um depósito de elementos comuns e reutilizáveis e a herança mantém automaticamente as relações entre classes

organizadas hierarquicamente na biblioteca. Além disso, cada nível de abstração faz com que o trabalho fique mais fácil, pela maior disponibilidade de codificação reutilizável.

Abstração e ClassificaçãoAbstração e Classificação

Page 3: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

Na Herança SimplesHerança Simples, os métodos e atributos definidos na superclasse são refletidos em todas as subclasses da hierarquia.

HerançaHerança

Forma

origem

mover()exibir()

Retângulo

ponto : Ponto

Círculo

raio : float

Polígono

pontos : ListaDePontos

exibir()

Quadrado

Page 4: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

Veículo Aquático

Veículo

Veículo Terrestre

Veículo Anfíbio

Na Herança MúltiplaHerança Múltipla, há mais de uma superclasse para uma mesma subclasse, das quais ela herda os métodos e atributos.

HerançaHerança

Page 5: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

• Há três tipos de classes numa hierarquia:

Tipos de ClassesTipos de Classes

– Classe baseClasse base é a raiz da hierarquia, a superclasse de todas as classes. Os métodos e atributos definidos nesta classe são refletidos em todas as classes da hierarquia. Define o comportamento do objeto.

– Classes abstratas Classes abstratas são superclasses que contém a definição de comportamento de todo um ramo da hierarquia, porém sem implementá-lo (somente a declaração dos métodos). Nunca são instanciadas.

– Classes concretasClasses concretas são localizadas geralmente nas extremidades da hierarquia. Em um programa OO, os objetos são instanciados a partir dessas classes.

Telefone Celular

Telefone

Telefone Convencional

A classe Telefone não pode ser instanciada. Telefone Convencional e Telefone Celular são concretas, implementam os métodos e podem ser instanciadas.

Page 6: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

• Em UML as classes são representadas por um retângulo dividido em três compartimentos:

ClassesClasses

Cliente

Nome : String

Idade : Num

Criar ()

Destruir ()

– o compartimento de nome, que conterá apenas o nome da classe modelada

– o de atributos, que possuirá a relação de atributos que a classe possui em sua estrutura interna

– o compartimento de operações, que serão os métodos de manipulação de dados e de comunicação de uma classe com outras do sistema.

Page 7: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

Indivíduo

Indivíduo

código: intsexo: charnome: String

Indivíduo

código: intsexo: charnome: String

inluir()atualizar()

Indivíduo

inluir()atualizar()

Variações de RepresentaçãoVariações de Representação

Page 8: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

AtributosAtributos

• Um atributo representa alguma propriedade do que está sendo modelado, que é compartilhada por todos os objetos da classe.

• Os atributos descrevem os dados contidos nas instâncias de uma classe.

• Em um momento dado, um objeto de uma classe conterá valores para todos os atributos descritos na sua classe.

Cliente

nome

endereço

telefone

Parede

altura : real

largura : real

espessura : real

viga : boolean = false

Atributos de uma classe podem ser identificados apenas com seus nomes

ou

podem ter seus tipos (ou classes) especificados e ter

valores padrão definidos

Page 9: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

OperaçõesOperações

• Uma operação é uma abstração de alguma coisa que se pode fazer com um objeto e que é compartilhada por todos os objetos da classe.

• Um classe pode ter qualquer número de operações, inclusive nenhuma.

Como para os atributos, pode-se especificar uma operação apenas com seu nome

ou

pode-se também especificar a assinatura da operação: seus parâmetros, o tipo desses

parâmetros e o tipo de retorno

Retângulo

mover()aumentar()diminuir()

Page 10: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

VisibilidadeVisibilidade

• Pode-se usar marcações de acesso para especificar o tipo de acesso permitido aos atributos e operações.

ClassificadorClassificador: classes, interfaces, componentes, nós, use cases, subsistemas.

+ público+ público: todos os classificadores podem usar.

- privado- privado: somente o próprio classificador poderá usar.

# protegido# protegido: qualquer descendente do classificador

poderá usar.

Page 11: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

• Poucas classes vivem sozinhas. A maioria das classes

colabora com outras classes de várias maneiras.

• Os relacionamentos ligam as classes/objetos entre si, criando

relações lógicas entre essas entidades.

• Os relacionamentos podem ser dos seguintes tipos:

RelacionamentosRelacionamentos

- AssociaçãoAssociação

- AgregaçãoAgregação

- ComposiçãoComposição

- GeneralizaçãoGeneralização

- DependênciaDependência

- RefinamentoRefinamento

Page 12: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

InterfacesInterfaces

• Uma interface é um conjunto de operações usado para especificar um serviço de uma classe ou componente.

• Diferentemente das classes, as interfaces não especificam nenhuma estrutura e não podem conter atributos (especificam o contrato para uma classe ou componente, sem definir como ele será implementado).

• O uso de interfaces é uma maneira elegante e poderosa de isolar a especificação da implementação, um relacionamento entre uma especificação e sua implementação.

Page 13: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

Interfaces (notação)Interfaces (notação)

| Empregado

Empregado

verificarFicha()

calcularSalário()

<<interface>>

Page 14: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

Realização (notação)Realização (notação)

Empregado

Empregado_Impl

Empregado

verificarFicha()calcularSalário()

<<interface>>

Empregado_Impl

Page 15: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

Diagrama de classesDiagrama de classes

• Os diagramas de classes são os principais diagramas estruturais da UML.

• Diagramas de classe mostram classes, interfaces e os relacionamentos entre esses elementos.

• As classes especificam a estrutura e o comportamento dos objetos.

• Objetos são instâncias de classes.

Conteúdo:Conteúdo:

ClassesClasses

InterfacesInterfaces

ColaboraçõesColaborações

Relacionamentos de dependência, generalização e associaçãoRelacionamentos de dependência, generalização e associação

Page 16: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

+confirmar()+cancelar()-calcularTotal():CurrencygerarNovoCodigo: String

-codigo: Integer-dataRecebido-total: Currency

Pedido

#creditoPermitido: Currency#nivelCredibilidade()

-nome: String-endereco: String-dataPrimeiraCompra: Date-dataUltimaCompra: Date-totalComprado: Currency

Cliente

-quantidade: Integer-preco: Currency-emEstoque: Boolean

Item de Pedido

nomeContato: Stringtelefones[1..10]: StringCNPJ: StringFAX[1..3]: String

Cliente pessoa-jurídica

colocarListaNegra()

nome: StringCPF: StringnumCartaoCredito

Cliente pessoa-física

Empregado

Produto

* representantede vendas

*

*

IPessoa

itens

Diagrama de classesDiagrama de classes

Page 17: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

• Um objeto é um elemento que podemos manipular, acompanhar seu comportamento, criar, destruir etc. Um objeto existe no mundo real, podendo ser uma parte de qualquer tipo de sistema, por exemplo, uma máquina, uma organização ou negócio. Existem objetos que não encontramos no mundo real, mas que podem ser vistos de derivações de estudos da estrutura e comportamento de outros objetos do mundo real.

• Em UML um objeto é mostrado como uma classe, só que seu nome é sublinhado e pode ser mostrado opcionalmente com o nome da classe.

• Os diagramas de objetos mostram uma “fotografia” de um sistema OO em execução. São mostrados os objetos, com os valores de seus atributos e as ligações entre eles. São úteis para a modelagem de estruturas de dados complexas, depuração etc.

ObjetosObjetos

Page 18: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

Representação de um objeto

ObjetosObjetos

Marcia Moita:Cliente

Nome : “Marcia Moita”

Idade : 20

Criar ()

Destruir ()

Nome do Objeto

Atributos

Operações

Page 19: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

Objetos simplesObjetos simples

codCurso: "IF291"descrição: "MPS"codTurma: I7

: Curso

: Aluno

George Bush

Monica: Aluno

Fulano :

Jaelson: Professor

Page 20: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

MultiobjetosMultiobjetos

• Multiobjetos são conjuntos de objetos, com um número indeterminado de elementos.

• São usados, por exemplo, em diagramas de colaboração para modelar uma mensagem enviada para vários objetos ao mesmo tempo.

p 2: Pr ofe s s or

c1: C u rs o

c2: C u rs o

c3: C u rs o

: A lu n o: A lu n o

Multiobjetos

Agente deReservas

: Cadeira

1: cadeira :=encontrar(número)

: Cadeira

2: reservar(nomeCliente)

Page 21: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

Diagrama de objetosDiagrama de objetos• É comum haver centenas ou milhares de objetos em um

sistema em execução, a maioria deles anônimos, por isso o diagrama de objetos mostra apenas uma parte dos objetos no sistema.

• Diagramas de objetos são estáticos e não mostram a

evolução do sistema com o tempo.

• Para mostrar o comportamento de um objeto, deve-se usar

diagramas de comunicação, diagramas de seqüência ou

diagramas de estados.

• É comum colocar um diagrama de classes junto com um

diagrama de objetos, para facilitar a identificação dos objetos.

Page 22: Diagrama de Classes e Diagrama de Objetos. Uma abstração denota as características essenciais de um objeto que o distingue de todos os outros tipos de.

p2: Prof es s ormatr ic ula: "205-6712-09"nome: "Jaels on Cas tro"

p1: Prof es s or

c odCurs o: "IF291"des c rição: "MPS"c odTurma: I7

: Curs o

c odCurs o: "IF185"des c rição: "A ER"c odTurma: I6

: Curs o

matr ic ula: "219846534"nome: "Nels on Mandella"

:aluno

matr ic ula: "562746134"nome: "John Major"

:a luno

: A luno

: A luno

: A luno

: A luno

c 1: Curs o

c 2: Curs o

c 3: Curs o

Bill

: A luno: A luno

Lew insky

-matrícula: String-nome: String

Professor

-codDisciplina: String-descrição: String-codTurma: String

Curso

-matrícula: String-nome: String-período: Integer

Aluno

[0..10]

ministra

[1..5]*

[1..3]

Diagrama de objetosDiagrama de objetos