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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/1.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/2.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/3.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/4.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/5.jpg)
ObjetoObjeto
CACHORRO
CASA
![Page 6: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/6.jpg)
ObjetoObjeto
ObjetoObjeto
==
AtributosAtributos
+ +
MétodosMétodos
+ +
EncapsulamentEncapsulamentoo
![Page 7: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/7.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/8.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/9.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/10.jpg)
ClasseClasse
Objeto 1Objeto 1
Objeto 2Objeto 2
ClasseClasseAutomovelAutomovel
numeroPortasnumeroPortascorcorfabricantefabricanteanoanoplacaplaca
![Page 11: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/11.jpg)
ClasseClasse
ClasseClassePessoaPessoa
classe Pessoa
objeto Maria objeto Pedro
nomenomeidadeidadealturaalturapesopeso
![Page 12: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/12.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/13.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/14.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/15.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/16.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/17.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/18.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/19.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/20.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/21.jpg)
EncapsulamentoEncapsulamento
Avião
Velocidade
AltitudeObter Velocidade
Obter Altitude
AumentarVelocidade
![Page 22: Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/22.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/23.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/24.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/25.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/26.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/27.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/28.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/29.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/30.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/31.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/32.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/33.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/34.jpg)
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.](https://reader036.fdocumentos.tips/reader036/viewer/2022062418/552fc0f8497959413d8b534f/html5/thumbnails/35.jpg)
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