Introdução ao Paradigma de Orientação a Objetos

Slides:



Advertisements
Apresentações semelhantes
Análise e Projeto Orientado a Objetos
Advertisements

Desenvolvimento de aplicativos Orientados a Objetos: Definição e Características THIAGO IDEALI.
Princípios da Orientação a Objetos e a Linguagem UML
Paulo Marques Hernâni Pedroso
Programação Orientada a Objetos C++ Prof. Érico Olavo Weissheimer
Introdução à Programação Orientada à Objetos Prof. Daniel Merli Lamosa Maio de 2002.
Engenharia de Software
Análise e Projeto de Sistemas
Projeto de Sistemas de Software
Análise Orientada a Objetos
Modelagem Orientada a Objetos
Professora: Aline Vasconcelos
Introdução ao paradigma de programação: Orientado a Objetos
Introdução a diagrama de classes e UML
Curso Sistemas de Informação I Disciplina: Arquitetura de Software
Análise e Projetos de Sistemas
Linguagem de Programação II
ANÁLISE E PROJETO ORIENTADA A OBJETOS UFRJ/IM/DCC Lab PSI mai/1999.
Análise Estruturada O mais amplamente usado dos métodos de modelagem de requisitos Modelos que retratam fluxo e o conteúdo da informação (dados e controle)
Programação Orientada a Objetos
Programação orientada a objetos com Java
Aula 8 Orientação à Objetos
1 MAC 413/5715 – Seminário Prof. Fabio Kon Self: The Power of Simplicity David Ungar and Randall B. Smith OOPSLA 1987 Cristina Fang Eduardo Miyoshi Kasa.
Aspectos Avançados em Engenharia de Software Aula 3 Fernanda Campos
Classes e objetos Modelagem
Herança e Polimorfismo
Classes e objetos P. O. O. Prof. Grace.
Introdução a Programação Orientada a Objetos
Análise e Projetos de Sistemas UML-Linguagem de Modelagem Unificada Modelo de Dados com UML Diagrama de Classes Professor: Armando Hage.
Análise de Casos de Uso Alexandre Motnteiro.
Orientação a Objetos.
TÉCNICAS DE PROGRAMAÇÃO II
DIAGRAMA DE COMPONENTES
Sejam bem-vindos à atividade PROGRAMAÇÃO I 2009 Professor Gilberto IRAJÁ Müller.
Polimorfismo em C#.
Princípios de Orientação à Objetos
Introdução UML, Diagrama de Classes e Comunicação/Colabaração
Object Oriented Software Construction (MEYER, Bertrand)
Projeto de Sistemas de Software
Princípios de Análises e projetos de sistemas
SISTEMAS OPERACIONAIS
Linguagens Orientadas a Objeto
. Smalltalk HISTÓRICO . Década de 60 – POO . Dynabook (Alan Kay)
Programação Orientada à Objetos
Laboratório de Programação I
Análise e Projeto de Sistemas UNIVERSIDADE DE CRUZ ALTA Ciência da Computação 2010/1.
Métodos de Construção de Software: Orientação a Objetos
Projeto de Banco de Dados
Professor: Márcio Amador
Orientação a Objetos Parte I
Programação Orientada à Objetos
PROGRAMAÇÃO ORIENTADA A OBJETO - JAVA
Programação Orientada a Objetos - Java
Prof. Silvestri – todos os direitos reservados SISTEMAS DISTRIBUIDOS Aula 5 Eduardo Silvestri
INTRODUÇÃO À ORIENTAÇÃO A OBJETOS EM JAVA
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Introdução a Programação.
SISTEMAS DISTRIBUIDOS Aula 4
POO Aula 03 Projeto OO com UML Eduardo Figueiredo 11 de Março de 2010.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos Professor: Cheli Mendes Costa Introdução a Programação Orientada.
Treinamento PHP Módulo 2 PHP Avançado Waelson Negreiros
Introdução a Programação Orientada a Objetos
Introdução a Orientação a Objetos
Engenharia de Software Orientada a Objetos
20/04/2017 Orientação a Objetos 1 1.
Módulo II Capítulo 1: Orientação a Objetos
INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA TOCANTINS Campus Araguaína Continuação Modelagem Orientada a Objetos Técnico Subsequente.
Características Cor Combustível Num_Portas Potencia Comportamentos Acelerar Feiar Acender farol Dar seta Buzinar Características Cor Combustível Num_Portas.
Desenvolvendo sotfware com UML1 Visão Geral de Orientação a Objetos.
Análise Orientada a Objetos Por Patrícia Braga Centro Universitário Jorge Amado.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Transcrição da apresentação:

Introdução ao Paradigma de Orientação a Objetos Disciplina: Programação Orientada a Objetos Prof. Ricardo Satoshi Oyakawa

Conteúdo Histórico de OO Vantagens de OO Linguagens OO Conceitos Básicos de OO Reflexão

Histórico de OO A 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

Histórico de OO Surgiram linguagens híbridas: C++ (1986), Object-Pascal (1986) Surgiram diversos 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) UML (Unified Modeling Language, 1997)

Vantagens de OO Abstração de dados: os detalhes referentes às representações das classes serão visíveis apenas a seus atributos; Compatibilidade: as heurísticas para a construção das classes e suas interfaces levam a componentes de software que são fáceis de se combinar; Flexibilidade: as classes delimitam-se em unidades naturais para a alocação de tarefas de desenvolvimento de software;

Vantagens de OO Reutilização: o encapsulamento dos métodos e representação dos dados para a construção de classes facilitam o desenvolvimento de software reutilizável, auxiliando na 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; 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.

Vantagens de OO Melhoria de comunicação entre desenvolvedores e clientes; Redução da quantidade de erros no sistema, diminuindo o tempo nas etapas de codificação e teste; Maior dedicação à fase de análise, preocupando-se com a essência do sistema; Mesma notação é utilizada desde a fase de análise até a implementação.

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

Conceitos Básicos Orientação a Objetos (OO) é uma abordagem de programação que procura explorar nosso lado intuitivo. Os objetos da computação são análogos aos objetos existente no mundo real. No enfoque de OO, os átomos do processo de computação são os objetos que trocam mensagens entre si. Essas 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 Objeto é algo DINÂMICO: é criado por alguém, tem uma vida, e morre ou é morto por alguém. Assim, durante a execução do sistema, os objetos podem: Ser construídos Executar ações Ser destruídos Tornar inacessíveis

(Instâncias da classe Automóvel) Conceitos Básicos Objetos e Classes Palio JWO-4567 Automóvel Marca Placa Parati KLJ-0978 Celta JDK-6543 CLASSE OBJETOS (Instâncias da classe Automóvel)

Conceitos Básicos Objetos: Tudo em OO é OBJETO Objeto, no mundo físico, é tipicamente um produtor e consumidor de itens de informação Definição (mundo do sofware) “Qualquer coisa, real ou abstrata, a respeito da qual armazenamos dados e métodos que os manipulam” Martin, Odell (1995) Abstração de uma entidade do mundo real de modo que essa entidade possue várias características

Conceitos Básicos Classes: Agrupamento de objetos similares. Todo objeto é uma instância de uma Classe. Os objetos representados por determinada classe diferenciam-se entre si pelos valores de seus atributos. 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 Exemplo 1 Casa Casa Amarela Casa do Presidente Portas Quartos Salas Localização Cozinha Telhado Reformar Limpar Pintar Mobilhar Exemplo 1 Casa Casa Amarela Casa do Presidente Casa da Maria

Conceitos Básicos Atributos e Métodos: Exemplo 2 Automóvel Proprietário Marca Placa Ano Registrar Transferir_Proprietário Mudar_Placa ATRIBUTOS MÉTODOS

Conceitos Básicos Atributos e Métodos: Exemplo 3 Figura Largura Altura Posicao_X Posicao_Y Cor_preenchimento Mover Redimensionar ATRIBUTOS MÉTODOS

Conceitos Básicos Atributos: Representam um conjunto de informações, ou seja, elementos de dados que caracterizam um objeto Descrevem as informações que ficam escondidas em um objeto para serem exclusivamente manipulado pelas operações daquele objeto São variáveis que definem o estado de um objeto, ou seja, são entidades que caracterizam os objetos Cada objeto possue seu próprio conjunto de atributos

Conceitos Básicos Métodos: Quando um objeto é mapeado dentro do domínio do software, os processos que podem mudar a sua estrutura de dados são denominados Operações ou Métodos Métodos são invocados por Mensagens Cada objeto possue seu próprio conjunto de métodos Definições: São procedimentos definidos e declarados que atuam sobre um objeto ou sobre uma classe de objetos

Conceitos Básicos Três elementos chaves de OO são: Encapsulamento Herança Polimorfismo

Conceitos Básicos Encapsulamento: Objetos encapsulam seus atributos; Propriedade segundo a qual os 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; Restringe a visibilidade do objeto mas facilita o reuso Os DADOS e os MÉTODOS são empacotados sob um nome e podem ser reusados como uma especificação ou componente de programa.

Conceitos Básicos Herança: É o mecanismo pelo qual uma subclasse herda todas as propriedades da superclasse e acrescenta suas próprias e exclusivas características. As propriedades da superclasse não precisam ser repetidas em cada subclasse. Por exemplo, JanelaRolante e JanelaFixa são subclasses de Janela. Elas herdam as propriedades de Janela, como uma região visível na tela. JanelaRolante acrescenta uma barra de paginação e um afastamento.

Conceitos Básicos Herança Veículo Proprietário Marca Placa Automóvel n_passageiros Caminhão n_eixos Semi-reboque Capacidade

Conceitos Básicos Polimorfismo: Geralmente representa a qualidade ou estado de um objeto ser capaz de assumir diferentes formas. Mais especificamente, propriedade segundo o qual vários métodos podem existir com o mesmo nome. Ao receber uma mensagem para efetuar uma Operação, é o objeto quem determina como a operação deve ser efetuada; Permite a criação de várias classes com interfaces idênticas, porém objetos e implementações diferentes. Exemplos: O operador “+” pode ser usado com inteiros, pontos-flutuantes ou strings. A operação mover pode atuar diferentemente nas classes Janela e PeçadeXadrez.

Conceitos Básicos Polimorfismo Veículo Verificar() Reparar() Limpar() Automóvel Verificar() Reparar() Limpar() Bicicleta Verificar() Reparar() Limpar()

Linguagens Orientadas a Objetos Conceitos Básicos Analogia dos conceitos principais no paradigma orientado a objeto e no paradigma tradicional de programação Linguagens Orientadas a Objetos Linguaguens Tradicionais Objeto Valor Classe Tipo (TAD) Mensagem Chamada de Procedimento Método Procedimento ou Função Interface Conjunto de nomes e funções para um fim específico

Reflexão A tecnologia de OO é bastante recente e “veio para ficar” OO impõe qualidade, produtividade e profissionalismo na construção de sistemas Existem métodos, técnicas e ferramentas de software OO que acompanham o processo de desenvolvimento do software desde a análise até a implementação