O Paradigma Orientado a Objetos

Documentos relacionados
Introdução à Orientação a Objetos

Banco de Dados Modelagem Conceitual

Capítulo 2. Orientação a Objetos

Introdução Diagrama de Classes Diagrama de Seqüência Diagrama de Atividades. Diagramas UML. Classe, Seqüência e Atividades. Marcio E. F.

Programação Orientada a Objetos 2 Flávio de Oliveira Silva, M.Sc.

6 Polimorfismo. Desenvolvimento OO com Java. Vítor E. Silva Souza ~ vitorsouza

Orientação a Objetos (OO) LPG II - Java. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

Introdução à Orientação a Objetos

Linguagem de Programação I Apresentação da Disciplina

Fundamentos de Programação

Modelo do Mundo Real. Abstração. Interpretação

2. Introdução à Programação e Análise. Orientada a Objetos

Conceitos de Programação Orientada a Objetos

Orientação a Objetos (OO) Java Avançado Revisão do Paradigma de. Orientação a Objetos (OO) Programação Orientada a Objetos. Programação Procedimental

SEMINÁRIOS INTEGRADOS EM ADS PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

Orientação a objetos. Objetos ou Instâncias I

2. Introdução à Programação e Análise. Orientada a Objetos. Programação Orientada a Objetos em C O que é a Programação Orientada a Objetos?

Algoritmos e Programação II

POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos. POO Paradigma Orientado a Objetos

Prof: Ricardo Quintão Site:

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 15 PROFª BRUNO CALEGARO

Diagramas de Classes e O Paradigma da Orientação a Objetos usando UML. Prof. Ricardo A. Ramos

Notas de Aula 03: Introdução a Orientação a Objetos e a UML

Introdução à Modelagem Conceitual 1. Conceitos Básicos

Linguagem de Programação I

Programação Orientada a Objetos

A modelagem é tida como a parte central de todas as atividades para a construção de um bom sistema, com ela podemos:

Laboratório de programação II

ACH2002. Orientação a Objetos

Introdução ao Java. Prof. Herbert Rausch Fernandes

Alguns Exercícios Resolvidos

Programação Orientada a Objetos

Aula 15 Modelagem de Classes de Análise. Análise de Sistemas Prof. Filipe Arantes Fernandes

Programação Java (nível intermediário) 4. Polimorfismo

MODELAGEM DE SISTEMAS. Introdução a Computação e Engenharia de Software. Profa. Cynthia Pinheiro

Modelagem Orientada a Objeto

Programação Orientada a Objetos

RUP Unified Process. Profª Jocelma Rios

Orientação a Objetos (OO)

Requisitos de sistemas

1 Introdução. 1.1 Teoria dos Sistemas 23/4/2010

Programação Orientada a Objetos. Prof. MsC Sílvio Bacalá Júnior

Análise Orientada a Objetos. Análise Orientada a Objetos; O Paradigma de Objetos; A UML.

Engenharia de Software. Aula 10 Representação dos Conceitos de Orientação a Objetos. Prof. Me. Rogério Ferreira

Televisao tamanho tela emitirsom. conectarperifericos

Como Modelar com UML 2

Conceitos de Orientação a Objetos

Visões Arquiteturais. Visões Arquiteturais

UNIVERSIDADE PAULISTA - UNIP ICET INSTITUTO DE CIÊNCIAS EXATAS E TECNOLÓGIA

SEMINÁRIOS INTEGRADOS EM SISTEMAS DE INFORMAÇÃO. Luiz Leão

UNIVERSIDADE FEDERAL DE SANTA MARIA CENTRO DE TECNOLOGIA AULA 12 PROFª BRUNO CALEGARO

15/04/2013. Outro Diagrama de Classes. Primeiro Diagrama de Classes. Diagrama de Classes. Atributos. Eduardo Figueiredo

Questões Comentadas APOO, OO, Coesão e Acoplamento

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

Daniel Wildt

Aula 2 POO 1 Introdução. Profa. Elaine Faria UFU

Classe Abstrata e Interface

1-Para atender as necessidades de informação de uma biblioteca universitária foi

PROJETO ARQUITETURAL PARTE II: PADRÕES DE PROJETO. Projeto de Programas PPR0001

Projeto Orientado a Objetos

Linguagens de Programação 10 Avaliação de Linguagens

Capítulo 5 Modelação do Sistema 1

Engenharia de Software Projeto de software

Desenvolvimento Web TCC Turma A-1

Introdução. Lições da década de 80. Realidade atual

Programação Orientada a Objetos Introdução a POO Modelo de Objetos Técnico em Informática. Prof. Marcos André Pisching, M.Sc.

Diagramas de Classes. ESII Profª. Andressa Falcade URI Santiago

Programação Orientada a Objetos. Professor: André Luis Meneses Silva br.geocities.com/programacao2ufs

O PARADIGMA ORIENTADO POR OBJETOS

Análise e Projeto de Sistemas

Sumário. BD Orientado a Objetos

Complexidade do Software

Princípios de Análise e Projeto Orientados a Objetos com UML

Introdução. Parte 01. Desenvolvimento de Programação Orientada a Objetos. Prof. Pedro Neto

Paradigmas de Programação

Diagrama de Classes. Régis Patrick Silva Simão. Régis Simão Diagrama de Classes 1/42

15/04/2013. Pensar Orientado a Objetos. Projeto Orientado a Objetos. Características de Objetos. Classe de Objetos. Comunicação entre Objetos

ENGENHARIA DE SOFTWARE. Introdução

Engenharia de Software e Gerência de Projetos Prof. Esp. André Luís Belini Bacharel em Sistemas de Informações MBA em Gestão Estratégica de Negócios

BANCO DE DADOS I. Prof. Luiz Antônio Vivacqua C. Meyer

Programação em Comunicações. Programação Orientada por Objectos. Ademar Aguiar.

Prof. Esp. Fabiano Taguchi

Introdução. à UML. Histórico (cont.) Histórico Definição Benefícios Notação Diagrama de Classes Diagramas de Interação Conclusões Revisão

Engenharia de Software

1 INTRODUÇÃO À ORIENTAÇÃO A OBJETOS

Orientação a Objetos Parte I. Introdução a POO (Programação Orientada a Objetos)

Linguagens de Programação Aula 12

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos

Herança e Polimorfismo

Linguagem de Programação II Programação Orientada a Objetos. Orientação a Objetos

Engenharia de Software II e III - Material para estudo Diagrama de Classe

Introdução. Programação Orientada a Objetos (POO) João Paulo Q. dos Santos

Modelagem de Sistemas. Análise de Requisitos. Modelagem

Levantamento, Análise e Gestão Requisitos. Aula 03

Plano de Trabalho Docente Ensino Técnico

Curso teórico: Orientação a Objetos. Matemática computacional Marcos Aurelio Wozhiak Jr webzhiak.com.br

Linguagem de Programação III

Modelagem de Classes. Mestrado em Engenharia de Produção e Sistemas Computacionais. Profa. Adriana Pereira de Medeiros

Transcrição:

O Paradigma Orientado a Objetos Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.br/ ~ vitorsouza Departamento de Informática Centro Tecnológico Universidade Federal do Espírito Santo Este obra foi licenciada sob uma Licença Creative Commons Atribuição 3.0 Não Adaptada.

Contexto: desenvolvimento de sistemas Problema Gestão de serviços de uma biblioteca. Correspondência Correteza Descrição do problema Descrição da solução Verificação Validação Toda solicitação de empréstimo deve ser atendida. Processo de check-out de livros da biblioteca. Sistema Sistema de check-out de livros da biblioteca. Maio 2013 O Paradigma Orientado a Objetos 2

Modelagem e o gap semân=co Problema a ser resolvido Modelagem Modelo de Solução Domínio do Problema (Mundo Real) Gap Semântico Domínio da Solução (Mundo Computacional) Maio 2013 O Paradigma Orientado a Objetos 3

O que é o gap semân=co? Distância entre o problema no mundo real e o modelo abstrato construído para o mundo computacional; Quanto menor, mais rápida será a construção da solução; Diminuir o gap semân=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 padrão; Um conjunto de ideias, uma base filosófica. Um paradigma de desenvolvimento agrupa métodos e técnicas que seguem um mesmo conjunto de princípios; Dois dos mais conhecidos são: Desenvolvimento Estruturado; Orientação a Objetos (OO). Paradigma é a representação de um padrão a ser seguido. É um pressuposto filosófico, matriz, ou seja, uma teoria, um conhecimento que origina o estudo de um campo científico; uma realização científica com métodos e valores que são concebidos como modelo; uma referência inicial como base de modelo para estudos e pesquisas. (http://pt.wikipedia.org/wiki/paradigma) Maio 2013 O Paradigma Orientado a Objetos 5

Paradigmas de desenvolvimento Estruturado: Modelo entrada processamento saída; Dados separados das funções; Visto na disciplina de Programação II / PBC. Orientado a Objetos (OO): O mundo é composto por objetos; Objetos combinam dados e funções; Conceitos do problema são modelados como objetos que são associados e interagem entre si. Maio 2013 O Paradigma Orientado a Objetos 6

Paradigma OO vs. estruturado Mais próximo do mundo real. A lógica é encapsulada em objetos. Orientado a Objetos Departamento Funcionário Funcionário Nome Nome Ramal Ramal Sistema de Gerência Estruturado / Procedural Registrar Tarefa Ver Tarefas gerente funcionario Tarefa Descrição Prazo Análise de Sistemas 7 Maio 2013 O Paradigma Orientado a Objetos 7

Desvantagens do paradigma estruturado O gap semân=co é maior; Frequentemente gera sistemas dicceis de serem man=dos: As funções tem que conhecer a estrutura dos dados; Mudanças na estrutura dos dados acarreta alteração em todas as funções relacionadas. Por estes motivos, o paradigma orientado a objetos vem tomando o espaço que antes era dominado pelo paradigma estruturado. Maio 2013 O Paradigma Orientado a Objetos 8

Beneccios da orientação a objetos Capacidade de enfrentar novos domínios; Melhoria da interação analistas x especialistas; Aumento da consistência interna da análise; Alterabilidade, legibilidade e extensibilidade; Apoio à reu=lização. Orientação a objetos não é mágica e nem a tábua de salvação do desenvolvimento. É preciso aplicá-la com disciplina e em conjunto com outras técnicas da Engenharia de Software. O foco deste curso é na programação OO. No entanto, é preciso entender os conceitos por trás do paradigma e aprender a modelar soluções OO. Você também usará isso no futuro! Maio 2013 O Paradigma Orientado a Objetos 9

Filosofia O mundo é composto por objetos ; Mundo Real (Conceitos) à Modelo de Solução (Modelagem OO) à Código de Máquina (Programação OO) OO tenta gerenciar a complexidade dos problemas do mundo real abstraindo o conhecimento relevante e encapsulando- o em objetos. Um sistema construído usando um método orientado a objetos é aquele cujos componentes são partes encapsuladas de dados e funções, 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 Maio 2013 O Paradigma Orientado a Objetos 10

Princípios fundamentais Auxiliam a administrar a complexidade; Guiam toda a tarefa de modelagem. Abstração Encapsulamento Modularidade Hierarquia Maio 2013 O Paradigma Orientado a Objetos 11

Abstração Modelos mentais : visão simplificada do mundo construída por cada um em cada situação; Abstrair consiste em ignorar aspectos irrelevantes e concentrar nos principais. Maio 2013 O Paradigma Orientado a Objetos 12

Abstração Abstração de Dados: Um =po é definido por suas operações; Ex.: Um =po pilha é definido por suas operações empilhar e desempilhar. Abstração de Procedimentos: Uma operação com efeito bem definido pode ser tratada como atômica, mesmo que ela faça uso de outras operações de mais baixo nível; calcularsalarioliquido: definida 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 = implementação. Maio 2013 O Paradigma Orientado a Objetos 14

Encapsulamento Complemento da abstração: Abstração enfoca o comportamento observável de um objeto; Encapsulamento enfoca a implementação que origina este comportamento. Promove maior estabilidade: Clientes do objeto só conhecem sua interface; Podemos alterar a implementação de uma operação sem afetar o restante do sistema. Maio 2013 O Paradigma Orientado a Objetos 15

Modularidade Decomposição do sistema em módulos: Coesos (baixo acoplamento); Autônomos; De interface simples e coerente. Fundamental para o reuso e extensão. Maio 2013 O Paradigma Orientado a Objetos 16

Hierarquia É uma forma de arrumar as abstrações e simplificar o entendimento do problema; Também promovem o reuso; Sinergia para administrar a complexidade: Abstração auxilia a iden=ficar os conceitos relevantes do mundo real; Encapsulamento oculta a visão interna das abstrações iden=ficadas; Modularidade nos dá um meio de agrupar logicamente abstrações relacionadas; Por fim, abstrações formam hierarquias. Maio 2013 O Paradigma Orientado a Objetos 17

Conceitos básicos Classes Instâncias Objetos Estruturação Associação Métodos Mensagens Composição Herança Maio 2013 O Paradigma Orientado a Objetos 18

Objetos Um objeto é uma en=dade que incorpora uma abstração relevante no contexto de uma aplicação ; Podem ser coisas abstratas (ex.: uma reserva de passagem aérea) ou concretas (ex.: um documento). Maio 2013 O Paradigma Orientado a Objetos 19

Objetos caracterís=cas principais Estado (estrutura): conjunto de suas propriedades e seus valores correntes; Comportamento: conjunto de serviços (operações) que o objeto provê; Iden=dade: iden=ficador único que diferencia cada objeto, mesmo que tenham o mesmo estado e comportamento. 15 45 70 Maio 2013 O Paradigma Orientado a Objetos 20

Classes Uma classe descreve um conjunto de objetos com as mesmas propriedades, o mesmo comportamento, os mesmos relacionamentos com outros objetos e a mesma semân=ca; Similar ao conceito de =po. Casa Cor; Número; Abrir Porta; Fechar Porta; Arquiteto. # 15 45 70 Maio 2013 O Paradigma Orientado a Objetos 21

Classes e instâncias Objeto = Instância de classe; Paradigma OO norteia o desenvolvimento por meio de classificação de objetos: Modelamos classes, e não objetos; Objetos são en=dades reais executam algum papel no sistema; Classes são abstrações capturam a estrutura e comportamento comum a um conjunto de objetos. Maio 2013 O Paradigma Orientado a Objetos 22

Mecanismos de estruturação Objetos relacionam- se uns com os outros; É preciso modelar esta complexidade e estruturar as classes; Mecanismos propostos: Associação; Composição; Herança. Maio 2013 O Paradigma Orientado a Objetos 23

Ligações e associações Ligação: conexão entre objetos; Associação: conexão entre classes que representa a existência de ligações; Uma associação descreve um conjunto de potenciais ligações da mesma maneira que uma classe descreve um conjunto de potenciais objetos [Rumbaugh]. Habitantes Cão de Guarda 24 Classe: Pessoa Classe: Casa Classe: Cachorro Maio 2013 O Paradigma Orientado a Objetos 24

Ligações e associações Em UML... Maio 2013 O Paradigma Orientado a Objetos 25

Composição e agregação Formas especiais de ligação que modelam relacionamentos todo- parte; Objetos complexos agregam ou são compostos de objetos mais simples; Composição: A parte só pode pertencer a um todo (por vez). Ex.: uma aula de uma disciplina, um motor de um carro; A parte pode não pertencer a um todo (ex.: motor); Agregação: A parte pode ser compar=lhada com vários todos. Ex.: uma disciplina de um (ou mais) cursos de grad. Maio 2013 O Paradigma Orientado a Objetos 26

Generalização e especialização Generalização: quando classes têm semelhanças podemos definir uma classe mais geral; Especialização: muitas vezes um conceito pode ser refinado, adicionando- se novas caracterís=cas. Estudante Nome Universitario EstudanteEnsinoMedio Matrícula Série EstudanteGraduacao Curso EstudanteMestrado Orientador Maio 2013 O Paradigma Orientado a Objetos 27

Herança Generalização e especialização são úteis para estruturação do sistema; São formadas hierarquias de classes: Filhos (ou subclasses) herdam estrutura e comportamento dos pais (ou superclasses) e demais ancestrais, de forma indireta. A herança possibilita: Reu=lização; Captura explícita de caracterís=cas comuns; Definição incremental de classes. Maio 2013 O Paradigma Orientado a Objetos 28

Cuidados com o uso de herança Semân=ca da herança: é um =po de ; é uma instância indireta de ; Ex.: Universitário é um =po de Estudante. Se a subclasse precisa cancelar caracterís=cas da superclasse, há algo errado; Herança pode se tornar um vício! Maio 2013 O Paradigma Orientado a Objetos 29

Herança múl=pla Atenção à redundância! Maio 2013 O Paradigma Orientado a Objetos 30

Mensagens e métodos As operações (serviços) que um objeto oferece são chamadas de métodos; Para solicitar um serviço um objeto (cliente) envia uma mensagem a outro. Calcular IR (renda, descontos) Objeto: Contador R$ 350,00 Objeto: Calculadora Maio 2013 O Paradigma Orientado a Objetos 31

Mensagens e métodos Encapsulamento: não é permi=do acessar diretamente as propriedades de um objeto, é preciso operar por meio de métodos (troca de mensagens); Abstração: a complexidade de um objeto é escondida por trás de suas operações; Toda funcionalidade do sistema é realizada pela troca de mensagem entre objetos. Maio 2013 O Paradigma Orientado a Objetos 32

Conceitos avançados Classes Abstratas Operações Abstratas Polimorfismo Ligação Dinâmica Sobrecarga Sobrescrita Persistência Maio 2013 O Paradigma Orientado a Objetos 33

Classes abstratas Classes abstratas não podem ser instanciadas; Usadas para organizar caracterís=cas comuns a diversas subclasses; Desenvolvida para ser herdada. Não possui instâncias diretas, só indiretas. Veículo Andar ()? Carro Andar () Bicicleta Andar () Maio 2013 O Paradigma Orientado a Objetos 34

Operações abstratas Classes abstratas podem definir métodos sem implementação, chamados abstratos; Subclasses concretas são obrigadas a implementá- lo; Classes concretas não podem ter métodos abstratos; Classes abstratas podem ter métodos concretos. Interface = classe abstrata que só possui operações abstratas. Maio 2013 O Paradigma Orientado a Objetos 35

Sobrecarga e sobrescrita Sobrecarga: operações dis=ntas com o mesmo nome; Sobrescrita: subclasse define nova implementação para operação definida na superclasse. Calculadora Calcular IR (renda, descontos) Calculadora Simplificada. Calcular IR (renda) Calcular IR (renda, descontos) Análise de Sistemas 36 Maio 2013 O Paradigma Orientado a Objetos 36

Polimorfismo O objeto emissor não 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 implementação certa. É uma forma de sobrescrita, mas todas as operações mantém a mesma semân=ca em toda a hierarquia. Maio 2013 O Paradigma Orientado a Objetos 37

Polimorfismo Habilidade de tomar várias formas. desenhar () Forma desenhar () Maio 2013 O Paradigma Orientado a Objetos 38

Ligação dinâmica Quando chamamos uma função, esta deve estar ligada ao código que a implementa; Ligação está=ca = feita em tempo de compilação; Ligação dinâmica ou tardia = feita em tempo de execução. Necessário por nem sempre sabermos a classe verdadeira de um objeto; É a base para o polimorfismo. Maio 2013 O Paradigma Orientado a Objetos 39

Persistência Capacidade do objeto de transcender o tempo e o espaço; Armazenamento em banco de dados; Transmissão pela rede. Maio 2013 O Paradigma Orientado a Objetos 40

h"p://nemo.inf.ufes.br/ Maio 2013 O Paradigma Orientado a Objetos 41