Capítulo 2. Orientação a Objetos

Documentos relacionados
Programação Orientada a Objetos

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

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

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

Fundamentos de Programação

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

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

Classe Abstrata e Interface

Aula 4 Encapsulamento e Relacionamento Cleverton Hentz

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

Introdução à Orientação a Objetos

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

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

Projeto Orientado a Objetos

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

Programação Orientada a Objetos

Conceitos de Programação Orientada a Objetos

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

O Paradigma Orientado a Objetos

Universidade Federal de Uberlândia

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

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

Herança Tiago Eugenio de Melo

O PARADIGMA ORIENTADO POR OBJETOS

Fundamentos de Orientação à objetos

Linguagem de Programação III

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

Introdução à Análise e Projeto de Sistemas

ACH2002. Orientação a Objetos

Requisitos de sistemas

1 Introdução e Conceitos básicos

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

Linguagens de Programação Aula 12

Programação Orientada a Objetos

Paradigmas de Linguagens de Programação. Suporte para Programação Orientada a Objeto

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

CURSO TÉCNICO DE INFORMÁTICA Módulo C ORIENTAÇÃO À OBJETO. Conceitos

Conceitos de Orientação a Objetos

C com introdução a OO

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

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

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

TÉCNICAS DE ORIENTAÇÃO A OBJETOS

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

Programação com Objectos 1º Teste Tipo 1º Semestre (90 minutos)

Engenharia de Software II e III - Introdução ao Diagrama de Classe

Classes e Objetos. Sintaxe de classe em Java

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

Tema da aula Introdução ao paradigma de programação: Orientado a Objetos

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

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

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

Tópicos da Aula. Conceitos de programação orientada a objetos. Projeto orientado a objetos com UML

Unidade: sobrecarga, construtores e herança

Conceitos de Programação Orientada a Objetos

Televisao tamanho tela emitirsom. conectarperifericos

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS

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

INF1636 PROGRAMAÇÃO ORIENTADA A OBJETOS

Definição. Em POO, a abstração é o processo de esconder os detalhes de implementação de uma aplicação.

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

ORIENTAÇÃO A OBJETOS Histórico:

Introdução à Orientação a Objetos

Interface vs. Implementação Herança vs. Composição

Orientação a Objetos Classes Abstratas

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

Linguagem de Modelagem Unificada UML

Sumário. BD Orientado a Objetos

AULA 02. OBJETIVO: Características da Linguagem Orientada a Objetos.

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

27) Em relação aos Projetos de Sistemas de Software, assinale a sequência correta de desenvolvimento de um sistema:

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

Como Modelar com UML 2

UML LINGUAGEM DE MODELAGEM UNIFICADA Diagrama de Classes

Modelagem Orientada a Objeto

Introdução a Programação Orientada a Aspectos

DIAGRAMAS DE CLASSE UML

Programação Orientada a Objetos

Programação orientada a objetos

Linguagem de Programação Orientada a Objeto Polimorfismo, Classes Abstractas e Interfaces

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

Os princípios do desenho orientado 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

Linguagem de programação Programação Orientada a objetos

Programação Estruturada Orientada a Objetos

Aula 2 Princípios Básicos da Orientação a Objetos (Parte II)

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

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

Orientação a Objetos (OO)

Fundamentos de Orientação a Objetos

Tópicos da Aula. Diretrizes Gerais. Trabalho Prático (TP) Pontuação do TP. Tema do Trabalho. Projeto de Software Diagrama de Classes

Prof: Ricardo Quintão Site:

Apresentação da Disciplina e Revisão dos Conceitos de Orientação a Objetos

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

Computação II Orientação a Objetos

Análise de Sistemas AULA 05 BCC Noturno - EMA908915A

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

Transcrição:

Capítulo 2 Orientação a Objetos

Princípios da Orientação a Objetos Os princípios da orientação a objetos afetam todo o processo de desenvolvimento de software: Seres humanos pensam em termos de substantivos (objetos) e verbos (comportamento de objetos) Com DSOO, ambos, problema e solução, são modelados usando conceitos de orientação a objetos. A UML é excelente na representação de modelos mentais. Linguagens Orientadas a objetos fornecem implementação próxima aos modelos mentais. A linguagem UML é uma ponte entre um modelo mental e a implementação deste modelo

Princípios de Orientação a Objetos(Cont.) Sistemas de software executam determinadas ações sobre objetos de determinados tipos. Para obter sistemas flexíveis e reutilizáveis, é melhor basear sua estrutura nos tipos dos objetos do que em suas ações. (Bertrand Meyer) Princípios de Orientação Objetos afetam as seguintes questões: Complexidade de software Decomposição de software Custo de software

Complexidade de Software Sistemas complexos possuem as seguintes características: Possuem uma estrutura hierárquica. A escolha de quais componentes são primitivos no sistema é Arbitrária. Um sistema pode ser dividido em relacionamentos intra e intercomponentes. Esta separação de interesses permite o estudo de cada parte isoladamente. Sistemas complexos são normalmente compostos de poucos tipos de componentes em diversas combinações. Um sistema complexo de sucesso, de uma forma ou de outra, evolui de um sistema simples

Decomposição de Software No paradigma procedural, o software é decomposto em uma hierarquia de procedimentos ou tarefas.

Decomposição de Software No paradigma orientado a objetos, o software é decomposto em uma hierarquia de componentes que interagem entre si (normalmente objetos).

Custo de Software Desenvolvimento: Os princípios orientados a objetos fornecem uma técnica natural para a modelagem de entidades de negócios e processos desde o início de um projeto. Entidades e processos de negócio modelados em orientação a objetos são mais fáceis de serem implementados em uma linguagem orientada a objetos. Manutenção: Mudanças frequentes, flexibilidade, e adaptabilidade de software são importantes para a manutenção do software em execução por um longo período de tempo. Entidades e processos de negócio modeladas de forma orientada a objetos podem ser adaptadas para novos requisitos funcionais.

Princípios Fundamentais da Orientação a Objetos Objetos Classes Abstração Coesão Encapsulamento Herança Polimorfismo Acoplamento Associação de objetos

Objetos objeto = estado + comportamento Um objeto possui estado, comportamento e identidade; a estrutura e comportamento de objetos similares são definidos em uma classe comum (Booch) Objetos: Possuem identidade São instâncias de somente uma classe Possuem valores de atributos específicos do objeto Possuem métodos que são comuns à classe

Objetos: Exemplo

Classes Uma classe é uma descrição de objetos que possuem estrutura e comportamento em comum. (Booch) Classes fornecem: Metadados para atributos, A assinatura de métodos, A implementação dos métodos (normalmente), Construtores para iniciar atributos em tempo de criação.

Exemplo de Classes

Abstração Abstração é algo resume ou concentra o essencial de algo maior (Dicionário Aurélio) Em software, o conceito de abstração permite a criação de uma interface simplificada para algum serviço que esconde os detalhes de implementação deste serviço para o cliente.

Exemplo de Abstração

Coesão Coesão é a medida do quanto uma entidade (componente ou classe) suporta um único objetivo dentro de um sistema. (Knoernschild) Baixa coesão ocorre quando um componente tenta fazer muitas funções não relacionadas. Alta coesão ocorre quando um componente executa somente um conjunto de funções relacionadas.

Exemplo de Coesão

Encapsulamento Encapsulamento significa proteger como uma cápsula (Dicionário Aurélio) O encapsulamento é essencial a um objeto. Um objeto é uma capsula que preserva o estado inicial de um objeto dentro de seu limite. Na maioria das linguagens orientada a objetos o termo encapsulamento inclui o ocultamento de informação, que pode ser definido como: oculte detalhes de implementação por trás de um conjunto de métodos públicos.

Exemplo de Encapsulamento nome = empregado.nome (errado) nome = empregado.getnome() (Certo) empregado.nome = Samantha (errado) empregado.setnome( Samantha ) (Certo)

Herança Herança é um mecanismo no qual uma classe é definida em termos de outras, adicionando todas as características em si própria. (Meyer) Características de herança: Atributos e métodos da superclasse são incluídos na subclasse, Os métodos da subclasse podem sobrepor (overriding) os métodos da superclasse, Uma subclasse pode herdar de múltiplas superclasses (herança múltipla) ou uma subclasse pode herdar apenas de uma superclasse (herança simples)

Exemplo de Herança

Classes Abstratas Uma classe que contém um ou mais métodos abstratos, e portanto, não podem ser instanciadas. Características de uma classe abstrata: Pode ter atributos, Pode ter métodos, sendo alguns declarados abstratos, Pode ter construtores, mas os clientes não podem instanciar diretamente uma classe abstrata. Subclasses de classes abstratas devem fornecer implementações de todos os métodos abstratos; caso contrário, a subclasse deve também ser declarada abstrata.

Exemplo de Classes Abstratas

Interfaces Um conjunto de operações que caracterizam o comportamento de um elemento. Características de interfaces em Java: Atributos não são permitidos (exceto constantes). Métodos são permitidos, mas devem ser abstratos. Construtores não são permitidos. Sub-interfaces podem ser definidas, formando uma hierarquia de herança para interfaces. Uma classe pode implementar uma ou mais interfaces.

Exemplo de Interfaces

Polimorfismo Polimorfismo é ter, assumir, ou ocorrer em várias formas, características ou estilos (Dicionário Aurélio) Polimorfismo é um conceito da teoria de tipos, no qual um nome (como a declaração de uma variável) pode denotar objetos de várias classes que são relacionadas por alguma superclasse em comum [tipo] (Booch) Aspectos do polimorfismo: Uma variável pode ser atribuída a diferentes tipos de objetos em tempo de execução. A implementação do método a ser invocado é determinada pelo tipo do objeto, não pelo tipo da declaração (alocação dinâmica).

Exemplo de Polimorfismo

Exemplo de Polimorfismo

Acoplamento Acoplamento é o grau no qual classes dentro de nosso sistema são dependentes uma da outra. (Knoernschild)

Associações de Objetos Uma associação entre objetos é um relacionamento denotando uma conexão semântica entre duas classes. (Booch) As dimensões de uma associação são: O papel que cada classe exerce, A multiplicidade de cada papel, A direção (ou navegabilidade) da associação.

Exemplo de Associações de Objeto

Resumo Orientação a Objetos é um modelo computacional próximo à maneira de pensar dos seres humanos para a solução de problemas. OO fornece um conjunto de princípios.

PERGUNTAS??