modelagem de software orientado a objetos parte 1 – princípios de orientação a objetos...

54
Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação [email protected] PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO PAULO CURSO DE ESPECIALIZAÇÃO EM ENGENHARIA DE SOFTWARE Modelagem de Software Orientado a Objetos Prof. Maurício Nacib Pontuschka

Upload: internet

Post on 17-Apr-2015

109 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de SoftwareOrientado a Objetos

Parte 1 – Princípios de Orientação a Objetos

Continuação

[email protected]

PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO PAULOCURSO DE ESPECIALIZAÇÃO EM ENGENHARIA DE SOFTWARE

Modelagem de SoftwareOrientado a Objetos

Prof. Maurício Nacib Pontuschka

Page 2: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

O que é modelagem?

Um modelo é uma simplificação da realidade.

Page 3: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Objetivos da modelagem•Ajudar a visualizar o sistema como gostaríamos que ele fosse

•Permitir a especificação da arquitetura e comportamento de um sistema

•Fornecer padrões de desenvolvimento que serve como guia de construção do sistema

•Documentar as decisões tomadas durante o processo de desenvolvimento

Page 4: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Por que modelar?

•Modelos de sistemas complexos são construídos porque nem sempre é possível compreendê-los em sua totalidade

•Modelos auxiliam o entendimento dos sistemas que construímos

Page 5: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Importância da modelagem

Avião de papel Jato militar

Menos importante Mais importante

Page 6: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

• Iniciam a codificação diretamente a partir das especificações do projeto.

• Trabalham durante horas e produzem mais código.• Falta de um plano de arquitetura de software.• Desenvolvimento fadado ao fracasso.

Muitas equipes de desenvolvimento desenvolvem seus sistemas como se estivessem construindo aviões de papel

Page 7: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Por que modelar?

•A modelagem é uma tarefa comum em projetos bem sucedidos.

Page 8: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Model Driven Architecture (MDA)• Uma abordagem de utilizar modelos no desenvolvimento de software.

– Separar a especificação de uma operação dos detalhes da forma como o sistema utiliza os recursos da plataforma utilizada.

• Especificar um sistema independentemente da plataforma que o suportará.

• Especificar plataformas.• Escolher uma determinada plataforma para um sistema.• Transformar a especificação de um sistema específica para uma

determinada plataforma.

Page 9: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Pontos de visão do MDA

CIMCIM – Computational Independent ModelO foco está no ambiente do sistema e seus requisitos.

PIMPIM – Platform Independent ModelO foco está na operação do sistema, independentemente da plataforma.

PSMPSM – Platform Specific ModelO foco está na utilização detalhada do sistema em uma plataforma específica.

Page 10: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Quatro princípios da modelagem visual

•O modelo que é criado influencia na forma como o problema é atacado.

•Todo modelo pode ser expresso em vários níveis de precisão.

•Os melhores modelos são os mais próximos à realidade.

•Nenhum modelo único é suficiente.

Page 11: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Principio 1: A escolha do modelo é importante• Os modelos criados influenciam profundamente em como o problema é atacado e como a sua solução é elaborada.

Modelo de ProjetoModelo de Processo Modelo de Implantação

Page 12: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Principio 2: Níveis de precisão podem ser diferenciados• Todo modelo pode ser expresso em diferentes níveis de precisão.

– Quem visualiza o modelo e por que precisam visualizá-lo?

Visão dos desenvolvedores

Visão dos consumidores

Page 13: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Principio 3: Os melhores modelos estão ligados à realidade• Todos os modelos são simplificações da realidade.• Um bom modelo reflete características reais.

Page 14: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Principio 4: Nenhum modelo único é suficiente• Todo sistema (não trivial) é melhor abordado por um conjunto de modelos.

Visão deprocesso

Visão deImplantação

Visão lógica

Visão de Casos de Uso

Visão de Implementação

Usuário FinalFuncionalidade

ProgramadoresGestão de software

Performance, escalabilidade,acoplamento

Integradores de SistemasTopologia do sistema, entrega,

instalação, comunicação

Engenharia de Sistemas

Analistas/ProjetistasEstrutura

Page 15: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Próximos objetivos• Descrever uma abstração, encapsulamento,

modularidade e herança.• Descrever a estrutura física de uma classe.• Descrever o relacionamento entre uma classe e um

objeto.• Definir polimorfismo e generalização.

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 16: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

• O que é um objeto?

• Quatro princípios da OO

• O que é uma classe?

• Polimorfismo e Generalização

• Organizando elementos de modelo

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 17: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Informalmente, um objeto representa uma entidade que pode ser física, conceitual ou de software.

Entidade física

Entidade conceitual

Entidade de software

Caminhão

Processo químico

Lista ligada

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 18: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Em uma definição mais formal:Um objeto é uma entidade com uma fronteira bem definida e uma identidade que encapsula estados e comportamento.

Estado é representado por atributos e relacionamentos.Comportamento é representado por operações, métodos e máquinas de estados.

Objeto

Operações

Atributos

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 19: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Objetos possuem estados

O estado de um objeto é a condição ou situação durante o ciclo de vida de um objeto o qual satisfaz algumas condições, executa alguma atividade ou aguarda algum evento. O estado de um objeto normalmente mudo ao longo do tempo.

Nome: J ClarkID Funcionário: 567138Contratação: 25 de Julho de 1991Área: Finanças

Nome: J ClarkID: 567138DtContr: 07/25/1991Area: Finance

Professor Clark

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 20: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Objetos possuem comportamentoO comportamento determina como um objeto age e reage. O comportamento observável de um objeto é modelado por um conjunto de mensagens que ele pode responder. (operações que o objeto executa).

Comportamento do Professor ClarkPublicar notas finaisAceitar oferta de cursoCorrigir notas

publ

icar

Notas

Fina

is()

aceitarOfertaDeCurso()

Professor Clark

corrigirNotas()

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 21: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Um objeto possui identidade

Cada objeto possui uma identidade única, mesmo que o estado do objeto seja idêncico ao de outro objeto.

Nome: “J Clark” Ensina: Biologia

Nome: “J Clark” Ensina: Biologia

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 22: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

• O que é um objeto?

• Quatro princípios da OO

• O que é uma classe?

• Polimorfismo e Generalização

• Organizando elementos de modelo

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 23: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Abst

raçã

o

Hier

arqu

ia

Orientação a Objetos

Enca

psul

amen

to

Mod

ular

idad

e

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Princípios Básicos de Orientação a Objetos

Page 24: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

O que é abstração?São características essenciais de

uma entidade que a distingue de todos os outros tipos de entidade.

Define uma fronteira relativa à perspectiva do observador.

Não é uma manifestação concreta, denota a essência ideal de alguma coisa.

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 25: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Estudante Professor

Oferta de curso (9:00h, segunda-quarta-sexta) Curso (ex: Álgebra)

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Exemplos de Abstação

Page 26: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Favorece a adaptabilidade

O que é encapsulamento? Esconde a implementação dos clientes Clientes dependem da interface.

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 27: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Professor Clark precisa ser capaz de ministrar quatro turmas no próximo semestre.

publ

icar

Notas

()

aceitarOfertaDeCurso()

Professor Clark

setcargaMáxim

a()

Nome: J Clark

ID: 567138

DtContr: 07/25/1991

Disciplina: Finanças

CargaMáxima:4setCargaMáxima(4)

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Exemplo de Encapsulamento

Page 28: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

O que é Modularidade?• Quebra algo complexo em partes

gerenciáveis. • Auxilia as pessoas a entender sistemas

complexos.

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 29: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Exemplo de Modularidade

Por exemplo, quebrar um sistema complexo em módulos menores.

Sistema de cobrança

Sistema de registro de cursos

Sistema de catálogo de cursos

Sistema de gerenciamento de estudantes

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 30: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Menorabstração

Maiorabstração

Ativo

TítulosGovernamentais

Poupança

Conta Bancária

ContaCorrente

Ações

Valores Mobiliários

Apólices

Elementos em um mesmo nível hierárquico devem estar no mesmo nível de abstração.

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

O que é hierarquia?

Page 31: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Representação de Objetos em UML

Um objeto é representado por um retângulo com um nome sublinhado.

J Clark : Professor

: Professor

Objeto “nomeado”

Objeto “anônimo”

Professor J Clark

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 32: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

• O que é um objeto?

• Quatro princípios da OO

• O que é uma classe?

• Polimorfismo e Generalização

• Organizando elementos de modelo

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 33: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

O que é uma classe?Uma classe é uma descrição de um conjuntode objetos que compartilham os mesmos atributos, operações, relacionamentos e semântica. • Um objeto é uma instância de uma classe.• Uma classe é uma abstração que:

evidencia características relevantes.suprime outras características.

Page 34: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

ClasseCurso

PropriedadesNome

LocalizaçãoCarga horária

créditosHora de início

Hora de término

ComportamentoAdicionar estudanteRemover estudanteObter lista de nomesIndicar turma lotada

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Exemplo de Classes

Page 35: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Representando classes em UML• Uma classe é representada utilizando um retângulo com

três compartimentos:

– O nome da classe

– A estrutura (atributos)

– O comportamento (operações)

Professor- nome- ID : UniqueId- DTContr- status- disciplina- cargaMax

+ publicarNotasFinais()+ aceitarOfertaDecurso()+ setCargaMax()

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 36: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Relacionamento entre classes e objetos• Uma classe é uma definição abstrata de um objeto.

– Ela define a estrutura e o comportamento de cada objeto da classe.

– Se comporta como um padrão (template) para criação de objetos.

• Classes não são coleções de objetos.

Professor

Professor Meijer

Professor Torpie

Professor Allen

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 37: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

O que é um atributo?• Um atributo é uma propriedade nomeada de uma classe e

descreve um conjunto de valores que as instâncias desta propriedade podem assumir. Uma classe pode possuir um número qualquer de atributos inclusive nenhum.

Atributos

Estudante

-Nome- endereço- ID- nascimento

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 38: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Atributos em classes e objetos

Classe

Objetos

Estudante- nome- endereço- ID- nascimento

:Estudante

- nome = “M. Modano”- endereço = “123 Main St.”- ID = 9- nascimento = “03/10/1967”

:Estudante

- nome = “D. Hatcher”- endereço = “456 Oak Ln.”- ID = 2- nascimento = “12/11/1969”

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 39: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

O que é uma operação?• Um serviço que pode ser requisitado de um objeto para

afetar seu comportamento. Uma operação possui uma assinatura a qual define a forma e os parâmetros da operação.

• A classe pode ter nenhuma ou muitas operações.

operações

Estudante

+ getTitulação()+ addCalendario()+ getCalendário()+ delCalendário()+ possuiPreRequisitos()

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 40: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

• O que é um objeto?

• Quatro princípios da OO

• O que é uma classe?

• Polimorfismo e Generalização

• Organizando elementos de modelo

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 41: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

O que é polimorfismo? Habilidade de esconder muitas implementações por

trás de uma única interface.

Fabricante AFabricante B Fabricante C

Princípio OO:Encapsulamento

Controle Remoto

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 42: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Exemplo: Polimorfismo

Ação Título Fundo de Investimento

getValorCorrente()

instrumentoFinanceiro.getValorCorrente()

getValorCorrente()

getValorCorrente()

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 43: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

O que é sobrecarga?Em uma mesma classe pode possuir operações com o mesmo nome e parâmetros diferentes.Quando isso ocorre dizemos que este método foi sobrecarregado.

Page 44: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

O que é sobreposição?• Em uma hierarquia de classes caso exista um

método na sub-classe com a mesma assinatura de um método da classe pai, este se sobreporá o método da super-classe.

Page 45: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

O que é Generalização?• Um relacionamento entre classes onde uma classe

compartilha sua estrutura e/ou seu comportamento de uma ou mais classes.

• Define uma hierarquia de abstrações na qual uma subclasse herda elementos de uma hierarquia de superclasses, recebendo como herança suas características e comportamento.– Herança simples.– Herança múltipla.

• É um relacionamento “é um”.

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 46: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Exemplo: Herança SimplesUma classe é herança de outra.

CorrentePoupança

Superclasse (pai)

Subclasses(filha)

Relacionamento de

generalização

Ancestral

Conta

- balanço- nome- número

+ saque()+ criarDeclaração()

Descendentes

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 47: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Exemplo: Herança Múltipla

Uma classe pode ser herdeira de várias classes.

Use a herança múltipla somente quando realmente necessário e mesmo assim com muita atenção!

Voadores Animal

CavaloLoboPássaroHelicópteroAvião

Herança Múltipla

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 48: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

O que é Herança?

A herança alavanca as similaridades através das classes.

• Um subclasse herda os atributos, operações e relacionamentos da superclasse.

• Uma subclasse pode:– Adicionar atributos, operações e relacionamentos novos.

– Redefinir operações herdadas. (Use com cuidado!)

• Atributos, operações e relacionamentos, são mostrados no nível mais alto aplicável da hierarquia.

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 49: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

• O que é um objeto?

• Quatro princípios da OO

• O que é uma classe?

• Polimorfismo e Generalização

• Organizando elementos de modelo

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 50: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

• Um mecanismo de proposta geral para organizar elementos em grupos.

• Um elemento de modelagem que pode conter outros elementos de modelagem.

• Um pacote pode ser usado:– Para organizar o modelo em desenvolvimento.

– Como uma unidade de gestão de configuração.

O que é Pacote?

University Artifacts

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 51: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Um pacote pode conter classesO pacote Artefatos da Universidade contém um pacote e cinco classes.

Artefatosda

Universidade

CursosOferecidos

Calendário

Professor

Curso

Estudante

Artefatosdos

estudantes

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 52: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Representação gráfica de um diagrama

<cabeçalho>

<conteúdo>

• Cada diagrama possui um quadro, um compartimento de cabeçalho no canto superior esquerdo e uma área de conteúdo.– Se o quadro não fornecer nenhuma informação adicional, este

pode ser omitido e a borda da área do diagrama fornecida pela ferramenta será o quadro indicado se necessário.

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 53: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Revisão• O que é um objeto?

• Quais são os quatro princípios de orientação a objetos? Descrever cada um.

• O que é uma classe? Como relacionar classes e objetos?

• O que é um atributo? Uma operação?

• Defina polimorfismo. Forneça um exemplo de polimorfismo.

• O que é generalização?

• Por que usar pacotes?

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Page 54: Modelagem de Software Orientado a Objetos Parte 1 – Princípios de Orientação a Objetos Continuação tuska@pucsp.br PONTIFÍCIA UNIVERSIDADE CATÓLICA DE SÃO

Modelagem de Software Orientado a ObjetosPrincípios de Orientação a Objetos

Dúvidas?