Anda di halaman 1dari 37

Modelagem de Sistemas

Prof. Frederico Bortolato

Aula 1 Reviso de
Conceitos de OO

Agenda
1.
2.
3.
4.
5.
6.
7.

Conceito de Objeto
Estado, Comportamento e Identidade
Princpios da Orientao Objetos
Classes
Herana (Generalizao)
Polimorfismo, Sobrecarga e Sobreposio
Exerccios

Orientao Objetos - Reviso


Uma nova maneira de pensar [e organizar] os problemas
utilizando conceitos do Mundo Real. O componente
fundamental o OBJETO que combina estrutura e
comportamento em uma nica entidade
[Raumbaugh]
Um sistema orientado a objetos uma coleo de objetos
que interagem entre si
[Bertrand Meyer]

As Bases da Orientao a Objetos

Correspondncia com o mundo real


Modularidade dos componentes
Objetos com finalidade prpria
Permite a combinao destes Objetos
Baixa dependncia externa
Alta coeso interna
Fcil ampliao do objeto
Permite reuso dos objetos
Encapsulamento

Conceito de Objeto
Objeto um elemento do mundo real (Jos Davi Furlan)
Informalmente, um objeto representa uma entidade que
pode ser fsica, conceitual ou de software.

Exemplos de Objetos

Concretos: pessoa, lpis, carro, etc.


Intangveis: hora, projeto, organizao, etc.
Personagem: mdico, professor, etc.
Relacional: casamento, parceiro, propriedade.
Evento: venda, defeito do sistema.
Interface Grfica: janela, cone, boto.
Muitos outros...

Definio formal de Objeto


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
operaes, mtodos e mquinas de estados.

Estados do Objeto
O estado de um objeto a condio ou situao durante
o ciclo de vida (em um dado instante) de um objeto o
qual satisfaz algumas condies, executa alguma
atividade ou aguarda algum evento.
O estado de um objeto normalmente mudo ao longo do
tempo.
Exemplos:
Idade de uma Pessoa (objeto Pessoa)
Saldo de um Cliente (objeto Cliente)
Quantidade de Alunos (objeto Turma)

Comportamento do Objeto
O comportamento determina como um objeto age e
reage.
O comportamento observvel de um objeto
modelado por um conjunto de mensagens que ele
pode responder. (operaes que o objeto executa).
Exemplo:
Adicionar Aluno (objeto Turma)
Calcular Saldo Devedor (objeto Conta)
Publicar Notas Finais (objeto Professor)

Identidade de um Objeto
o nome do objeto que o identifica de
maneira nica.
Cada objeto possui uma identidade nica,
mesmo que o estado do objeto seja idntico
ao de outro objeto.
Exemplos:
Frederico (objeto Professor)
Mauricio (objeto Professor)
Joo (objeto Aluno)

Princpios da Orientao Objetos

Abstrao
So caractersticas essenciais de uma entidade que a
distingue de todos os outros tipos de entidade.
Define uma fronteira relativa perspectiva do
observador.
No uma manifestao concreta, denota a essncia
ideal de alguma coisa (focalizar o essencial,
ignorando os pormenores).
Deve ser executada com algum objetivo para saber o
que importante e o que no .

Exemplos de Abstrao

Exemplos de abstrao

Encapsulamento
Atributos e Operaes de um Objeto devem estar
armazenados no prprio Objeto (encapsulados no
Objeto), escondendo a implementao dos
clientes.
A funo do encapsulamento proteger os dados
do acesso descontrolado.
O acesso realizado por intermdio de
mensagens (execuo das operaes) trocadas
entre os objetos.
As operaes funcionam como servios que o
objeto fornece ao mundo exterior (clientes
dependem dessa interface).

Objeto
Dados

Operao
Operao
Operao

Lampada
tens ao
preco
acender()
comprar()

Modularidade
Quebra algo complexo em partes gerenciveis.
Auxilia as pessoas a entender sistemas
complexos.

Exemplo de Modularidade

Hierarquia
Maior abstrao
Ativo

Conta
Bancria

Poupana

Menor abstrao

Conta
Corrente

Valores
Mobilirios

Aes

Ttulo
Pblico

Aplices

Elementos em um mesmo nvel hierrquico


devem estar no mesmo nvel de abstrao.

Classe
Uma classe uma descrio formal de um conjunto de
objetos que compartilham os mesmos atributos,
operaes, relacionamentos e semntica (mesma
especificao).
Uma classe uma abstrao que evidencia
caractersticas relevantes e suprime outras
caractersticas.
Se comporta como um modelo para criao de objetos.
Define a estrutura e o comportamento de cada objeto da
classe.
Um objeto uma instncia de uma classe.

Exemplos de Classes
Classe Veculo
Objeto da Classe Mercedes do Bruno

Classe Pessoa
Objeto da Classe Joo
Obs.: Um objeto tambm chamado de instncia da
classe.

Atributo de classe
Um atributo uma propriedade nomeada de uma classe e
descreve um conjunto de valores (domnio) que as instncias
desta propriedade podem assumir.
Uma classe pode possuir um nmero qualquer de atributos,
inclusive nenhum.

Atributos

Atributos em classes e objetos

Operaes
Um servio que pode ser requisitado de um objeto para afetar
seu comportamento.
Uma operao possui uma assinatura a qual define a forma e
os parmetros da operao.
A classe pode ter nenhuma ou muitas operaes.

Operaes

Mensagens
A comunicao entre os objetos
ocorre pela troca de mensagens
Um objeto solicita informaes de
outro objeto para realizar suas
funes
Uma mensagem a execuo de
uma operao
Uma mensagem pode ou no
enviar parmetros para outro
objeto, bem como receber ou no
uma resposta do mesmo.

Objeto 1

Objeto 2

Dados

Dados

Operao
Operao
Operao

Operao
Operao
Operao

Objeto 3
Dados
Operao
Operao
Operao

Herana
a capacidade de um novo tipo de objeto
(classe filha) tomar (herdar) caractersticas e
comportamentos de um outro tipo de
objeto(classe pai) j existente.
Conta
Bancria
Define um relacionamento de Generalizao
entre as classes
Poupana

Conta
Corrente

Herana
Um objeto de uma subclasse herda os atributos, operaes e
relacionamentos da superclasse.
Permite que as propriedades da classe me possam ser
expandidas para a classe filha incluindo novas caractersticas.
O uso de herana permite criar classes mais genricas e/ou
mais especficas.
A herana aumenta a capacidade de reutilizao das classes.
Uma subclasse pode:
Adicionar atributos, operaes e relacionamentos novos.
Redefinir operaes herdadas.

Exemplos de Herana
Exemplo 1:
Classe pai Automvel
Classe filha Porshe
Porshe herda caractersticas e comportamentos da classe Automvel.
Atributos do Automvel: Potncia, capacidade de passageiros.
Atributos do Porshe: Turbo.

Exemplo 2:
Classe pai Pessoa
Classe filha Cliente do Banco

Cliente herda caractersticas e comportamentos da classe Pessoa.


Atributos de Pessoa: Nome, Idade, Endereo
Atributos de Cliente: Conta, Agencia

Herana simples

Uma classe herana de nica outra.

Herana Mltipla

Uma classe pode ser herdeira de vrias classes.

Polimorfismo
Habilidade de esconder muitas
implementaes por trs de uma nica
interface.
Habilidade de duas ou mais classes
responderem mesma solicitao, cada uma a
seu modo.

Exemplo de Polimorfismo

A classe cliente no precisa saber como e onde calculado o Valor (encapsulamento)

Sobrecarga
Em uma mesma classe pode possuir
operaes com o mesmo nome e parmetros
diferentes.
Quando isso ocorre dizemos que este mtodo
foi sobrecarregado.

Sobreposio
Em uma hierarquia de classes, caso exista um
mtodo na sub-classe com a mesma
assinatura de um mtodo da classe pai, este
se sobrepor ao mtodo da super-classe.

Dvidas e sugestes

Exerccio 1

Carro

Antnio
Carlos

Ave

TV

Cachorro

Quantas classes podemos definir?

Exerccio 2
Avalie as sentenas abaixo como Verdadeiro (V) ou Falso (F):
( ) So 3 os elementos que caracterizam um objeto: Identidade,
Estado e Comportamento.
( ) As classes so elementos do mundo real, no se
caracterizando por nenhum tipo de abstrao sobre eles.
( ) O Estado de um objeto a condio ou situao durante o
ciclo de vida (em um dado instante) de um objeto o qual satisfaz
algumas condies, executa alguma atividade ou aguarda algum
evento.
( ) Dois objetos distintos, se possurem o mesmo Estado e o
mesmo Comportamento, tero a mesma Identidade

Exerccio 2 (cont)
Avalie as sentenas abaixo como Verdadeiro (V) ou Falso (F):
( ) A funo do encapsulamento proteger os dados do acesso
descontrolado, escondendo a sua implementao dos clientes,
sendo que o acesso realizado por intermdio de mensagens
entre os objetos.
( ) Classe uma coleo de objetos que compartilham
identidades.
( ) Num relacionamento de Generalizao (herana), um objeto
de uma subclasse herda somente os atributos da superclasse.
( ) O Polimorfismo a habilidade de esconder muitas
implementaes por trs de uma nica interface.