Download - Paradigma de Orientacao a Objetos
-
O Paradigma Orientado a Objetos
Vtor E. Silva Souza
([email protected]) http://www.inf.ufes.br/~ vitorsouza
Departamento de Informtica
Centro Tecnolgico
Universidade Federal do Esprito Santo
-
Contexto: desenvolvimento de sistemas
Maio 2013 O Paradigma Orientado a Objetos 2
Descrio do problema
Descrio da soluo
Sistema
Cor
resp
ond
nci
a
Cor
rete
za
Val
ida
o
Ver
ific
ao
Problema Gesto de servios de uma biblioteca.
Toda solicitao de emprs- timo deve ser atendida.
Processo de check-out de livros da biblioteca.
Sistema de check-out de livros da biblioteca.
-
Modelagem e o gap semn=co
Maio 2013 O Paradigma Orientado a Objetos 3
Problema a ser resolvido
Domnio do Problema (Mundo Real)
Domnio da Soluo (Mundo Computacional)
Modelo de Soluo Modelagem
Gap Semntico
-
O que o gap semn=co? Distncia entre o problema no mundo real e o modelo
abstrato construdo para o mundo computacional; Quanto menor, mais rpida ser a construo da
soluo; Diminuir o gap semn=co um dos obje=vos da
Engenharia de SoOware; O paradigma orientado a objetos busca meios de
diminuir este gap.
Maio 2013 O Paradigma Orientado a Objetos 4
-
Paradigmas de desenvolvimento O que um paradigma?
Um exemplo, um modelo, um padro; Um conjunto de ideias, uma base losca.
Um paradigma de desenvolvimento agrupa mtodos e tcnicas que seguem um mesmo conjunto de princpios;
Dois dos mais conhecidos so: Desenvolvimento Estruturado; Orientao a Objetos (OO).
Maio 2013 O Paradigma Orientado a Objetos 5
Paradigma a representao de um padro a ser seguido. um pressuposto filosfico, matriz, ou seja, uma teoria, um conhecimento que origina o estudo de um campo cientfico; uma realizao cientfica com mtodos e valores que so
concebidos como modelo; uma referncia inicial como base de modelo para estudos e pesquisas. (http://pt.wikipedia.org/wiki/Paradigma)
-
Paradigmas de desenvolvimento Estruturado:
Modelo entrada processamento sada; Dados separados das funes; Visto na disciplina de Programao II.
Orientado a Objetos (OO): O mundo composto por objetos; Objetos combinam dados e funes; Conceitos do problema so modelados como objetos que so associados e interagem entre si.
Maio 2013 O Paradigma Orientado a Objetos 6
-
Paradigma OO vs. estruturado
Maio 2013 O Paradigma Orientado a Objetos 7
Anlise de Sistemas 7
Sistema de Gerncia Departamento
Funcionrio
Nome
Ramal
Funcionrio
Nome
Ramal
Tarefa
Descrio
Prazo
funcionario gerente
Registrar Tarefa Ver Tarefas
Estruturado / Procedural
Orientado a Objetos
Mais prximo do mundo real. A lgica
encapsulada em objetos.
-
Desvantagens do paradigma estruturado O gap semn=co maior; Frequentemente gera sistemas diaceis de serem
man=dos: As funes tem que conhecer a estrutura dos dados; Mudanas na estrutura dos dados acarreta alterao em todas as funes relacionadas.
Maio 2013 O Paradigma Orientado a Objetos 8
Por estes motivos, o paradigma orientado a objetos vem tomando o espao que antes era
dominado pelo paradigma estruturado.
-
Beneacios da orientao a objetos Capacidade de enfrentar novos domnios; Melhoria da interao analistas x especialistas; Aumento da consistncia interna da anlise; Alterabilidade, legibilidade e extensibilidade; Apoio reu=lizao.
Maio 2013 O Paradigma Orientado a Objetos 9
Orientao a objetos no mgica e nem a tbua de salvao do desenvolvimento. preciso aplic-la com disciplina e em conjunto com outras tcnicas da Engenharia de Software.
O foco deste curso na programao OO. No entanto, preciso entender os conceitos por trs do paradigma e aprender a modelar solues OO. Voc tambm usar isso no futuro!
-
Filosoa O mundo composto por objetos;
OO tenta gerenciar a complexidade dos problemas do mundo real abstraindo o conhecimento relevante e encapsulando-o em objetos.
Maio 2013 O Paradigma Orientado a Objetos 10
Mundo Real (Conceitos)
Modelo de Soluo (Modelagem OO) Cdigo de Mquina (Programao OO)
Um sistema construdo usando um mtodo orientado a objetos aquele cujos componentes so partes encapsuladas de dados e
funes, que podem herdar atributos e comportamento de outros componentes da mesma natureza, e cujos componentes
comunicam-se entre si por meio de mensagens.
Eduard Yourdon
-
Princpios fundamentais Auxiliam a administrar a complexidade; Guiam toda a tarefa de modelagem.
Maio 2013 O Paradigma Orientado a Objetos 11
Abstrao Encapsulamento
Modularidade Hierarquia
-
Abstrao Modelos mentais: viso simplicada do mundo
construda por cada um em cada situao; Abstrair consiste em ignorar aspectos irrelevantes e
concentrar nos principais.
Maio 2013 O Paradigma Orientado a Objetos 12
-
Abstrao Abstrao de Dados:
Um =po denido por suas operaes; Ex.: Um =po pilha denido por suas operaes empilhar e desempilhar.
Abstrao de Procedimentos: Uma operao com efeito bem denido pode ser tratada como atmica, mesmo que ela faa uso de outras operaes de mais baixo nvel;
calcularSalarioLiquido: denida em termos de obterSalarioBruto, calcularImposto, calcularDescontos, etc.
Maio 2013 O Paradigma Orientado a Objetos 13
-
Encapsulamento Separar os aspectos externos (o que faz) dos aspectos
internos (como faz): Aspectos externos = interface, contrato; Aspectos internos = implementao.
Maio 2013 O Paradigma Orientado a Objetos 14
-
Encapsulamento Complemento da abstrao:
Abstrao enfoca o comportamento observvel de um objeto;
Encapsulamento enfoca a implementao que origina este comportamento.
Promove maior estabilidade: Clientes do objeto s conhecem sua interface; Podemos alterar a implementao de uma operao sem afetar o restante do sistema.
Maio 2013 O Paradigma Orientado a Objetos 15
-
Modularidade Decomposio do sistema em mdulos:
Coesos (baixo acoplamento); Autnomos; De interface simples e coerente.
Fundamental para o reuso e extenso.
Maio 2013 O Paradigma Orientado a Objetos 16
-
Hierarquia uma forma de arrumar as abstraes e simplicar o
entendimento do problema; Tambm promovem o reuso; Sinergia para administrar a complexidade:
Abstrao auxilia a iden=car os conceitos relevantes do mundo real;
Encapsulamento oculta a viso interna das abstraes iden=cadas;
Modularidade nos d um meio de agrupar logicamente abstraes relacionadas;
Por m, abstraes formam hierarquias.
Maio 2013 O Paradigma Orientado a Objetos 17
-
Conceitos bsicos
Maio 2013 O Paradigma Orientado a Objetos 18
Classes
Estruturao
Mtodos
Instncias
Objetos
Mensagens
Associao
Composio
Herana
-
Objetos Um objeto uma en=dade que incorpora uma
abstrao relevante no contexto de uma aplicao; Podem ser coisas abstratas (ex.: uma reserva de
passagem area) ou concretas (ex.: um documento).
Maio 2013 O Paradigma Orientado a Objetos 19
-
Objetos caracters=cas principais Estado (estrutura): conjunto de suas propriedades e
seus valores correntes; Comportamento: conjunto de servios (operaes) que
o objeto prov; Iden=dade: iden=cador nico que diferencia cada
objeto, mesmo que tenham o mesmo estado e comportamento.
Maio 2013 O Paradigma Orientado a Objetos 20
15 70 45
-
Classes Uma classe descreve um conjunto de objetos com as
mesmas propriedades, o mesmo comportamento, os mesmos relacionamentos com outros objetos e a mesma semn=ca;
Similar ao conceito de =po.
Maio 2013 O Paradigma Orientado a Objetos 21
15 70 45
Casa " Cor; " Nmero; " Abrir Porta; " Fechar Porta; " Arquiteto.
#
-
Classes e instncias Objeto = Instncia de classe; Paradigma OO norteia o desenvolvimento por meio de
classicao de objetos: Modelamos classes, e no objetos; Objetos so en=dades reais executam algum papel no sistema;
Classes so abstraes capturam a estrutura e comportamento comum a um conjunto de objetos.
Maio 2013 O Paradigma Orientado a Objetos 22
-
Mecanismos de estruturao Objetos relacionam-se uns com os outros; preciso modelar esta complexidade e estruturar as
classes; Mecanismos propostos:
Associao; Composio; Herana.
Maio 2013 O Paradigma Orientado a Objetos 23
-
Ligaes e associaes Ligao: conexo entre objetos; Associao: conexo entre classes que representa a
existncia de ligaes; Uma associao descreve um conjunto de potenciais
ligaes da mesma maneira que uma classe descreve um conjunto de potenciais objetos [Rumbaugh].
Maio 2013 O Paradigma Orientado a Objetos 24
24 Classe: Pessoa Classe: Casa Classe: Cachorro
Habitantes Co de Guarda
-
Ligaes e associaes Em UML...
Maio 2013 O Paradigma Orientado a Objetos 25
-
Composio e agregao Formas especiais de ligao que modelam
relacionamentos todo-parte; Objetos complexos agregam ou so compostos de
objetos mais simples; Segundo a especicao da UML:
Composio um =po forte de agregao; As partes devem viver e morrer como um todo; Ou o todo no existe sem as partes. Exemplo:
Um trem e sua locomo=va a vages (comp.); Uma locomo=va e seu farol (agregao).
Maio 2013 O Paradigma Orientado a Objetos 26
-
No h consenso sobre a semn=ca... Uma viso:
Na agregao ou composio, as partes s podem exis=r como membros do todo;
A composio difere da agregao por restringir que a parte s par=cipe de 1 todo.
Outra viso: Na agregao, as partes podem exis=r sem o todo e vice-versa;
A composio difere da agregao por restringir que o todo no vive sem as partes.
Maio 2013 O Paradigma Orientado a Objetos 27
-
Generalizao e especializao Generalizao: quando
classes tm semelhanas podemos denir uma classe mais geral;
Especializao: muitas vezes um conceito pode ser renado, adicionando-se novas caracters=cas.
Maio 2013 O Paradigma Orientado a Objetos 28
Estudante
Nome
Universitario
Matrcula
EstudanteEnsinoMedio
Srie
EstudanteGraduacao
Curso
EstudanteMestrado
Orientador
-
Herana Generalizao e especializao so teis para
estruturao do sistema; So formadas hierarquias de classes:
Filhos (ou subclasses) herdam estrutura e comportamento dos pais (ou superclasses) e demais ancestrais, de forma indireta.
A herana possibilita: Reu=lizao; Captura explcita de caracters=cas comuns; Denio incremental de classes.
Maio 2013 O Paradigma Orientado a Objetos 29
-
Cuidados com o uso de herana Semn=ca da herana:
um =po de; uma instncia indireta de; Ex.: Universitrio um =po de Estudante.
Se a subclasse precisa cancelar caracters=cas da superclasse, h algo errado;
Herana pode se tornar um vcio!
Maio 2013 O Paradigma Orientado a Objetos 30
-
Herana ml=pla Ateno redundncia!
Maio 2013 O Paradigma Orientado a Objetos 31
-
Mensagens e mtodos As operaes (servios) que um objeto oferece so
chamadas de mtodos; Para solicitar um servio um objeto (cliente) envia uma
mensagem a outro.
Maio 2013 O Paradigma Orientado a Objetos 32
Objeto: Contador Objeto: Calculadora
Calcular IR (renda, descontos)
R$ 350,00
-
Mensagens e mtodos Encapsulamento: no permi=do acessar diretamente
as propriedades de um objeto, preciso operar por meio de mtodos (troca de mensagens);
Abstrao: a complexidade de um objeto escondida por trs de suas operaes;
Toda funcionalidade do sistema realizada pela troca de mensagem entre objetos.
Maio 2013 O Paradigma Orientado a Objetos 33
-
Conceitos avanados
Maio 2013 O Paradigma Orientado a Objetos 34
Ligao Dinmica
Polimorfismo
Operaes Abstratas
Classes Abstratas
Sobrescrita
Sobrecarga Persistncia
-
Classes abstratas Classes abstratas no podem ser instanciadas;
Usadas para organizar caracters=cas comuns a diversas subclasses;
Desenvolvida para ser herdada. No possui instncias diretas, s indiretas.
Maio 2013 O Paradigma Orientado a Objetos 35
Veculo
Andar ()
Carro
Andar ()
Bicicleta
Andar ()
?
-
Operaes abstratas Classes abstratas podem denir mtodos sem
implementao, chamados abstratos; Subclasses concretas so obrigadas a implement-lo; Classes concretas no podem ter mtodos abstratos; Classes abstratas podem ter mtodos concretos.
Interface = classe abstrata que s possui operaes abstratas.
Maio 2013 O Paradigma Orientado a Objetos 36
-
Sobrecarga e sobrescrita Sobrecarga: operaes dis=ntas com o mesmo nome; Sobrescrita: subclasse dene nova implementao para
operao denida na superclasse.
Maio 2013 O Paradigma Orientado a Objetos 37
Anlise de Sistemas 37
Calculadora
Calcular IR (renda)
Calcular IR (renda, descontos) Calculadora Simplificada .
Calcular IR (renda, descontos)
-
Polimorsmo O objeto emissor no precisa saber quem o objeto
receptor, contanto que saiba que ele responde a uma certa mensagem; O emissor s conhece uma interface; O receptor sabe a implementao certa.
uma forma de sobrescrita, mas todas as operaes mantm a mesma semn=ca em toda a hierarquia.
Maio 2013 O Paradigma Orientado a Objetos 38
-
Polimorsmo Habilidade de tomar vrias formas.
Maio 2013 O Paradigma Orientado a Objetos 39
Forma
desenhar ()
desenhar ()
-
Ligao dinmica Quando chamamos uma funo, esta deve estar ligada
ao cdigo que a implementa; Ligao est=ca = feita em tempo de compilao; Ligao dinmica ou tardia = feita em tempo de execuo.
Necessrio por nem sempre sabermos a classe verdadeira de um objeto;
a base para o polimorsmo.
Maio 2013 O Paradigma Orientado a Objetos 40
-
Persistncia Capacidade do objeto de transcender o tempo e o
espao; Armazenamento em banco de dados; Transmisso pela rede.
Maio 2013 O Paradigma Orientado a Objetos 41
-
h"p://nemo.inf.ufes.br/
Maio 2013 O Paradigma Orientado a Objetos 42