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.
Desenvolvimento de aplicativos Orientados a
Objetos:Definição e
Características
Desenvolvimento de aplicativos Orientados a
Objetos:Definição e
CaracterísticasTHIAGO IDEALITHIAGO 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
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
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
ObjetoObjeto
CACHORRO
CASA
ObjetoObjeto
ObjetoObjeto
==
AtributosAtributos
+ +
MétodosMétodos
+ +
EncapsulamentEncapsulamentoo
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
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...
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.
ClasseClasse
Objeto 1Objeto 1
Objeto 2Objeto 2
ClasseClasseAutomovelAutomovel
numeroPortasnumeroPortascorcorfabricantefabricanteanoanoplacaplaca
ClasseClasse
ClasseClassePessoaPessoa
classe Pessoa
objeto Maria objeto Pedro
nomenomeidadeidadealturaalturapesopeso
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.
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.
AbstraçãoAbstração
“depende do ponto de vista”
“depende do ponto de vista”
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.
Herança ou EspecializaçãoHerança ou Especialização
Pode ser:Simples
Pode ser:Simples
Pessoa
Jardineiro Arquiteto Diretor de
Informática
Ortopedista
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
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)
Agregação ou Todo-ParteAgregação ou Todo-Parte
TODO
PARTES
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
EncapsulamentoEncapsulamento
Avião
Velocidade
AltitudeObter Velocidade
Obter Altitude
AumentarVelocidade
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 )
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
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
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.
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.
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
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
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
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
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
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
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
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
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