Upload
internet
View
106
Download
3
Embed Size (px)
Citation preview
Diagrama de Classes e Diagrama de Classes e
Diagrama de ObjetosDiagrama de Objetos
• 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
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
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
• 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.
• 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.
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
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
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()
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.
• 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
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.
Interfaces (notação)Interfaces (notação)
| Empregado
Empregado
verificarFicha()
calcularSalário()
<<interface>>
Realização (notação)Realização (notação)
Empregado
Empregado_Impl
Empregado
verificarFicha()calcularSalário()
<<interface>>
Empregado_Impl
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
+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
• 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
Representação de um objeto
ObjetosObjetos
Marcia Moita:Cliente
Nome : “Marcia Moita”
Idade : 20
Criar ()
Destruir ()
Nome do Objeto
Atributos
Operações
Objetos simplesObjetos simples
codCurso: "IF291"descrição: "MPS"codTurma: I7
: Curso
: Aluno
George Bush
Monica: Aluno
Fulano :
Jaelson: Professor
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)
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.
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