Conceitos. Conceitos Básicos do Paradigma de Orientação a Objetos. Conceitos: Objeto. duas pessoas (objetos) o comportamento desta pessoa

Documentos relacionados
Programação Orientada a Objetos SANTOS, Rafael

Herança. Prof. Leonardo Barreto Campos 1

MDS II Aula 04. Concepção Requisitos Diagrama de Casos de Uso (Use Cases)

Modelo Entidade Relacionamento (MER) Professor : Esp. Hiarly Alves

Arquitecturas de Software Enunciado de Projecto

Algoritmos e Programação II

Análise de Sistemas 3º Bimestre (material 2)

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação de Computadores - I. Profª Beatriz Profº Israel

Revisão Diagrama de Caso de Uso. Rodolfo Adamshuk Silva 30/08/2013

Java na Prática. Célio Silva Aula 3

ÁREA DO PROFESSOR (TUTOR)

Manual de Operações do Painel Administrativo do site

Para entender o conceito de objetos em programação devemos fazer uma analogia com o mundo real:

RELATÓRIO DEFINIÇÃO. Resumo

Programação Orientada a Objetos (DPADF 0063)

Fundamentos de Bancos de Dados 3 a Prova Caderno de Questões

WEBDESK SURFLOG. MANUAL DO USUÁRIO VERSÃO 2.0.1

Desenvolvimento de Software

Engenharia de Software II

Análise e Projeto Orientado a Objetos. Nazareno Andrade Baseado no material dos profs. Hyggo Almeida e Jacques Sauvé

Desenvolvimento Web TCC Turma A-1

Programação Orientada a Objetos. Professor Leonardo Cabral - Larback

1.0 Informações de hardware

Arquitetura de Aplicações J2EE. Jorge Fernandes Outubro de 2003

Lógica de Programação. Profas. Simone Campos Camargo e Janete Ferreira Biazotto

Inteligência Artificial

Formas de Pagamento Resumida Vendas Vendedor Vendas Vendedor Resumido Vendas Vendedor Caixa Vendas por Artigos...

Modelagem De Sistemas

Métricas de Software

Introdução à orientação a objetos

Leiaute de arquivos XML para Carta-Circular 3254

Cadeira de Tecnologias de Informação. Ano lectivo 2009/2010. Sites dinâmicos. Com Expression Web TI2009/10 EWD_1. Filipa Pires da Silva (2009)

Conhecendo Seu Telefone

REITORA Ulrika Arns. VICE-REITOR Almir Barros da Silva Santos Neto. DIRETOR DO NTIC Leonardo Bidese de Pinho

Solicitação de Autorização Intercâmbio

Manual SAGe Versão 1.2

Técnico em Radiologia. Prof.: Edson Wanderley

Álgebra Linear Aplicada à Compressão de Imagens. Universidade de Lisboa Instituto Superior Técnico. Mestrado em Engenharia Aeroespacial

aplicação arquivo Condições Gerais de Utilização

TCI Sistemas Integrados

Princípios e Conceitos de Desenho de Software. Projeto de Sistemas de Software Prof. Rodrigo Ribeiro

Assessoria Técnica de Tecnologia da Informação - ATTI. Projeto de Informatização da. Secretaria Municipal de Saúde do. Município de São Paulo

Análise Qualitativa no Gerenciamento de Riscos de Projetos

II Semana de Ciência e Tecnologia do IFMG campus Bambuí II Jornada Científica 19 a 23 de Outubro de 2009

NOVA VERSÃO SAFE DOC MANUAL

Análise de Requisitos

Introdução. Modelo de um Sistema de Comunicação

Informática I. Aula Aula 19-20/06/06 1

Conceito Básicos de Programação com Objetos Distribuídos. Programação com Objetos Distribuídos (C. Geyer) Conceitos de POD 1

MODELAGENS. Modelagem Estratégica

Administração Portal Controle Público

AULA 1 INTRODUÇÃO A BANCO DE DADOS E VISÃO GERAL DO SQL CONCEITUANDO BANCO DE DADOS MODELO RELACIONAL

ENG1000 Introdução à Engenharia

Unidade: Ferramentas de configuração Tópico: Tabelas e campos definidos pelo usuário

,QVWDODomR. Dê um duplo clique para abrir o Meu Computador. Dê um duplo clique para abrir o Painel de Controle. Para Adicionar ou Remover programas

Roteiro... Sistemas Distribuídos Aula 4. Troca de mensagens. Comunicação entre processos. Conceitos de SD, vantagens e desvantagens

Diagrama de Componentes e Implantação

Sistemas de Informação

a) O Word é um editor de TEXTOS. Com ele é possível digitar cartas, currículos e trabalhos escolares.

Manual do usuário Certificado Digital

3. PARADIGMA ORIENTADO A OBJETOS

REITORA Ulrika Arns. VICE-REITOR Almir Barros da Silva Santos Neto. DIRETOR DO NTIC Leonardo Bidese de Pinho

ADMINISTRAÇÃO DE BANCOS DE DADOS MÓDULO 8

Programação Orientada a Objetos

e Autorizador Odontológico

MANUAL e-sic GUIA DO SERVIDOR. Governo do Estado do Piauí

Portal de Sistemas Integrados. Manual do Usuário. Versão: 1.0

Tutorial do aluno Ambiente Virtual de Aprendizagem (AVA) Rede e-tec Brasil

JAVA Express com Lógica. Subtítulo

Transformação da força de trabalho

Introdução. Aula 02. Estrutura de Dados II. UFS - DComp Adaptados a partir do material da Profa. Kenia Kodel Cox

Manual Mobuss Construção - Móvel

O que é um banco de dados? Banco de Dados. Banco de dados

Bibliografia. Desenvolvimento Orientado a Objetos. Introdução. Bibliografia. O que você vê?

Aula 11: Desvios e Laços

Banco de Dados I Unidade 3: Projeto de BD Relacional. Cláudio Baptista

PLANIFICAÇÃO INTRODUÇÃO ÀS TECNOLOGIAS DE INFORMAÇÃO BLOCO I

VERSÃO RESPOSTAS PROVA DE MARKETING

Implementação de um serviço de correio eletrônico na Intranet do Pólo de Touros utilizando o ambiente SQUIRELMAIL e POSTFIX em um Servidor Linux

Prof. José Maurício S. Pinheiro - UGB

Aula 5. Uma partícula evolui na reta. A trajetória é uma função que dá a sua posição em função do tempo:

Os passos a seguir servirão de guia para utilização da funcionalidade Acordo Financeiro do TOTVS Gestão Financeira.

2.1. Incluir uma Proposta de Concessão de Diárias e Passagens PCDP com diárias e passagens.

Hardware: Componentes Básicos. Sistema de Computador Pessoal. Anatomia de um Teclado. Estrutura do Computador. Arquitetura e Organização

Experiência 04: Comandos para testes e identificação do computador na rede.

ENGENHARIA DE SOFTWARE

Sumário. CEAD - FACEL Manual do Aluno, 02

Plano de Curso Tecnologia em rolo compactador

HEMOVIDA (CICLO DO SANGUE - Gerenciamento de estoque para grandes eventos)

O que é Comunicação?

Processo de Gerenciamento do Catálogo de Serviços de TIC

Obtenção Experimental de Modelos Matemáticos Através da Reposta ao Degrau

Minuta Circular Normativa

Transcrição:

Conceitos Conceitos Básicos do Paradigma de Orientação a Objetos Karin Becker Faculdade de Informática - PUCRS kbecker@inf.pucrs.br Objeto: módulo construtor básico sistema é uma coleção de objetos cooperantes que se comunicam para atingir um objetivo Objeto: visão unificada dos aspectos estáticos e dinâmicos estrutura (estado): dados comportamento: operações cooperação entre objetos é do tipo cliente-servidor cada objeto põe à disposição da comunidade um conjunto de serviços» servidor: serviços objetos requisitam serviços a outros objetos» cliente: requisições princípio da terceirização Conceitos: Objeto duas pessoas (objetos) Objeto identidade:» imutável ao longo de toda vida do objeto» atribuído pelo sistema, inacessível, usado internamente estado (estrutura)» valores assumidos por propriedades em um dado momento» pode variar ao longo da vida do objeto comportamento» serviços (operações) que o objeto sabe realizar» alguns serviços resultam na alteração do estado do objeto unidade existente exclusivamente em tempo de execução este aqui e este outro identidades diferentes, desconhecidas externamente os estados desta pessoa o comportamento desta pessoa joão brabo camisa rosa bigode careca joão desconfiado terno bigode careca mesma identidade, estados diferentes (em tempos diferentes) trocar de roupa ir-ao-trabalho voltar-do-trabalho bater-na-mesa dialogar trocar-de-roupa ir-ao-barbeiro joão recebeu uma mensagem (requisição de serviço) joão trocou de roupa (prestou o serviço solicitado) o estado de joão alterou

Três janelas (objetos) Janela do powerpoint Comportamento da janela powerpoint Janela de um arquivo Janela de outro arquivo abrir fechar minimizar maximizar alterar tamanho incluir subjanela excluir subjanela etc identidades diferentes, desconhecidas externamente Comportamento da janela powerpoint Comportamento da janela powerpoint alterar tamanho Conceitos: Classe Representação de uma Classe: UML Classe descrição das características comuns a vários objetos estrutura» propriedades relevantes» atributos, variáveis comportamento» operações unidade de descrição e execução Funcionário nome datadmissão cartident saláriobase situacao bonus Nome da Classe Atributos todo objeto é instância de uma classe e são instâncias da classe PESSOA == têm o mesmo comportamento e estrutura carcularsalário() carcularirfonte() calculartemposerv() Operações

Conceitos: Abstração de Dados DESPERTADOR: interface Origem: Tipos Abstratos de Dados (ADT) abstração de dados define uma estrutura de dados através das operações que a manipulam INTERFACE PÚBLICA Exemplo: DESPERTADOR acertar hora mostra hora acertar hora despertar mostrar hora despertar Serviços à Disposição (Públicos) ativa alarme desliga alarme snooze Conceitos: Information Hidding DESPERTADOR: implementação (1) mascaramento (ocultamento) de informações Interface serviços que o objeto sabe oferecer (O QUÊ) operações público Implementação implementação da estrutura e do comportamento (COMO?)» variáveis» código para operações da interface (método)» operações internas (privadas) uma mesma interface pode ser implementada de várias maneiras! Hora Minuto Turno HoraD MinutoD TurnoD FlagAlarme CountSnooze faz barulho mostrar hora acertar hora despertar mostrar hora despertar ativar alarme desligar alarme snooze marca hora acertar hora Serviços Privados Serviços à Disposição (Públicos) Minuto := NovoMinuto Hora := NovaHora Turno := NovoTurno código DESPERTADOR: implementação (2) Conceitos: mensagem Hora HoraD FlagAlarme CountSnooze faz barulho mostrar hora acertar hora despertar mostrar hora despertar ativar alarme desligar alarme snooze acertar hora marca hora Hora:= 0; Hora := Hora + NovaHora*24 Hora := Hora + NovoMinuto*60 mensagem único meio de comunicação entre objetos requisição de um serviço analogia: chamada de subrotina mensagem receptor operação parâmetros (opcional) um objeto só responde às mensagens que ente operação definida na interface pública Serviços Privados

mensagens Conceitos: Mensagens Receptor operação argumentos mostrar hora é o receptor da mensagem que decide como respondê-la depe da classe do objeto receptor da mensagem depe da implementação dada à operação acertar hora (4, 32, pm) mostrar data? permite definir uma nova classe tomando outra existente como base define uma hierarquia de classes super-classe / subclasse subclasse herda todas as variáveis, operações e métodos (implementação) definidos em sua superclasse» direto: descritos diretamenta na superclasse» indireto (transitivo): herdado pela superclasse de seus ancentrais alterações podem ser feitas na subclasse» novas variáveis e operações» código para operações herdadas economia de descrição, facilidade de gerenciamento de estrutura/comportamento compartilhado, reuso Classe Relógio hora minuto mostrahora variável operação pública operação privada (novahora, novomin) hora := novahora; minuto:= novominuto; self mostrahora; Classe Relógio hora minuto mostrahora Classe Despertador subclasse de Relógio horad minutod Despertar mostrahoradespertar ativaalarme desligaalarme desperta herdado: despertador tem hora e minuto, mostra e acerta hora despertador tem novas características despertador modifica parte de comportamento herdado Classe Despertador subclasse de Relógio horad minutod Despertar mostrarhoradespertar ativaalarme desligaalarme desperta sobreescrita ( overriding ): substituição de código herdado (novahora, novomin) hora := novahora; minuto := novomin; self mostrahora; if hora = horad and minuto = minutod then self despertar;

Classe abstrata Classe abstrata possui operações sem implementação não foi concebida para gerar instâncias, e sim para ser reusada implementação de operações pode ser definida usando operações abstratas Classe Poligono_G corfundo posicao mover Classe Circulo_G raio Classe Quadrado_G lado Classe Poligono_G corfundo posicao mover Classe Circulo_G raio Classe Quadrado_G lado return(3,14*raio**2) return(lado**2) mover(novaposicao) posicao := novaposicao; self ; Conceitos: Polimorfismo Conceitos: Ligação Dinâmica polimorfismo conceito de programação OO uma variável pode representar diferentes objetos linguagens tipadas impõem restrições à capacidade polimórfica ligação dinâmica quem enviou a mensagem não se preocupa em como o objeto responderá o objeto receptor sempre decide como responder à mensagem recebida em tempo de execução a resposta depe da classe do objeto receptor da mensagem umobjeto acertarhora umobjeto acertarhora Programação Orientada a Objetos Alguns mitos da OO mais ou menos fiel aos conceitos básicos idiossincrasias tipadas vs. não tipadas puras vs. híbridas herança simples vs. múltipla Exemplos smalltalk» pura, não tipada, herança simples Java» pura, tipada (não parametrizada), herança simples * C++» híbrida, tipada (parametrizada), herança múltipla Pascal OO, Eiffel, etc... usei uma linguagem (notação, metodologia) OO, e meu programa é orientado a objetos sistemas OO são mais modulares e fáceis de manter a grande vantagem da OO é reuso quando se usa OO, é fácil reusar minhas classes são reusáveis a base da reusabilidade é herança

Uma visão crítica... OO não é sinônimo de bom nenhuma tecnologia por si só garante contra o mau uso que pode ser feito dela reuso não vem de graça reusar tem que ser mais fácil e rápido que desenvolver do zero fazer bons sistemas OO é difícil: desenvolver componentes reutilizáveis é mais ainda!