Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

35
Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI

Transcript of Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Page 1: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Desenvolvimento de aplicativos Orientados a

Objetos:Definição e

Características

Desenvolvimento de aplicativos Orientados a

Objetos:Definição e

CaracterísticasTHIAGO IDEALITHIAGO IDEALI

Page 2: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

RoteiroRoteiro

Conceitos de Orientação a Objetos O que é um Paradigma? Alguns Paradigmas Porque usar Orientação a Objetos? Técnicas de Desenvolvimento de

Sistemas Orientados a Objetos Bibliografia

Conceitos de Orientação a Objetos O que é um Paradigma? Alguns Paradigmas Porque usar Orientação a Objetos? Técnicas de Desenvolvimento de

Sistemas Orientados a Objetos Bibliografia

Page 3: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Conceitos de Orientação a ObjetosConceitos de Orientação a Objetos

Objeto ou Instância Classe Mensagem Abstração Herança Agregação ou Todo Parte Encapsulamento Polimorfismo

Objeto ou Instância Classe Mensagem Abstração Herança Agregação ou Todo Parte Encapsulamento Polimorfismo

Page 4: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

ObjetoObjeto

“Qualquer coisa, real ou abstrata, a respeito da qual armazenamos

dados e métodos que os manipulam”

(Odell & Martin, 1995)

Tudo em OO é Objeto

“Qualquer coisa, real ou abstrata, a respeito da qual armazenamos

dados e métodos que os manipulam”

(Odell & Martin, 1995)

Tudo em OO é Objeto

Page 5: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

ObjetoObjeto

CACHORRO

CASA

Page 6: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

ObjetoObjeto

ObjetoObjeto

==

AtributosAtributos

+ +

MétodosMétodos

+ +

EncapsulamentEncapsulamentoo

Page 7: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

ObjetoObjeto

Objeto tem atributos ... Objeto tem atributos ...

Carro tem ...- nº de portas = 2- cor = vermelho- fabricante =

Volks- ano = 1995- placa = XYZ-0102

Carro tem ...- nº de portas = 2- cor = vermelho- fabricante =

Volks- ano = 1995- placa = XYZ-0102

Page 8: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

ObjetoObjeto

Objeto tem métodos ... Objeto tem métodos ...

Carro tem ...- Ligar - Desligar- Acender Farol- Acionar Air-Bag- Travar Portas...

Carro tem ...- Ligar - Desligar- Acender Farol- Acionar Air-Bag- Travar Portas...

Page 9: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

ClasseClasse

Conjunto de objetos similares. Descreve a:

Estrutura dos dados; e, Comportamento de objetos

similares. Objeto = Instância de Classe Objetos de uma mesma classe

diferenciam-se pelos valores de seus atributos.

Conjunto de objetos similares. Descreve a:

Estrutura dos dados; e, Comportamento de objetos

similares. Objeto = Instância de Classe Objetos de uma mesma classe

diferenciam-se pelos valores de seus atributos.

Page 10: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

ClasseClasse

Objeto 1Objeto 1

Objeto 2Objeto 2

ClasseClasseAutomovelAutomovel

numeroPortasnumeroPortascorcorfabricantefabricanteanoanoplacaplaca

Page 11: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

ClasseClasse

ClasseClassePessoaPessoa

classe Pessoa

objeto Maria objeto Pedro

nomenomeidadeidadealturaalturapesopeso

Page 12: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

MensagensMensagens

Mecanismo através do qual os objetos se comunicam, invocando as operações desejadas.

Um objeto (Emissor) envia uma mensagem a outro (Receptor) que executará uma tarefa.

Métodos são invocados por Mensagens.

Mecanismo através do qual os objetos se comunicam, invocando as operações desejadas.

Um objeto (Emissor) envia uma mensagem a outro (Receptor) que executará uma tarefa.

Métodos são invocados por Mensagens.

Page 13: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

AbstraçãoAbstração

Mecanismo utilizado na análise do domínio.

Capturar as informações essenciais das entidades ou objetos envolvidos no contexto do sistema sendo desenvolvido.

Enfoca: visão externa do objeto separando seu comportamento de sua implementação.

Mecanismo utilizado na análise do domínio.

Capturar as informações essenciais das entidades ou objetos envolvidos no contexto do sistema sendo desenvolvido.

Enfoca: visão externa do objeto separando seu comportamento de sua implementação.

Page 14: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

AbstraçãoAbstração

“depende do ponto de vista”

“depende do ponto de vista”

Page 15: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Herança ou EspecializaçãoHerança ou Especialização

Permite definir uma nova classe (subclasse) a partir de uma classe já existente (superclasse).

Quando se define herança a subclasse “herda” as características comuns da superclasse e pode ainda adicionar novos métodos ou reescrever métodos herdados.

Permite definir uma nova classe (subclasse) a partir de uma classe já existente (superclasse).

Quando se define herança a subclasse “herda” as características comuns da superclasse e pode ainda adicionar novos métodos ou reescrever métodos herdados.

Page 16: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Herança ou EspecializaçãoHerança ou Especialização

Pode ser:Simples

Pode ser:Simples

Pessoa

Jardineiro Arquiteto Diretor de

Informática

Ortopedista

Page 17: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Herança ou EspecializaçãoHerança ou Especialização

Pode ser: Múltipla

Pode ser: Múltipla

Relógio Rádio

Rádio-Relógio

Page 18: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Agregação ou Todo-ParteAgregação ou Todo-Parte

Composição de uma nova categoria como um agregado de categorias pré-existentes.

Um objeto é composto por outros objetos.

Pode ser:Por valor (casa – porta)Por referência (loja – porta)

Composição de uma nova categoria como um agregado de categorias pré-existentes.

Um objeto é composto por outros objetos.

Pode ser:Por valor (casa – porta)Por referência (loja – porta)

Page 19: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Agregação ou Todo-ParteAgregação ou Todo-Parte

TODO

PARTES

Page 20: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

EncapsulamentoEncapsulamento

Objetivo: “ocultar” do mundo externo ao objeto os detalhes de implementação e restringir o acesso aos atributos e métodos.

Vantagens: Segurança no acesso ao objeto Melhor consistência no estado

interno, pois evita alteração incorreta de valores dos atributos

Objetivo: “ocultar” do mundo externo ao objeto os detalhes de implementação e restringir o acesso aos atributos e métodos.

Vantagens: Segurança no acesso ao objeto Melhor consistência no estado

interno, pois evita alteração incorreta de valores dos atributos

Page 21: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

EncapsulamentoEncapsulamento

Avião

Velocidade

AltitudeObter Velocidade

Obter Altitude

AumentarVelocidade

Page 22: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

PolimorfismoPolimorfismo

Membros de diferentes classes podem responder a uma mesma mensagem.

Membros de diferentes classes podem responder a uma mesma mensagem.

Polimorfismo

Janela ( )

Janela ( 1 x 2 , 2 )

Janela ( 1 x 2 , 2, Azul )

Page 23: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

ParadigmaParadigma

Paradigma é a “filosofia” adotada na construção de software:LógicoFuncionalProcedimentalOrientado a Objetos

Paradigma é a “filosofia” adotada na construção de software:LógicoFuncionalProcedimentalOrientado a Objetos

Page 24: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Paradigma ProcedimentalParadigma Procedimental

Visão de modelo baseada em um modelo de entrada-processamento-saída

Dados são considerados separadamente das funções

Funções são ativas e têm comportamento

Dados são repositórios passivos de informação afetados por funções

Visão de modelo baseada em um modelo de entrada-processamento-saída

Dados são considerados separadamente das funções

Funções são ativas e têm comportamento

Dados são repositórios passivos de informação afetados por funções

Page 25: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Paradigma Orientado a ObjetosParadigma Orientado a Objetos

Sugere a diminuição da distância entre a modelagem computacional e o mundo real.

Surgiu na tentativa de solucionar problemas existentes no desenvolvimento de softwares complexos e confiáveis com baixo custo de desenvolvimento e manutenção.

Sugere a diminuição da distância entre a modelagem computacional e o mundo real.

Surgiu na tentativa de solucionar problemas existentes no desenvolvimento de softwares complexos e confiáveis com baixo custo de desenvolvimento e manutenção.

Page 26: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Paradigma Orientado a ObjetosParadigma Orientado a Objetos

Permite que objetos do mundo real sejam mapeados em Objetos no computador e pressupõe que o mundo é composto por objetos.

Os sistemas são modelados como um número de objetos que se interagem.

Permite que objetos do mundo real sejam mapeados em Objetos no computador e pressupõe que o mundo é composto por objetos.

Os sistemas são modelados como um número de objetos que se interagem.

Page 27: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Paradigma ProcedimentalParadigma Procedimental

Processamento

Salário do Pedro

Salário da Maria

Dependentes da Maria

Adiantamento do João

Férias do

Antônio

Prêmio da

Helena

Custo Total

Calcular a folha de Pagamento Calcular a folha de Pagamento

Page 28: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Paradigma Orientado a ObjetosParadigma Orientado a Objetos

“Fulano, quanto eu te

devo?”Custo total =

Fulanos

Calcular a folha de Pagamento Calcular a folha de Pagamento

Page 29: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Paradigma Orientado a ObjetosParadigma Orientado a Objetos

Para um sistema ser orientado a objetos deve ter pelo menos (Coad & Yourdon, 1990):ObjetosClasses HerançaMensagens

Para um sistema ser orientado a objetos deve ter pelo menos (Coad & Yourdon, 1990):ObjetosClasses HerançaMensagens

Page 30: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Por que utilizar Orientação a Objetos?Por que utilizar Orientação a Objetos?

Alta reutilização de código Redução no tempo de manutenção Redução de complexidade através

da melhoria do grau de abstração Aumento de qualidade e

produtividade, pois oferece maiores facilidades ao desenvolvedor

Aceitação comercial crescente

Alta reutilização de código Redução no tempo de manutenção Redução de complexidade através

da melhoria do grau de abstração Aumento de qualidade e

produtividade, pois oferece maiores facilidades ao desenvolvedor

Aceitação comercial crescente

Page 31: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Técnicas de Desenvolvimento de Sistemas Orientados a Objetos

Técnicas de Desenvolvimento de Sistemas Orientados a Objetos Técnicas de “solução criativa de

problemas”Busca de outras experiências e

soluções para problemas semelhantes

Divisão e conquistaRefinamentos sucessivosDiversidade

Técnicas de “solução criativa de problemas”Busca de outras experiências e

soluções para problemas semelhantes

Divisão e conquistaRefinamentos sucessivosDiversidade

Page 32: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Busca de outras experiências e soluções para problemas semelhantesRefinamento, composição e

instanciação de objetos e classes existentes

Busca de outras experiências e soluções para problemas semelhantesRefinamento, composição e

instanciação de objetos e classes existentes

Técnicas de Desenvolvimento de Sistemas Orientados a Objetos

Técnicas de Desenvolvimento de Sistemas Orientados a Objetos

Page 33: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Divisão e conquistaRedução de um problema

complexo em problemas menores

Divisão em classes menores

Divisão e conquistaRedução de um problema

complexo em problemas menores

Divisão em classes menores

Técnicas de Desenvolvimento de Sistemas Orientados a Objetos

Técnicas de Desenvolvimento de Sistemas Orientados a Objetos

Page 34: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

Refinamentos sucessivos Desenvolvimento em versões

Diversidade Não se compromete com a

solução inicial Durante o desenvolvimento

podem surgir novas informações que indiquem novas alternativas

Refinamentos sucessivos Desenvolvimento em versões

Diversidade Não se compromete com a

solução inicial Durante o desenvolvimento

podem surgir novas informações que indiquem novas alternativas

Técnicas de Desenvolvimento de Sistemas Orientados a Objetos

Técnicas de Desenvolvimento de Sistemas Orientados a Objetos

Page 35: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.

BibliografiaBibliografia

Object-Oriented Methods: A FundationJames Martin & James J. OdellPrentice Hall, 1995.

Análise Orientada a ObjetosPeter Coad & Edward Yourdon Editora Campus, 1990

Notas de Aula

Object-Oriented Methods: A FundationJames Martin & James J. OdellPrentice Hall, 1995.

Análise Orientada a ObjetosPeter Coad & Edward Yourdon Editora Campus, 1990

Notas de Aula