Buscar

Analise_OO

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 61 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 61 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 61 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Ana´lise e Projeto de Sistemas
Prof. Anderson Luiz Menezes
Ana´lise Orientada a Objetos
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
To´picos
1 Introduc¸a˜o
2 Conceitos Ba´sicos
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos - Objetivos
Relembrar a orientac¸a˜o a objetos
Relembrar os conceitos que permeiam este paradigma de
desenvolvimento de sistemas
objetos
classes
mensagens
abstrac¸a˜o
encapsulamento
heranc¸a
polimorfismo
Compreender o uso da UML na modelagem de sistemas
orientados a objetos
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos
O que sa˜o Sistemas Orientados a Objetos?
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos - Breve Histo´rico
A ideia comec¸ou a amadurecer no fim da de´cada de 80
Na de´cada de 90 verificou-se o aumento do interesse por
parte de diversos autores
Hoje em dia ja´ e´ considerado um paradigma consistente
A AOO esta´ fortalecida como me´todo de ana´lise e
apresenta certa padronizac¸a˜o (UML)
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos
A AOO baseia-se em conceitos simples que o homem adquire
desde a infaˆncia, como objetos e atributos, classes e membros,
todo e partes do todo.
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos
O que muda?
Muda o enfoque!
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos - Enfoque
Enfoque tradicional: compreensa˜o de um sistema como
um conjunto de programas que executam processos sobre
os dados.
Enfoque AOO: o sistema e´ uma coletaˆnea de objetos que
interagem entre si, com caracterı´sticas pro´prias,
representadas por atributos (dados) e operac¸o˜es
(processos).
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos - Enfoque
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos - Fundamentos
Os me´todos de OO apresentam uma visa˜o mais integrada
das func¸o˜es e dados
O sistema OO e´ estruturado atrave´s de objetos que
contemplam func¸o˜es + dados
Resultados:
Produtos mais esta´veis e de melhor qualidade
Processo de desenvolvimento que permite
melhor entendimento do sistema e do seu ambiente
melhor entendimento do domı´nio da aplicac¸a˜o
maior independeˆncia da implementac¸a˜o ate´ esta´gios mais
avanc¸ados
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos - Fundamentos
Quando usar a Ana´lise OO?
Projetos de grande porte - confinamento de informac¸a˜o
Requisitos na˜o completamente fechados - modelos
relativamente esta´veis
Requisitos vagos, incompletos ou inconsistentes -
recursos para identificar as informac¸o˜es
Novas aplicac¸o˜es - abordagem sistema´tica para melhor
entendimento
Equipe com especialidades diversas - linguagem comum
Sistemas crı´ticos - definic¸a˜o mais sistema´tica da lo´gica
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos
Por que a manutenc¸a˜o de sistemas costuma ser difı´cil?
Todas as func¸o˜es que manipulam os dados devem
conhecer sua forma de armazenamento
Uma modificac¸a˜o da estrutura de dados afeta todas as
func¸o˜es que a manipulam
A descric¸a˜o de sistema em termos de o que fazer acaba
sendo transformada em como fazer
Mudanc¸as no comportamento do sistema se propaga
atrave´s das func¸o˜es
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos
Como esse cena´rio se altera com a OO?
Quando bem modelado, um sistema OO e´ estruturado
atrave´s de objetos do domı´nio do problema
O sistema pode ser mantido o mais pro´ximo possı´vel de
uma visa˜o conceitual do mundo real
Ha´ mais transpareˆncia na passagem da fase de
modelagem para a fase de construc¸a˜o, na˜o exigindo
reorganizac¸a˜o do modelo
Os objetos do domı´nio do problema sa˜o mais esta´veis
Quando necessa´rias, as mudanc¸as ficam contidas apenas
nesses objetos
Na˜o se verifica, necessariamente, a propagac¸a˜o de
alterac¸o˜es em func¸o˜es e dados
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos
Importante!
Uma boa modelagem do sistema atrave´s de objetos exige um
bom conhecimento do domı´nio do problema.
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos - Caracterı´sticas
Objetos sa˜o abstrac¸o˜es de entidades do mundo real (ou
de algum sistema) que se auto-gerenciam
Objetos sa˜o independentes e encapsulam suas
representac¸o˜es de estado e de informac¸o˜es
A funcionalidade de um sistema e´ expressa em termos de
servic¸os que os objetos prestam
A´reas de dados compartilhadas sa˜o eliminadas
Objetos se comunicam atrave´s de mensagens
Objetos podem ser distribuı´dos
Objetos podem ser executados sequencialmente ou de
forma paralela
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Histo´rico e Fundamentos
Ana´lise Orientada a Objetos - Desenvolvimento
O Projeto, a Ana´lise e a Programac¸a˜o sa˜o atividades distintas
Ana´lise OO: se preocupa com a modelagem dos objetos
para o domı´nio da aplicac¸a˜o
Projeto OO: se preocupa com o desenvolvimento de um
modelo de sistema que implemente os requisitos definidos
pela AOO
Programac¸a˜o OO: se preocupa com a implementac¸a˜o do
Projeto OO utilizando uma linguagem de programac¸a˜o OO
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Tipos Abstratos de Dados
O comportamento dos objetos e´ definido pelo seu tipo
abstrato
A descric¸a˜o de um TAD deve compreender:
Interface do TAD
Comportamento do TAD
Um tipo abstrato de dados e´ uma classe de estrutura de
dados descrita por uma interface externa:
Lista de servic¸os disponı´veis
Propriedades destes servic¸os
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Tipos Abstratos de Dados
A representac¸a˜o das estruturas de dados do TAD fica
completamente encapsulada
A representac¸a˜o das estruturas de dados do TAD na˜o faz
parte de sua definic¸a˜o
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Sistemas OO
As classes formam o nu´cleo de um programa OO
Os objetos proveˆem o comportamento, devendo ser
criados apropriadamente
Cada objeto implementa uma parte do comportamento
geral da aplicac¸a˜o:
Objetos de computac¸a˜o (transientes)
Objetos de banco de dados (persistentes)
Objetos de interface
Objetos de GUI
O programa principal fica reduzido a` func¸a˜o de criar e
iniciar objetos principais e iniciar a computac¸a˜o
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Encapsulamento
Encapsulamento consiste em ocultar o funcionamento
interno de uma classeO acesso aos servic¸os oferecidos e´ feito atrave´s de seus
me´todos
O funcionamento interno da classe se torna transparente
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Classe e´ um conceito de software que descreve a
implementac¸a˜o de um TAD
Uma classe define:
A estrutura de dados que representa o TAD
A implementac¸a˜o das operac¸o˜es, me´todos, sobre esta
estrutura
Uma interface explicita
Classe e´ apenas um molde para criac¸a˜o de TAD
Uma classe e´ a representac¸a˜o de um conjunto de objetos
que compartilham os mesmos atributos, operac¸o˜es,
relacionamentos e semaˆntica
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Classes suportam os conceitos de:
Abstrac¸a˜o
Encapsulamento
Protec¸a˜o de dados
Polimorfismo
Hierarquia
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
A abstrac¸a˜o esta´ relacionada aos objetivos sobre o que se
abstrai.
Ex.: TAD Pessoa
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Encapsular consiste em incluir, proteger em uma ca´psula
Encapsular e´ ocultar do usua´rio o funcionamento interno
de uma classe
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Protec¸a˜o de dados visa garantir o acesso apenas sobre
operac¸o˜es e atributos disponibilizados pela interface da
classe
Modificadores de acesso:
Acesso pu´blico (public)
Acesso protegido (protected)
Acesso privado (private)
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Acesso pu´blico:
Visı´vel por todos os pacotes
Acesso protegido:
Visı´vel somente por classes e subclasses do mesmo
pacote e sub-pacotes
Acesso privado:
Visı´vel somente pela pro´pria classe
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Todos os atributos e operac¸o˜es de uma classe podem
ser acessados pelas operac¸o˜es da mesma classe
O acesso aos atributos e´, em geral, privado ou protegido
O acesso a`s operac¸o˜es que fazem parte da interface da
classe e´ pu´blico
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Um atributo e´ uma propriedade de uma classe
Ele descreve um conjunto de valores que as instaˆncias da
classe (objetos) podem atribuir a essa propriedade
Em geral, representa uma propriedade persistida
Uma classe pode ter um nu´mero qualquer de atributos,
inclusive zero
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Um atributo derivado e´ um atributo cujo valor pode ser
calculado baseado no valor de outro(s) atributo(s)
Geralmente na˜o e´ um atributo persistido
E´ uma decisa˜o de performance x memo´ria requerida
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Um atributo esta´tico e´ um atributo cujo valor e´
compartilhado por todas as instaˆncias da classe
O acesso a um atributo esta´tico e´ independente do objeto
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Um atributo na˜o esta´tico possui um valor u´nico para
cada objeto
O acesso a um atributo na˜o esta´tico e´ dependente do
objeto
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Uma operac¸a˜o e´ um servic¸o que pode ser requisitado por
qualquer objeto da classe para obter um comportamento
Uma classe pode ter um nu´mero qualquer de operac¸o˜es,
inclusive zero
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Uma operac¸a˜o abstrata e´ aquela que na˜o possui um
me´todo que a implemente na classe
Uma classe que possui uma ou mais operac¸o˜es abstratas
e´ dita classe abstrata
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Uma operac¸a˜o esta´tica e´ independente de objeto e
acessa apenas atributos esta´ticos
O acesso a operac¸o˜es esta´ticas e´ independente de objeto
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
As classes, no contexto dos sistemas, na˜o trabalham
sozinhas
As classes colaboram umas com as outras atrave´s de
relacionamentos
O comportamento do sistema e´ obtido atrave´s da
interac¸a˜o entre objetos
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes - Tipos de Estruturas
Classe Abstrata
E´ uma classe que na˜o possui instaˆncias diretas
Apenas suas classes descendentes possuem
Sa˜o u´teis para definir uma estrutura comum a va´rias
classes
Facilitam a reutilizac¸a˜o de co´digo
Uma operac¸a˜o abstrata numa classe define apenas a sua
forma, na˜o a sua implementac¸a˜o
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes - Tipos de Estruturas
Interfaces
O propo´sito de uma interface e´ encapsular um conjunto de
operac¸o˜es oferecidas pela classe
E´ comum apresentarmos na interface apenas parte das
operac¸o˜es
A interface especifica a assinatura destas operac¸o˜es
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Classes
Uma classe e´ a representac¸a˜o de um conjunto de objetos que
compartilham os mesmos atributos, operac¸o˜es,
relacionamentos e semaˆntica.
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Objetos
Objetos sa˜o conceitos de software que modelam
entidades da aplicac¸a˜o
Objetos sa˜o abstrac¸o˜es de dados
Objetos teˆm estado (estrutura interna)
Objetos sa˜o manipulados apenas por operac¸o˜es
Objetos sa˜o instaˆncias de classes
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Objetos
Os objetos proveˆem o comportamento, devendo ser
criados apropriadamente
Cada objeto representa uma parte do comportamento
geral da aplicac¸a˜o
Objetos de computac¸a˜o (transientes)
Objetos de banco de dados (persistentes)
Objetos de interface
Objetos de GUI
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Relacionamentos
Classes isoladas na˜o compo˜em um Sistema OO
A interac¸a˜o entre os objetos define o comportamento de
um Sistema OO
Interac¸a˜o entre objetos envolve a comunicac¸a˜o
Classes devem definir como e´ feita a interac¸a˜o. Como?
Atrave´s de Relacionamentos
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Relacionamentos
As classes colaboram umas com as outras atrave´sde
relacionamentos
O comportamento do sistema e´ obtido atrave´s da
interac¸a˜o entre objetos
Relacionamentos
Associac¸o˜es
Agregac¸o˜es e Composic¸o˜es
Heranc¸a
Dependeˆncia
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Associac¸o˜es
Sa˜o os relacionamentos mais ba´sicos entre
classes/objetos
Conceitualmente associac¸o˜es representam relac¸o˜es
conceituais entre classes
Exemplo:
Um pessoa trabalha para uma companhia
A companhia tem va´rios escrito´rios
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Associac¸o˜es
Relacionamento entre duas classes: associac¸a˜o bina´ria
Relacionamento entre treˆs ou mais classes: associac¸a˜o
n-a´ria
Associac¸o˜es reflexivas: sa˜o associac¸o˜es de uma classe
com ela pro´pria
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Agregac¸o˜es
Agregac¸a˜o e´ uma forma especial de associac¸a˜o onde o
todo esta´ relacionado a`s suas partes
A frase “parte de” e´ utilizada para descrever o
relacionamento: Grupo de usua´rios x Usua´rio
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Agregac¸o˜es
Uma agregac¸a˜o representa uma propriedade fraca, pois
uma classe parte pode estar contida em outras
agregac¸o˜es
O todo e´ chamado de classe forte e a parte de classe
fraca
Os ciclos de vida de objetos todo e parte sa˜o
independentes, ou seja, um na˜o depende do outro para
existir
Agregac¸o˜es reflexivas sa˜o agregac¸o˜es de uma classe com
ela pro´pria
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Composic¸o˜es
Composic¸a˜o e´ uma forma especial de agregac¸a˜o onde o
todo esta´ relacionado a`s suas partes
A frase “e´ composto por” e´ utilizada para descrever o
relacionamento: Teclado x Boto˜es
O todo e´ chamado de classe forte e a parte de classe
fraca
Os ciclos de vida de objetos todo e parte sa˜o
dependentes, ou seja, a parte depende do todo para
existir
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Composic¸o˜es
Agregac¸a˜o por composic¸a˜o indica ciclos de vida
dependentes
criar um objeto todo e enta˜o criar um objeto relacionado
parte
excluir um objeto todo e enta˜o excluir um objeto
relacionado parte
Composic¸o˜es reflexivas sa˜o composic¸o˜es de uma classe
com ela pro´pria
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Heranc¸a
Relacionamento entre classes onde uma classe
compartilha a estrutura e o comportamento de uma ou
mais classes
Define uma hierarquia de abstrac¸o˜es na qual a subclasse
herda de uma ou mais superclasses
Heranc¸a simples
Heranc¸a mu´ltipla
Uma heranc¸a e´ um relacionamento do tipo “e´ um tipo de”
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Heranc¸a
A subclasse herda os atributos, operac¸o˜es e
relacionamentos da superclasse
Cada subclasse pode definir novos atributos e/ou
operac¸o˜es
Cada subclasse pode redefinir operac¸o˜es da superclasse
Cada subclasse pode participar de relacionamentos
especı´ficos
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Heranc¸a
Como identificar necessidade de heranc¸as?
Procure por similaridades entre as classes
Siga a regra: a subclasse e´ um tipo da superclasse
A heranc¸a pela subclasse deve ser total
Caso a regra na˜o seja satisfeita, utilize composic¸a˜o
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Dependeˆncia
Indica que a mudanc¸a em uma classe pode causar
mudanc¸as na outra
Fatores que levam a` dependeˆncia entre classes:
Troca de mensagens entre os objetos das classes
Uma classe tem como atributo outra classe
Uma classe aparece como paraˆmetro na assinatura da
operac¸a˜o de outra classe
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Polimorfismo
Um mesmo objeto pode ser de va´rios tipos
Exemplo: Uma Pessoa pode ser um Estudante ou um
Professor
Na˜o e´ via´vel exigir que todos os outros objetos saibam
todos os possı´veis tipos de um determinado objeto
Todos os outros objetos devem reconhecer o objeto
atrave´s de um u´nico tipo
Trechos de co´digo para tratamento de diferentes tipos sa˜o
eliminados
Atrave´s do polimorfismo, instaˆncias de va´rias classes sa˜o
tratadas de forma u´nica em um sistema
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Polimorfismo
Cada tipo re-implementa alguma parte da interface em
comum
Outros objetos do sistema acessam a interface em comum
de forma u´nica
O comportamento do objeto sera´ definido pela
re-implementac¸a˜o contida no objeto
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Polimorfismo
Universal
Parame´trico
Implı´cito
Explı´cito
Inclusa˜o
Ad-hoc
Sobrecarga
Coerc¸a˜o
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Polimorfismo Universal
Polimorfismo Parame´trico Explı´cito
Func¸a˜o atua da mesma forma sobre objetos de diferentes
tipos
Os tipos dos argumentos sa˜o passados como paraˆmetros
Exemplo: printf do C
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Polimorfismo Universal
Polimorfismo Parame´trico Implı´cito
Func¸a˜o atua da mesma forma sobre objetos de diferentes
tipos
Os tipos desses objetos sa˜o identificados pelo compilador,
que os passa implicitamente a` func¸a˜o
Exemplo: write(x) do Pascal, se x e´ inteiro imprime inteiro
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Polimorfismo Universal
Polimorfismo de Inclusa˜o
Modela subtipos e heranc¸a
O subtipo esta´ incluı´do no tipo
Onde o objeto de um tipo for esperado, um objeto do
subtipo deve ser aceito
Exemplo: desenhar(Figura umaFigura)
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Polimorfismo Ad-hoc
Polimorfismo de Sobrecarga: Um mesmo identificador
denota va´rias func¸o˜es que operam sobre objetos de tipos
distintos, sem estrutura comum
Exemplo
boolean pesquisa(int[] tabela, int x);
boolean pesquisa(char[] tabela, char x);
Polimorfismo de Coerc¸a˜o: Conversa˜o automa´tica de tipo
para satisfazer o contexto
Exemplo: soma = real + real
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Classes
Objetos
Relacionamentos
Polimorfismo
Polimorfismo
Polimorfismo e´ uma te´cnica para aumentar o grau de
reuso
Semaˆntica de refereˆncia tem papel importante em
polimorfismo
Polimorfismos de sobrecarga e de inclusa˜o sa˜o inerentes
a POO
FAETERJ-Paracambi Ana´lise e Projeto de Sistemas
Introduc¸a˜o
Conceitos Ba´sicos
Ana´lise e Projeto de Sistemas
Prof. Anderson Luiz Menezes
FAETERJ-Paracambi
Contato: menezes@lncc.brFAETERJ-Paracambi Ana´lise e Projeto de Sistemas
	APS2014
	Introdução
	Conceitos Básicos

Outros materiais