Paradigma Orientado a Objetos



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

ANÁLISE ORIENTADA À OBJETO Conceitos do Paradigma de Orientação a Objetos

Técnicas de Programação Avançada TCC Profs.: Anselmo Montenegro Conteúdo: Introdução à Orientação a Objetos

Análise e Projeto Orientados por Objetos

2 Diagrama de Caso de Uso

Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 03 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO)

Modelo conceitual Aula 08

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

Orientação a Objetos com Java

UML Unified Modeling Language

Introdução à Orientação a Objetos. SSC Engenharia de Software I Profa. Dra. Elisa Yumi Nakagawa 2 o semestre de 2012

3. PARADIGMA ORIENTADO A OBJETOS

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

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos

Modelagem de Processos. Prof.: Fernando Ascani

Programação Orientada a Objetos

Orientação a Objetos

UML 01. Curso Superior de Tecnologia em Banco de Dados Disciplina: Projeto de Banco de Dados Relacional 1 Prof.: Fernando Hadad Zaidan

Análise Orientada a Objetos

Profº. Enrique Pimentel Leite de Oliveira

Técnicas de Programação II

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

INTRODUÇÃO À ORIENTAÇÃO A OBJETOS E UML

Programa do Módulo 2. Fundações do Modelo Objeto

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW

Programação com Objectos. Processamento de Dados I. 3. UML (Unified Modeling Language)

Herança. Alberto Costa Neto DComp - UFS

Modelagem OO com UML. Vítor E. Silva Souza ~ vitorsouza

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP

Introdução à Orientação a Objetos e UML

Modelos de Sistema by Pearson Education. Ian Sommerville 2006 Engenharia de Software, 8ª. edição. Capítulo 8 Slide 1.

3.1 Definições Uma classe é a descrição de um tipo de objeto.

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS

Introdução à Programação. Adair Santa Catarina Curso de Ciência da Computação Unioeste Campus de Cascavel PR

Orientação à Objetos. Aécio Costa

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

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

Métodos de Construção de Software: Orientação a Objetos. Mestrado em Ciência da Computação 2008 Profa. Itana Gimenes

UML Aspectos de projetos em Diagramas de classes

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

Orientação a Objetos

Orientação a Objeto e UML Questões 2014 Prof. Felipe Leite

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

Sumário. Uma visão mais clara da UML

Diagrama de Classes. Um diagrama de classes descreve a visão estática do sistema em termos de classes e relacionamentos entre as classes.

UML - Unified Modeling Language

Capítulo 11. Conceitos de Orientação a Objetos. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

Fundamentos de Banco de Dados e Modelagem de Dados

Programação Orientada a Objetos em Java

ANÁLISE E PROJETO ORIENTADO A OBJETOS. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais

Conteúdo. Disciplina: INF Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

FUNDAMENTOS DA ORIENTAÇÃO A OBJETOS- REVISÃO

Análise e Projeto Orientados por Objetos

2 Engenharia de Software

Tópicos em Engenharia de Computação

Engenharia de software para desenvolvimento com LabVIEW: Validação

Programação Orientada a Objeto

Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira

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

Programação Orientada a Objetos em Java. Herança

Engenharia de Requisitos Estudo de Caso

Engenharia de Software III

Orientação a Objetos. Thiago Messias Evangelista UESC Universidade Estadual de Santa Cruz Version LibreOffice Productivity Suite

Desenvolvimento estruturado versus orientado a objetos.

Introdução a Java. Hélder Nunes

Modelagem de Software

Algumas propriedades dos objetos:

Introdução ao Processo Unificado (PU)

Teste de Software. Ricardo Argenton Ramos Engenharia de Software I

Engenharia de Software I

Capítulo 14. Herança a e Polimorfismo. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra

LINGUAGENS E PARADIGMAS DE PROGRAMAÇÃO. Ciência da Computação IFSC Lages. Prof. Wilson Castello Branco Neto

Engenharia de Software Engenharia de Requisitos. Análise Orientada a Objetos Prof. Edison A M Morais prof@edison.eti.

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados:

A Linguagem de Modelagem Unificada (UML)

UML & Padrões. Aula 1 Apresentação. Profª Kelly Christine C. Silva

Prof. Claudio Passos Apresentação cedida pela Ceça Moraes

Análise e Projeto de Sistemas

UML 2. Guia Prático. Gilleanes T.A. Guedes. Novatec. Obra revisada e ampliada a partir do título Guia de Consulta Rápida UML 2

Unisant Anna Gestão Empresarial com ERP 2014 Modelagem de Sistemas - UML e MER

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos

Curso Técnico em Redes

Linguagens de Programação Aula 10

Disciplina Técnicas de Modelagem

Programação Orientada a Objetos e Java - Introdução. Carlos Lopes

ENGENHARIA DE SOFTWARE Prof. Ricardo Rodrigues Barcelar

Introdução à orientação a objetos. João Tito Almeida Vianna 25/05/2013

Uma Abordagem usando PU

Mapa Mental de Engenharia de Software - Diagramas UML

Esta dissertação apresentou duas abordagens para integração entre a linguagem Lua e o Common Language Runtime. O objetivo principal da integração foi

Herança e Polimorfismo de Inclusão

PROGRAMAÇÃO ORIENTADA A OBJETOS

Diagrama de Classes. Diagrama de Classes. Diagramas de Classe. POST Criando Diagramas de Classe. Como construir (2)

Wilson Moraes Góes. Novatec

Análise e Projeto Orientado a Objetos

Ricardo Roberto de Lima UNIPÊ APS-I. Históricos e Modelagem Orientada a Objetos

Transcrição:

Universidade Federal de Mato Grosso do Sul Sistemas de Informação - CPCX Paradigma Orientado a Objetos Professor Fernando Maia da Mota Slides gentilmente cedidos por Profa. Dra. Maria Istela Cagnin Machado UFMS/FACOM

Histórico de OO O termo OO surgiu no final da década de 60, quando dois cientistas dinamarqueses criaram a linguagem Simula (Simulation Language) 1967 - Linguagem de Programação Simula-67- conceitos de classe e herança O termo Programação Orientada a Objetos (POO) é introduzido com a linguagem Smalltalk (1983) FINS DOS ANOS 80 Paradigma de Orientação a Objetos abordagem poderosa e prática para o desenvolvimento de software 1983: disponibilização da primeira versão do C++ 1988: lançamento da linguagem Eiffel (primeira linguagem OO pura ) 1995: primeira versão da linguagem Java

Histórico de OO Na metade da década de 80, quando as linguagens orientadas a objetos começaram a fazer sucesso, surgiu a necessidade de processos para dar suporte ao desenvolvimento de software orientado a objetos.

Histórico de OO O surgimento da orientação a objetos exigiu a criação de processos que integrassem o processo de desenvolvimento e a linguagem de modelagem, por meio de técnicas e ferramentas adequadas

Histórico de OO Surgiram vários métodos de análise e projeto OO CRC (Class Responsability Collaborator, Beecke e Cunningham, 1989) OOA (Object Oriented Analysis, Coad e Yourdon, 1990) Booch (1991) OMT (Object Modeling Technique, Rumbaugh, 1991) Objectory (Jacobson, 1992) Fusion (Coleman, 1994)

Histórico de OO Depois de quase uma década do surgimento das linguagens OO, estabeleceu-se uma gama enorme de processos de desenvolvimento OO, o que passou a dificultar a comunicação entre analistas e projetistas de software A Linguagem de Modelagem Unificada (UML) surgiu com o intuito de criar uma notação completa e padronizada, que todos pudessem usar para documentar o desenvolvimento de software OO

Histórico de OO No entanto, a UML não apresenta um processo, mas apenas a notação. Por isso, alguns anos depois de sua criação, passaram a surgir propostas de processos de desenvolvimento com base na UML Exemplos: UP (Processo Unificado) e sua especialização pela Rational o RUP (Rational Unified Process)

O que é desenvolvimento orientado a objetos? Quatro grandes atividades: Análise: investigação do problema Projeto: solução lógica Construção: código Teste: verificação e validação do produto Ênfase na representação de objetos Conceito do Domínio (Biblioteca) Representação do conceito na análise Livro título emprestar public class Livro { private String titulo; public void emprestar(); }

Desenvolvimento OO X Estruturado Sistema de Biblioteca Análise/Projeto OO Decompor por objetos ou conceitos Análise/Projeto Estruturados Decompor por funções ou processos Sistema Catálogo Bibliotecário Livro Biblioteca Registrar empréstimos Relatar multas

Desenvolvimento OO X Estruturado Programa Procedimentos ou funções Dados Classes Atributos Operações Foco em Sistema (operações ou funções) Foco em Objeto (coisas)

Algumas Vantagens de OO reutilização: propiciada pelo encapsulamento dos métodos e dos dados nas classes Aumenta a produtividade de sistemas extensibilidade: facilidade de estender o software devido a duas razões: herança: novas classes são construídas a partir das que já existem baixo acoplamento: as classes formam uma estrutura fracamente acoplada o que facilita alterações manutenibilidade: a modularização natural em classes facilita a realização de alterações no software

Algumas Vantagens de OO melhora de comunicação entre desenvolvedores e clientes maior dedicação à fase de análise, preocupando-se com a essência do sistema Pode reduzir a quantidade de erros em fases posteriores mesma notação é utilizada desde a fase de análise até a implementação Frente a essas vantagens, a tecnologia de OO tem provado ser popular e eficaz

Linguagens OO Existem diversas linguagens OO, tais como: Smalltalk (1972) Ada (1983) Eiffel (~1985) Object Pascal (1986) Common Lisp (1986) C++ (~1989) Java

Linguagens orientadas a objetos "puras tudo nelas é tratado consistentemente como um objeto Exemplos: Smalltalk, Eiffel, Ruby Projetadas para OO, mas com alguns elementos procedimentais Exemplos: Java, Python Linguagens historicamente procedimentais, mas que foram estendidas com características OO Exemplos: C++, Fortran 2003, Perl 5.

Conceitos Básicos OO Orientação a Objetos (OO): abordagem de desenvolvimento que procura explorar nosso lado intuitivo Os objetos da computação são análogos aos objetos existentes no mundo real Os objetos trocam mensagens entre si Mensagens resultam na ativação de métodos, os quais realizam as ações necessárias Os objetos que compartilham uma mesma interface, ou seja, respondem as mesmas mensagens, são agrupados em classes

Conceitos Básicos - Abstração Abstração Mecanismo utilizado na análise de um domínio O analista observa a realidade e dela abstrai entidades, ações, etc consideradas essenciais para uma aplicação, excluindo todos os aspectos julgados irrelevantes O resultado de uma operação mental de abstração depende não tanto do fenômeno observado, mas do interesse do observador

Conceitos Básicos - Abstração Abstração: Exemplo 1 Propriedades: Modelo, Descrição, Custo, Preço Venda Propriedades: Tamanho, de Instruções, Velocidade Número Serviços (Operações): Comprar Vender Serviços (Operações): + * / - =

Conceitos Básicos - Abstração Abstração: Exemplo 2 aparência cor Correr Brincar peso tamanho Criar Comer

Conceitos Básicos - Objeto Objeto Tudo em OO é objeto Definição (mundo do software) Qualquer coisa, real ou abstrata, a respeito da qual armazenamos dados e métodos que os manipulam (Martin e Odell, 1995) Abstração de uma entidade do mundo real de modo que essa entidade possua várias características e serviços Exemplos: objeto casa, objeto cachorro

Raça cor pedigree CACHORRO CASA

Conceitos Básicos - Objeto Objeto é algo dinâmico É criado por alguém, tem uma vida e morre ou é morto por alguém Durante a execução do sistema, os objetos podem: ser construídos executar ações ser destruídos tornar inacessíveis

Conceitos Básicos - Objeto Resumindo: Objeto: pacote de informações (atributos) e a descrição de suas operações (métodos), de modo que elas são intrínsecas ao seu domínio e este é formado pelos elementos que o caracterizam Exemplo: Objeto: Pessoa Atributos: Nome, Data de Nascimento, Cor Métodos: Acordar, Comer, Beber Dormir

Conceitos Básicos - Métodos Métodos ou Operações: podem mudar o estado dos objetos Métodos são invocados por mensagens Cada objeto possui seu próprio conjunto de métodos Definições: São procedimentos definidos e declarados que atuam sobre um objeto Descrição de uma sequência de ações a serem executadas por um objeto Por meio dos métodos que especifica-se a um objeto COMO FAZER alguma coisa São intrínsecos aos objetos e não podem ser separados

Conceitos Básicos - Classe Classe abstração de um conjunto de objetos similares do mundo real conjunto de objetos que possuem propriedades semelhantes (ATRIBUTOS), o mesmo comportamento (MÉTODOS), os mesmos relacionamentos com outros objetos e a mesma semântica

Conceitos Básicos - Classe Todo objeto é uma instância de uma Classe Todas as instâncias de uma classe têm valores próprios para os atributos especificados na classe Os objetos representados por determinada classe diferenciam-se entre si pelos valores de seus atributos Exemplo Classe de espécies em Zoologia

Objetos Conceitos Básicos - Classe Exemplo 1 Livro Bíblia Relatório Dicionário

Conceitos Básicos - Classe Exemplo 2 CASA Portas Quartos Salas Localizaçã o Cozinha Telhado Reformar Limpar Pintar Mobiliar Casa do Presidente Clinton Casa do Pedrinho Casa Amarela da Esquina

Objetos e Classes: Exemplos Leitor nome matricula datanascimento le1: Leitor nome = Maria dos Santos matricula = 342343 datanascimento = 04/25/1973 le2: Leitor nome = Joao da Silva matricula = 323232 datanascimento = 02/23/1978 classes objetos FornoDeMicroondas capacidade potência status horário forno1: FornoDeMicroondas capacidade = 40 potencia = 600 status = desligado hora = 09:35

Classes e Objetos Objeto Conta Corrente: Objeto Classe Saldo Nº 895,32 21.345-9 Debitar Creditar Saldo Nº double Debitar String Creditar Instanciação Objeto Saldo Nº 34,55 178.799-x Debitar Creditar

Conceitos Básicos Exemplo 3 Exemplos Corsa AFR-7655 Automóvel Gol BFF-9888 Marca Placa Fiesta AFR-7655 OBJETOS (instâncias da classe Automóvel) CLASSE

Conceitos Básicos - Exemplos Atributos e Métodos Automóvel Proprietário Marca Placa Ano Atributos Registrar Transferir_Propriet Mudar_Placa Métodos

Conceitos Básicos Exemplo Descrição da Classe Automóvel em Java public class Automovel{ private String proprietario; private String marca; private String placa; private int ano; } public Automovel (); public boolean registrar (); public void transferir_proprietario(string novoproprietario); public void mudar_placa (String novaplaca);

Conceitos Básicos - Encapsulamento Característica que visa esconder detalhes de implementação É alcançado em OO, visto que o objeto, quando implementado, possui uma parte privada (atributos) e uma parte pública (métodos) Programadores podem introduzir mudanças na implementação de um método sem afetar o comportamento externo desse método (interface)

Conceitos Básicos - Encapsulamento Objetos encapsulam seus atributos atributos de uma classe são acessíveis apenas pelos métodos da própria classe outras classes só podem acessar os atributos de uma classe invocando os métodos públicos (métodos getters e setters) Restringe a visibilidade do objeto mas facilita o reúso, aumenta a legibilidade e manutenibilidade

Conceitos Básicos - Encapsulamento Exemplo 297 + 333 = 630

Conceitos Básicos - Mensagem É o mecanismo através do qual os objetos se comunicam, invocando as operações desejadas Especificação de uma operação do objeto É composta por Seletor: nome simbólico que descreve o tipo da operação descreve O QUE o objeto que envia quer que seja invocado o objeto receptor da mensagem contém a descrição de COMO a operação deveria ser executada Parâmetros: argumentos que uma mensagem pode conter que faz parte da operação e requer uma ordem única

Conceitos Básicos - Mensagem Um objeto (Emissor) envia uma mensagem a outro (Receptor) que executará o serviço Métodos são invocados por Mensagens Exemplo A chamada de um procedimento/função em LP é uma aproximação inicial de uma mensagem, como em: P(10,20), onde: P é o seletor e os valores 10 e 20 são os parâmetros Diferença na OO: a ação da mensagem a ser ativada depende essencialmente do objeto que receber a mensagem

Métodos X Mensagem mensagem le1.alterarnome( Rosa Olivera ) método método alterarnome(char[30] novonome) Inicio Fim nome := novonome; le1: Leitor nome = Maria dos Santos matricula = 342343 datanascimento = 04/25/1973

Conceitos Básicos - Relacionamento Objetos podem relacionar-se um com o outro Uma Pessoa pode possuir Carro, onde o relacionamento possuir define uma conexão específica entre Pessoa e Carro

Associação Conceitos Básicos - Relacionamento um relacionamento que um objeto precisa ter com outro(s) objeto(s), para cumprir suas responsabilidades Proprietário Automóvel Nome Endereço Telefone 1 possui 1..* Marca Placa Ano Consultar Incluir Registrar Transferir_Propriet Mudar_Placa

Conceitos Básicos - Herança Mecanismo que permite definir uma nova classe (subclasse) a partir de uma classe já existente (superclasse) A subclasse herda as características comuns da superclasse (atributos e métodos) A subclasse pode adicionar novos atributos e métodos, como também reescrever métodos herdados

Conceitos Básicos - Herança Quando uma mensagem é enviada para um objeto A procura do método correspondente começa pela classe do objeto Se o método não for encontrado, a procura continua na superclasse

Conceitos Básicos - Herança A Herança pode ser de dois tipos: Herança Simples: quando uma classe é subclasse de somente uma superclasse Herança Múltipla: quando uma classe é subclasse de várias superclasses e, conseqüentemente, herda as características de cada uma delas

Conceitos Básicos - Herança Exemplo de Herança Simples Estudante e Professor são subclasses de Pessoa Herdam as propriedades de Pessoa. Estudante possui características específicas: curso, ano letivo, boletim, etc. Professor possui características específicas: titulação

Conceitos Básicos - Herança Dica: É um... Pessoa Estudante Professor Funcionário Diretor

Conceitos Básicos - Herança Forno capacidade Microondas horario potencia A Gas temperatura Elétrico v oltagem A Lenha quantmaxlenha Analógico Digital Acendimento Elétrico Acendimento com Fósf oro Camping

Conceitos Básicos - Herança Exemplo Veículo Superclasse Proprietário Marca Placa GENERALIZAÇÃO/ ESPECIALIZAÇÃO Subclasse Automóvel Caminhão Semi-reboque n_passageiros n_eixos capacidade

Generalização Reformar Limpar Pintar Portas Salas Cozinha Quartos Localização Telhado Mobiliar (Superclasse) CASA PRAIA FAVELA MANSÃO (Subclasses) Limpar Piscina Contratar Criadagem Piscina Quadras Especialização

Exemplo de Hierarquia de Classes Selvagem Animal Doméstico superclasse subclasse Gato Cão De Raça Vira-Lata Objeto Rex instância da classe Vira-Lata Rex

Conceitos Básicos - Herança Exemplo Seres Humanos Nome Data_Nascimento RG Homens Certif_Reservista Mulher Data_Último_Parto

Conceitos Básicos - Herança Múltipla Exemplos de Herança Múltipla veículo Veículo Terrestre Veículo Aquático Veículo Anfíbio

Herança Múltipla Existe mais de uma superclasse, ou seja, uma classe é declarada como uma subclasse de uma ou mais superclasses Estudante data_ingresso Funcionário data_admissão salario Leitor da Biblioteca num_cadastro

Herança Simples e Herança Múltipla Veículo Veículo de Rodas Veículo à Motor Veículo Aéreo Bicicleta Caminhão Vapor Avião Planador Caminhão VW Caminhão Ford Caminhão GM

Herança Múltipla Veículo Veículo de Rodas Veículo à Motor Veículo Aéreo Bicicleta Caminhão Vapor Avião Planador Caminhão VW Caminhão Ford Caminhão GM

Conceitos Básicos Todo-Parte Todo-Parte permite a construção de uma classe agregada (todo) a partir de outras classes componentes (parte) Dica: É parte de...

Conceitos Básicos Todo-Parte Exemplo TODO TODO PEDIDO PARTES PARTES Item 1: Relógio Item 2: Computador

Conceitos Básicos Todo-Parte Relacionamento de Agregação/Composição Tipo especial de associação (é parte de) Agregação (ou agregação simples) Composição (ou agregação composta) Apartamento Pedido Composição: As partes só podem pertencer ao todo e são criadas e destruídas com ele Garagem ItemPedido

Conceitos Básicos Polimorfismo A palavra polimorfismo é derivada do grego e significa muitas formas ou tendo muitas formas

Conceitos Básicos Polimorfismo de Inclusão (Overriding) Redefinição de um método em classes diferentes (dentro de uma hierarquia de herança) com a mesma assinatura métodos possuem comportamento diferente (implementação diferente) ao receber uma mensagem para efetuar uma operação, é o objeto quem determina como a operação deve ser efetuada

Conceitos Básicos Polimorfismo de Sobrecarga (Overloading) Capacidade de fornecer o mesmo nome a mais de um método em uma mesma classe possível desde que a assinatura seja diferente, podendo ocorrer entre métodos da mesma classe O método a ser executado é selecionado em tempo de execução a assinatura do método chamado é observada e seleciona-se algum que satisfaça a assinatura

Conceitos Básicos Polimorfismo de Sobrecarga (Overloading) Exemplos public int calcularquadrado(int x) { return x * x; } public double calcularquadrado(double y) { return y * y; }

Exemplos Conceitos Básicos Polimorfismo de Sobrecarga (Overloading) Janela ( ) Janela ( 1 x 2, 2 ) Janela ( 1 x 2, 2, Azul )

Conceitos Básicos Analogia Analogia dos conceitos principais dos paradigmas: OO e tradicional Linguagens Orientadas a Objetos Linguagens Tradicionais Objeto/Instância Classe Envio de Mensagem Método Variável Tipo (TAD) Chamada de Procedimento Procedimento ou Função