POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA

Tamanho: px
Começar a partir da página:

Download "POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA"

Transcrição

1 Lincoln S. Rocha POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Padrões de Projeto e POA Background Artigo do Kiczales 2 3 1

2 Objetivo da Programação? Introdução à OO Introdução à POO Limitações da POO Requisitos Transversais: Exemplos Rastreamento Usando POO Problemas com a Abordagem A Causa dos Problemas da POO 4 Mapeamento record Pessoa nome : string; idade : integer; nascimento : string; end procedure aniversario begin (...) end Nome Idade Nascimento Alan Turing 96 23/06/ A Orientação a Objetos surgiu no início dos anos 80 Grande evolução desde os Métodos Estruturados É uma abordagem para modelagem de sistemas e um paradigma maduro que continua sendo amplamente utilizado 6 2

3 O paradigma da Orientação a Objetos compreende várias disciplinas Análise Orientada a Objetos Projeto Orientado a Objetos Programação Orientada a Objetos (...) 7 O princípio da OO é mapear um modelo da realidade, visto como interação entre objetos, num modelo computacional de dados e programas 8 Foco nos dados(objetos) do sistema, não nas funções Estruturação do programa é baseada nos dados, não nas funções As funções mudam mais do que os dados! 9 3

4 Princípios Fundamentais Objetos Classes Abstração Encapsulamento Herança Polimorfismo Modularidade Hierarquia 10 Objetos Entidades que formalizam o modo pelo qual compreendemos algo no domínio de um problema Em um objeto estão encapsulados os dados (atributos) e os procedimentos (métodos) exclusivos dele Os procedimentos são aplicáveis aos dados residentes no objeto 11 Objetos (cont.) Um objeto possui estado, comportamento e identidade Estado: valores dos atributos Comportamento: definido pelos métodos (como o objeto age e reage) Identidade: aquilo que diferencia um objeto de outro 12 4

5 Classes Descrevem um conjunto de objetos semelhantes São templates utilizados para criar objetos Classes de objetos podem herdar atributos e métodos de outras classes de objetos 13 Objetos versus Classes Objetoé uma entidade concreta e a Classeé uma abstração Do ponto de vista de programação Definir uma classe significa formalizar um tipo de dados e todas as operações associadas a este tipo Declarar objetos significa criar variáveis do tipo definido 14 A POO falha em modularizarrequisitos periféricos que atravessam múltiplos módulos (ex., segurança, rastreamento e distribuição) Esses requisitos ou interesses são chamados de transversais (crosscutting concerns) 15 5

6 A implementação de requisitos transversais se dá através da adição de código em diversos objetos ao longo do sistema Gera espalhamento Em geral o código relacionado ao requisito transversal não está diretamente ligado à funcionalidade definida para estes objetos Gera entrelaçamento 16 Segurança Persistência Auditoria e depuração Tratamento de exceções Otimização e desempenho Concorrência e sincronização Regras e restrições do negócio Aplicação POA 17 public class Person { private String name = ""; public void setname(string name) { Tracing.entry("setName("+name+")"); this.name = name; Tracing.exit("setName()");... public class Tracing { public static void entry(string text) { System.out.println("entry: " + text); public static void exit(string text) { System.out.println("exit: " + text); 18 6

7 Redundância Fraca coesão Forte acoplamento Dificuldade de compreensão Dificuldade de manutenção Dificuldade de reutilização 19 A decomposição primária napooéfeitanoplano O requisito transversal fica espalhado pelas classes porque é tratado na dimensão errada! Tracing O requisito transversal é ortogonal à decomposição primária!

8 Introdução Princípios Básicos Etapas do Desenvolvimento Ingredientes Essenciais Benefício Esperado 22 A POA foi concebida por Gregor Kiczales (1997) quando era o cientista chefe (software design) da Xerox PARC ( ) 23 O principal objetivo da POA é facilitar a modularizaçãode interesses transversais (crosscutting concerns) A POA não veio substituir POO, mas sim complementá-la! 24 8

9 A POA, assim como a POO, é baseada no principio da separação de interesses (separationofconcerns) o qual preconiza a identificação e o tratamento individualizado dos diferentes interesses envolvidos no desenvolvimento de um software EdsgerW. Dijkstraem"On the role of scientific thought 25 A separação de interesses é um princípio que deve guiar todas as etapas de um processo de desenvolvimento de software A modularização de interesses transversais deve ser feita através de uma nova unidade de encapsulamento, denominada aspecto 26 Visão geral do processo de desenvolvimento na POA 27 9

10 Classes: encapsulam requisitos funcionais Aspectos: encapsulam requisitos transversais Weaver: entrelaça classes e aspectos num programa Classes Programa Weaver Aspectos 28 Boa modularidade, mesmo quando temos requisitos transversais Facilidade de desenvolvimento Código fonte menos espalho e entrelaçado, mais compacto e mais natural 29 Facilidade de manutenção Mais fácil para entender, depurar e modificar Facilidade de reutilização Hierarquia de aspectos, biblioteca de aspectos e aspectos plug and play 30 10

11 31 O que é AspectJ? Aspectos versus Classes Joinpoints e Pointcuts Advices e Introductions Reflexão e Reusabilidade 32 É uma extensão de Java, orientada a aspectos É um weaverque implementa POA em Java É um pré-processador Fácil de aprender e utilizar Disponível gratuitamente

12 Aspectos são similares a classes Têm um tipo Podem ser estendidos Podem ser abstratos ou concretos Podem conter atributos, métodos e tipos como membros 34 Aspectos são diferentes de classes Não têm construtor, nem destrutor Não podem ser criados com o operador new Podem conter pointcutse advicescomo membros Podem acessar membros de outros tipos 35 São pontos, bem definidos, na execução de um programa, onde aspectos podem interceptar classes Chamada de método Execução de método Objeto Atributo Método set get Acesso a atributo 36 12

13 São identificados por designadores call(signature) execution(signature) initialization(signature) preinitialization(constructorpat) staticinitialization(typepat) handler(typepattern) get(signature) set(signature) 37 args(typepattern,...) within(typepattern) cflow(pointcut) cflowbelow(pointcut) if(expression) adviceexecution() this(typepattern) target(typepattern) 38 Designadores podem ser genéricos call(* set*()) call(public Person.*(..)) call(void foo(..)) call(* *(..)) call(*.new(int, int)) 39 13

14 Predicados que definem conjuntos de joinpoints pointcut traced() : call(public * set*(..)); 40 Podem ser definidos como expressões booleanas, empregando-se!, && e pointcut traced() : call(public * set*(..)) call(public * get*(..)); 41 Pointcuts também podem ter argumentos pointcut traced(person p) : target(p) && call(public * set*(..)) call(public * get*(..)); 42 14

15 São trechos de código associados a pointcuts, que injetam um novo comportamento em todos os joinpoints representados pelo pointcut Tipos before after around chamador After advice Before advice chamado 43 Formas básicas before(param) : pointcut(param) {... after(param) : pointcut(param) {... after(param) returning [formal] : pointcut(param) {... after(param) throwing [formal] : pointcut(param) {... type around(param) [throws typelist] : pointcut(param) { Designador pointcut get(int index) : args(index) && call(* get*(..)); Pointcut before(int index) : get(index) { System.out.println(index); Advice Código 45 15

16 É uma variável especial predefinida É similar à variável thisem Java Disponibiliza várias informações a respeito do joinpoint que disparou o advice Exemplos: thisjoinpoint.tostring() thisjoinpoint.getargs() 46 Um forma de introduzir novos membros a classes e interfaces já existentes private int Person.id = 0; public void Person.setId(int id){ this.id = id; public int Person.getId(){ return this.id; declare parents: Person extends Animal; 47 public abstract aspect Tracing { protected abstract pointcut trace(); // advice code public aspect MyTracing extends Tracing { // just define which calls to trace protected pointcut trace(): call(* set*(..)); 48 16

17 49 public class Person { private String name = ""; public void setname(string name) { this.name = name;... class Tracing { public static void entry(string text) { System.out.println("entry: " + text); public static void exit(string text) { System.out.println("exit: " + text); 50 aspect Tracing { pointcut trace () : call(public * Person.set*(..)); before() : trace() { Tracing.entry(thisJoinPoint.toString()); after() : trace() { Tracing.exit(thisJoinPoint.toString()); 51 17

18 public class Application { public static void main(string[] args) { Person person = new Person(); person.setname("lincoln Souza Rocha"); entry: call(void Person.setName(String)) exit: call(void Person.setName(String)) Padrões de Projeto -GoF Descrição do Experimento Resultados Análise dos Resultados 54 18

19 GoF(Gang Of Four) Design Patterns E. Gamma, R. Helm, R Johnson, J. Vlissides Catálogo com 23 padrões de projeto Documenta a essência de soluções comprovadas para problemas recorrentes Considerados como soluções úteis para certo tipo de problemas de projeto 55 Três maiores desafios na implementação de padrões de projeto Problema de desaparecimento no código Isso dificulta a distinção entre o padrão e o modelo de objeto envolvido Problema de documentação Por causa da natureza invasiva do código do padrão é difícil rastrear uma instância particular se muitos padrões são usados Problema de composição É difícil raciocinar sobre sistemas que envolvem múltiplos padrões nas mesmas classes 56 Desenvolver e comparar implementações dos padrões GoF em Java e AspectJ observando Estruturas transversais entre regras e classe participantes existentes Melhorias de modularização das estruturas transversais na implementação dos padrões 17 dos 23 padrões implementados em AspectJ foram melhorados em reusabilidade, composabilidade e (un)pluggability 57 19

20 Uma análise comparativa entre implementações em Java e AspectJdos padrões de projeto GoF As implementações Java correspondem aos exemplos de implementações em C++ do livro do GoF As implementações em AspectJforam selecionadas entre 57 implementações diferentes para investigar plenamente a concepção de projeto de cada padrão 58 O padrão Observer descreve como estabelecer estes relacionamentos -O Subjectpode ter algum número de Observersdependentes -Todos Observerssão notificados quando o Subjectsofre uma alteração no seu estado -Cada Observer irá consultar o Subjectpara sincronizar seu estado com o estado do Subject 59 Implementação em Java 1 -O código está espalhado pelas várias classes 2 - Todos os participantes têm que saber sua função no padrão Mudanças requerem alterações em todas as classes participantes -Adicionando ou removendo regra -Usando um mecanismo de notificação alternativo 60 20

21 Implementação em AspectJ Partes comuns a todas implementações 1 - Existenciade regras para Subject e Observer 2 -Manutenção do mapeamento de Sbjectspara Observer 3 - Lógica de atualização: Mudanças no Subject dispara atualização do Observer Partes específicas de cada implementação 1 - Dar função a cada classe 2 -Conjunto de mudanças que intereção o Subject 3 - Meios de atualizar cada Observer AspectoAbstrato SubaspectoConcreto 61 AspectoAbstrato Partes comuns a todas implementações 1 - Existenciade regras para Subject e Observer 2 -Manutenção do mapeamento de Sbjectspara Observer 3 - Lógica de atualização: Mudanças no Subject dispara atualização do Observer SubaspectoConcreto Partes específicas de cada implementação 1 - Dar função a cada classe 2 -Conjunto de mudanças que intereção o Subject 3 - Meios de atualizar cada Observer 63 21

22 Melhorias de implementação com AspectJ Localidade Todo o código relacionado com a implementação do padrão está nos aspectos abstrato e concreto Não existe acoplamento entre classe participantes existentes Reusabilidade O código núcleo do padrão (ObserverProtocol) é abstraído e passível de reuso Para cada instancia do padrão, define-se somente um aspecto concreto Transparência de composição Mesmo que uma classe seja participante em vários relacionamentos de padrões, os códigos da classe e do padrão não serão confundidos (Un)pluggability Os participantes não precisam estar cientes de seu papel É fácil alternar entre usar e não usar o padrão 64 Composite, command, mediator, chain of responsibility Papéis usados somente dentro dos aspectos Singleton, prototype, memento, iterator, flyweight Aspectos como fábricas de objetos Adapter, decorator, strategy, visitor, proxy Construtores de linguagem (AspectJjá da suporte direto) 65 Abstract factory, factory method, template method, builder, bridge Herança múltipla State, interpreter Parte do código espalhado pode ser modularizado Façade Não apresentou benefícios usando AspectJna implementação 66 22

23 A análise foi dividida em três partes Melhorias gerais observadas na reimplementação dos padrões Melhorias específicas associadas à padrões particulares Origem de estruturas transversais em padrões Foi observado melhorias relacionada a presenças de estruturas transversais em implementações AspectJ 67 Melhorias gerais Localidade 17 dos 23 padrões do GoF Todas as dependenciasentre padrões e participantes foram localizadas no código do padrão Reusabilidade 12 dos 17 padrões que tiveram a localidade melhorada Pela separação do código específico do padrão, o participante e o padrão podem ser reusados em outros contextos 68 Melhorias gerais (cont.) Transparencia de composição 14 dos 17 padrões que tiveram a localidade melhorada Classes ou objetos podem ter diferentes papéis em diferentes instancias do padrão sem confusão (Un)pluggability Reusabilidade e adaptabilidade dos padrões 69 23

24 Melhorias específicas Singleton Implementação do Singleton como propriedade através de herança ou simplesmente através de uma implementação do Factory Method Herança múltipla e Java AspectJprovê uma alternativa para implementação de padrões tendo herança múltipla com composição transparente 70 Melhorias específicas (cont.) Quebra de dependências cíclicas 71 Estruturas transversais de padrões de projeto A transversalidade em estruturas de padrões é causada pelos diferentes tipos de papéis e suas interações entre os participantes Papéis Definindo papéis -define os participantes completamente Papéis sobrepostos - atribuídos às classes Papéis transversais as classes participantes Operações conceituais de interesse de métodos transversais Papéis de múltiplos padrões transversais entre si 72 24

25 Estruturas transversais de padrões de projeto (cont.) 73 Hannemann, J., Kiczales, G.. Design Pattern Implementation in Java and AspectJ, Kendall, E. A. Aspect-OrientedProgramming in AspectJ, Kiczales, G. et all. Aspect-Oriented Programming, Kiczales, G. et all. An Overview of AspectJ, Voelter, M. Aspect-Oriented Programming in Java, TheAspectJProgramming Guide, Xerox Corporation, Lincoln S. Rocha 25

POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos. Objetivo da Programação? Introdução à OO Introdução à POO

POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos. Objetivo da Programação? Introdução à OO Introdução à POO POO e suas Limitações Introdução POA AspectJ: Conceitos Básicos Exemplo: Tracing Lincoln S. Rocha (lincoln@great.ufc.br) Objetivo da Programação? Introdução à OO Introdução à POO Limitações da POO Requisitos

Leia mais

Design Pattern Implementation in Java and AspectJ

Design Pattern Implementation in Java and AspectJ Design Pattern Implementation in Java and AspectJ Jan Hannemann Gregor Kiczales In Proceedings of 2002 ACM SIGPLAN conference on OOPSLA. NY, USA. Introdução 2 Introdução 3 Introdução 4 Introdução 5 Introdução

Leia mais

AspectJ. Silvio do Lago Pereira. Doutorando em Ciência da Computação

AspectJ. Silvio do Lago Pereira. Doutorando em Ciência da Computação AspectJ Silvio do Lago Pereira Doutorando em Ciência da Computação slago@ime.usp.br Sumário Programação Orientada a Objetos (POO) Programação Orientada a Aspectos (POA) AspectJ Exemplos Novembro/2002 Silvio

Leia mais

Testes com Design Patterns

Testes com Design Patterns Helder da Rocha (helder.darocha@gmail.com) 31 de março de 2005 71. Que padrão de design pode ser usado para permitir que uma implementação específica e uma hierarquia de abstrações possa variar independentemente?

Leia mais

2 Desenvolvimento de Software Orientado a Aspectos

2 Desenvolvimento de Software Orientado a Aspectos 2 Desenvolvimento de Software Orientado a Aspectos Separação de concerns é um princípio bem estabelecido da engenharia de software que diz que, para se dominar a complexidade do desenvolvimento de software,

Leia mais

Prototype, um Design Patterns de Criação

Prototype, um Design Patterns de Criação Prototype, um Design Patterns de Criação José Anízio Pantoja Maia Este artigo tem como finalidade compreender o funcionamento do padrão de projeto prototype, serão abordados os participantes que compõe

Leia mais

1Introdução Helder da Rocha (helder@acm.org)

1Introdução Helder da Rocha (helder@acm.org) J930 Padrões Projeto de 1Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas

Leia mais

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br

Padrões GoF. Leonardo Gresta Paulino Murta leomurta@ic.uff.br Padrões GoF Leonardo Gresta Paulino Murta leomurta@ic.uff.br Agenda Introdução Padrões de Criação Padrões de Estrutura Padrões de comportamento Leonardo Murta Padrões GoF 2 Introdução Os padrões GoF (Gamma

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 07 Padrões GoF (Command e Template Method) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype

Leia mais

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

Programação Estruturada e Orientada a Objetos. Fundamentos Orientação a Objetos Programação Estruturada e Orientada a Objetos Fundamentos Orientação a Objetos 2013 O que veremos hoje? Introdução aos fundamentos de Orientação a Objetos Transparências baseadas no material do Prof. Jailton

Leia mais

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org)

J930. Padrões. Projeto. Introdução. argonavis.com.br. Helder da Rocha (helder@acm.org) Padrões de J930 Projeto Introdução Helder da Rocha (helder@acm.org) argonavis.com.br O que é um padrão? Maneira testada ou documentada de alcançar um objetivo qualquer Padrões são comuns em várias áreas

Leia mais

Padrões de Projeto. Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson

Padrões de Projeto. Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson Padrões de Projeto Prof. Jefersson Alex dos Santos (jefersson@dcc.ufmg.br) http://www.dcc.ufmg.br/~jefersson Apresentação Conceitos Definição Ponto de vista prático História Padrões de Projeto Conhecidos

Leia mais

Programação Orientada a Objetos. Padrões de Criação

Programação Orientada a Objetos. Padrões de Criação Programação Orientada a Objetos Padrões de Criação Cristiano Lehrer, M.Sc. Objetivos Apresentar cada um dos 23 padrões clássicos descrevendo: O problema que solucionam. A solução. Diagramas UML (Unified

Leia mais

Prof.ª Esp. Talita Pagani

Prof.ª Esp. Talita Pagani Especialização em Engenharia de Software Prof.ª Esp. Talita Pagani talita.cpb@gmail.com @talitapagani 21/02/2014 Design Patterns Aula 1 Prof.ª Esp. Talita Pagani 1 Informações gerais 1. Definição de Design

Leia mais

Curso - Padrões de Projeto Módulo 1: Introdução

Curso - Padrões de Projeto Módulo 1: Introdução Curso - Padrões de Projeto Módulo 1: Introdução Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação

Leia mais

Aspect-Oriented Programming AOP. Comentários Sérgio Crespo

Aspect-Oriented Programming AOP. Comentários Sérgio Crespo Aspect-Oriented Programming AOP Comentários Sérgio Crespo Separation of Concerns O princípio de Separation of Concerns já é utilizado por engenheiros de software para o gerenciar a complexidade de sistemas

Leia mais

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos

Programação Avançada. Padrões de Projeto de Software. Fonte: Oswaldo B. Peres e K19 Treinamentos Programação Avançada Padrões de Projeto de Software 1 Fonte: Oswaldo B. Peres e K19 Treinamentos Introdução Projetar software OO reusável e de boa qualidade é uma tarefa difícil; Para realizar essa tarefa

Leia mais

Programação com Objectos

Programação com Objectos Programação com Objectos PADRÕES DE DESENHO Classificaçã Objectivo Criação Estrutura Comportamento Introdução Alguns Padrões de Desenho Classe Factory Method Adapter Interpreter Template Method O que é

Leia mais

Programação Orientada a Aspectos

Programação Orientada a Aspectos Programação Orientada a Aspectos Uma Breve Introdução Universidade Estadual do Oeste do Paraná Centro de Ciências Exatas e Tecnológicas Colegiado de Informática Prof. Luiz Antonio Roteiro Introdução Evolução

Leia mais

Design Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1

Design Patterns. Viviane Torres da Silva viviane.silva@ic.uff.br. http://www.ic.uff.br/~viviane.silva/2012.1/es1 Design Patterns Viviane Torres da Silva viviane.silva@ic.uff.br http://www.ic.uff.br/~viviane.silva/2012.1/es1 Sumário Reuso de Software Introdução Benefícios e Desvantagens Visão do Reuso Padrões de Projeto

Leia mais

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação Enzo Seraphim 1 Padrões de Projeto

Leia mais

Padrões de Projeto de Software Orientado a Objetos

Padrões de Projeto de Software Orientado a Objetos Padrões de Projeto de Software Orientado a Objetos Ricardo Argenton Ramos [Baseado nos slides do professor Fabio Kon - USP] 1 Padrões de Projeto de Software OO Também conhecidos como Padrões de Desenho

Leia mais

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS.

PADRÕES DE SOFTWARE. Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade. Grupo de Padrões de Software da UECE (GPS. PADRÕES DE SOFTWARE 1 Jerffeson Teixeira de Souza, Ph.D. Tarciane de Castro Andrade Grupo de Padrões de Software da UECE (GPS.UECE) Julho-2009 CONTEÚDO Introdução aos Padrões de Software O quê são padrões?

Leia mais

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS

EXERCÍCIOS SOBRE ORIENTAÇÃO A OBJETOS Campus Cachoeiro de Itapemirim Curso Técnico em Informática Disciplina: Análise e Projeto de Sistemas Professor: Rafael Vargas Mesquita Este exercício deve ser manuscrito e entregue na próxima aula; Valor

Leia mais

Padrões de projeto 1

Padrões de projeto 1 Padrões de projeto 1 Design Orientado Objeto Encapsulamento Herança Polimorfismo Design Patterns 2 Responsabilidades Booch e Rumbaugh Responsabilidade é um contrato ou obrigação de um tipo ou classe. Dois

Leia mais

Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões

Padrões de Projeto. Padrões de Projeto. Além dos 23 Padrões GoF. Os 23 Padrões de Projeto. Documentação de um Padrão. Classificação dos Padrões DCC / ICEx / UFMG Padrões de Projeto Padrões de Projeto Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Um padrão é uma descrição do problema e a essência da sua solução Documenta boas soluções para

Leia mais

Profº. Enrique Pimentel Leite de Oliveira

Profº. Enrique Pimentel Leite de Oliveira Profº. Enrique Pimentel Leite de Oliveira O termo orientação a objetos significa organizar o mundo real como uma coleção de objetos que incorporam estrutura de dados e um conjunto de operações que manipulam

Leia mais

Herança. Alberto Costa Neto DComp - UFS

Herança. Alberto Costa Neto DComp - UFS Herança Alberto Costa Neto DComp - UFS 1 Motivação Vimos como se faz encapsulamento e a importância de fazê-lo... Contudo, também é possível fazer encapsulamento em algumas linguagens não OO O que mais

Leia mais

Orientação a Objetos com Java

Orientação a Objetos com Java Orientação a Objetos com Java Julio Cesar Nardi julionardi@yahoo.com.br 2011/2 Apresentação 3: Orientação Objetos: Conceitos Básicos Objetivos: Compreender os Conceitos Básicos da Orientação a Objetos;

Leia mais

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

Curso de Java. Orientação a objetos e a Linguagem JAVA. TodososdireitosreservadosKlais Curso de Java Orientação a objetos e a Linguagem JAVA Roteiro A linguagem Java e a máquina virtual Objetos e Classes Encapsulamento, Herança e Polimorfismo Primeiro Exemplo A Linguagem JAVA Principais

Leia mais

Programação Orientada a Objetos em Java

Programação Orientada a Objetos em Java Programação Orientada a Objetos em Java Rone Ilídio da Silva Universidade Federal de São João del-rei Campus Alto Paraopeba 1:14 1 Objetivo Apresentar os principais conceitos de Programção Orientada a

Leia mais

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

PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br PROGRAMAÇÃO AVANÇADA -CONCEITOS DE ORIENTAÇÃO A OBJETOS Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 1. Conceitos de Orientação a Objetos Introdução O paradigma da POO Classes

Leia mais

Uma Introdução aos Padrões de Projeto com Java. Roberto Willrich INE-CTC-UFSC

Uma Introdução aos Padrões de Projeto com Java. Roberto Willrich INE-CTC-UFSC Uma Introdução aos Padrões de Projeto com Java Roberto Willrich INE-CTC-UFSC 1 Introdução aos Padrões de Projeto Programação Introdução Motivação, Definição, Características, Histórico Descrição de um

Leia mais

Prof. Jhonatan Fernando

Prof. Jhonatan Fernando Prof. Jhonatan Fernando Métodos Programação OO Instâncias de variáveis (objetos) Mensagens Classes Herança Polimorfismo Encapsulamento Abstração Programação Estruturada Procedimentos e funções Variáveis

Leia mais

Separação de Interesses Programação Estruturada e Programação Orientada a Objetos Entrelaçamento de Código Espalhamento de Código

Separação de Interesses Programação Estruturada e Programação Orientada a Objetos Entrelaçamento de Código Espalhamento de Código Análise e Projeto Orientados a Aspectos Alcides Pamplona alcides.pamplona@gmail.com Tópicos Separação de Interesses Programação Estruturada e Entrelaçamento de Código Espalhamento de Código 1 Separação

Leia mais

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br

Java. Marcio de Carvalho Victorino www.dominandoti.eng.br Java Marcio de Carvalho Victorino www.dominandoti.eng.br 3. Considere as instruções Java abaixo: int cont1 = 3; int cont2 = 2; int cont3 = 1; cont1 += cont3++; cont1 -= --cont2; cont3 = cont2++; Após a

Leia mais

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

UNIVERSIDADE FEDERAL DO PARANÁ UFPR Bacharelado em Ciência da Computação SOFT DISCIPLINA: Engenharia de Software AULA NÚMERO: 10 DATA: / / PROFESSOR: Andrey APRESENTAÇÃO O objetivo desta aula é apresentar e discutir os conceitos de coesão e acoplamento. DESENVOLVIMENTO Projetar

Leia mais

Módulo 07 Características Avançadas de Classes

Módulo 07 Características Avançadas de Classes Módulo 07 Características Avançadas de Classes Última Atualização: 15/06/2010 1 Objetivos Descrever variáveis, métodos e iniciadores static Descrever a semântica do modificador final em classes, métodos

Leia mais

Orientação à Objetos. Aécio Costa

Orientação à Objetos. Aécio Costa Aécio Costa O paradigma da orientação à objetos Paradigma? Um paradigma é uma forma de abordar um problema. No contexto da modelagem de um sistema de software, um paradigma tem a ver com a forma pela qual

Leia mais

Padrões. Projeto (Design) de Software

Padrões. Projeto (Design) de Software Padrões Projeto de Softwares Categorias de Padrões Processo de Tradução de modelos de análise (isentos de tecnologia, lógicos) para modelos de projeto (development-ready, físicos) Qual a Tecnologia Alvo

Leia mais

Reuso com Herança a e Composiçã

Reuso com Herança a e Composiçã Java 2 Standard Edition Reuso com Herança a e Composiçã ção Helder da Rocha www.argonavis.com.br 1 Como aumentar as chances de reuso Separar as partes que podem mudar das partes que não mudam. Exemplo:

Leia mais

Programação Orientada a Aspectos

Programação Orientada a Aspectos Programação Orientada a Aspectos Bibliotecas Dinâmicas Motivação class MyClass { public MyClass() {......... public void method1 () public... void method1 () {...... public int method2() {... public...

Leia mais

Paradigmas de Linguagens de Programação

Paradigmas de Linguagens de Programação Paradigmas de Linguagens de Programação Faculdade Nova Roma Cursos de Ciências da Computação (6 Período) Prof Adriano Avelar - Site: wwwadrianoavelarcom Email: edsonavelar@yahoocombr PROGRAMAÇÃO ORIENTADA

Leia mais

Framework utilizando reflexão e aspectos para persistência de objetos em java

Framework utilizando reflexão e aspectos para persistência de objetos em java Framework utilizando reflexão e aspectos para persistência de objetos em java Antonio Carlos Rolloff (UNIPAR) acrolloff@gmail.com Arthur Cattaneo Zavadski (UNIPAR) arthur@datacoper.com.br Maria Aparecida

Leia mais

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição

Lista de Contas: Assinatura. Lista de Contas. Listas de Contas: Descrição. Listas de Contas: Descrição. Listas de Contas: Descrição Lista de Contas Lista de Contas: Assinatura null Quais são os métodos necessários? class ListaDeContas { void inserir (Conta c) { void retirar (Conta c) { Conta procurar (String num) { Listas de Contas:

Leia mais

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

Programação Orientada a Objetos em Java. Herança Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Programação Orientada a Objetos em Java Herança Professor: César Melo Slides baseados em materiais preparados

Leia mais

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

Influenciam nossa percepção; ajudam-nos a organizar e a coordenar a Classes estimulam projeto centrado em dados: O Paradigma Orientado a Objetos Paradigma e Programação Orientada a Objetos Prof. João Carlos Pinheiro jcpinheiro@ifma.edu.br 1 Não é um paradigma no sentido estrito: é uma subclassificacão do imperativo

Leia mais

Padrão Básico de Projeto: Interfaces e Polimorfismo

Padrão Básico de Projeto: Interfaces e Polimorfismo Padrão Básico de Projeto: Interfaces e Polimorfismo Herança de implementação versus herança de interface Há uma diferença grande entre uma classe e seu tipo A classe define ambos um tipo e uma implementação

Leia mais

Flexibilidade e Reusabilidade em Sistemas Orientados a Objetos - Uma Proposta para Implementação no EB

Flexibilidade e Reusabilidade em Sistemas Orientados a Objetos - Uma Proposta para Implementação no EB Flexibilidade e Reusabilidade em Sistemas Orientados a Objetos - Uma Proposta para Implementação no EB GLAUBER VOLKMER SILVIO DANILO DE OLIVEIRA MARÇAL DE LIMA HOKAMA Resumo. Os padrões de projetos tratam

Leia mais

Eduardo Bezerra. Editora Campus/Elsevier

Eduardo Bezerra. Editora Campus/Elsevier Princípios de Análise e Projeto de Sistemas com UML 2ª edição Eduardo Bezerra Editora Campus/Elsevier Capítulo 8 Modelagem de classes de projeto A perfeição (no projeto) é alcançada, não quando não há

Leia mais

UML Aspectos de projetos em Diagramas de classes

UML Aspectos de projetos em Diagramas de classes UML Aspectos de projetos em Diagramas de classes Após ser definido o contexto da aplicação a ser gerada. Devemos pensar em detalhar o Diagrama de Classes com informações visando uma implementação Orientada

Leia mais

Padrões clássicos ou padrões GoF O livro "Design Patterns (1994) de Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm, descreve 23 padrões de

Padrões clássicos ou padrões GoF O livro Design Patterns (1994) de Erich Gamma, John Vlissides, Ralph Jonhson e Richard Helm, descreve 23 padrões de Padrões de Projeto Disciplina: Engenharia de Software - 2009.1 Professora: Rossana Maria de Castro Andrade Assistente da disciplina: Ricardo Fernandes de Almeida 1 O que é um Padrão? Um padrão descreve

Leia mais

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação

Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação UNIFEI Disciplina Professor Universidade Federal de Itajubá Instituto de Engenharia de Sistemas e Tecnologias da Informação-IESTI PCO203 Tópicos Especiais em Programação Enzo Seraphim 1 Padrões de Operação

Leia mais

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes.

8 Classes Internas. Desenvolvimento OO com Java. Vítor E. Silva Souza (vitorsouza@inf.ufes.br) http://www.inf.ufes. Desenvolvimento OO com Java 8 Classes Internas 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

Leia mais

Programas eram lineares e com poucos módulos (Programação estruturada) Aumento da complexidade dos sistemas e difícil reusabilidade dos mesmos

Programas eram lineares e com poucos módulos (Programação estruturada) Aumento da complexidade dos sistemas e difícil reusabilidade dos mesmos OO -Objetos, classes, atributos, métodos, estado, comportamento e identidade (Slide) Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Introdução Programas eram lineares e com poucos

Leia mais

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

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

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)

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) 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) Parte: 1 Prof. Cristóvão Cunha Objetivos de aprendizagem

Leia mais

Utilização da Metodologia de Desenvolvimento Orientado a Aspectos no Mercado Local

Utilização da Metodologia de Desenvolvimento Orientado a Aspectos no Mercado Local Universidade Federal de Pernambuco (UFPE) Centro de Informática (CIN) Mestrado Profissionalizante em Ciência da Computação Orientadora: Profª Carina Alves Utilização da Metodologia de Desenvolvimento Orientado

Leia mais

PADRÕES DE PROJETO. Cleviton Monteiro (cleviton@gmail.com)

PADRÕES DE PROJETO. Cleviton Monteiro (cleviton@gmail.com) PADRÕES DE PROJETO Cleviton Monteiro (cleviton@gmail.com) Roteiro Atributos de qualidade Boas práticas de projeto Code Smell Padrões de Projeto Atributos de qualidade Coesão Acoplamento Atributos de qualidade

Leia mais

Separaçã. ção Multi-Dimensional de Interesses

Separaçã. ção Multi-Dimensional de Interesses OD 2002 Uma nova abordagem para modelagem de requisitos Separaçã ção Multi-Dimensional de Interesses Helder da Rocha (helder@acm.org) argonavis.com.br Objetivos 1. Discutir as limitações existentes no

Leia mais

2 Engenharia de Software

2 Engenharia de Software 20 2 Engenharia de Software 2.1 Design de Sistemas Orientados a Objetos Os Sistemas Orientados a Objetos não são mais novidade hoje em dia já estando há muitos anos no mercado. A orientação a objetos permite

Leia mais

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

Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP Programação Orientada a Objetos Prof. Rone Ilídio UFSJ/CAP 1) Introdução Programação Orientada a Objetos é um paradigma de programação bastante antigo. Entretanto somente nos últimos anos foi aceito realmente

Leia mais

Técnicas de Programação Avançada TCC- 00175 Profs.: Anselmo Montenegro www.ic.uff.br/~anselmo. Conteúdo: Introdução à Orientação a Objetos

Técnicas de Programação Avançada TCC- 00175 Profs.: Anselmo Montenegro www.ic.uff.br/~anselmo. Conteúdo: Introdução à Orientação a Objetos Técnicas de Programação Avançada TCC- 00175 Profs.: Anselmo Montenegro www.ic.uff.br/~anselmo Conteúdo: Introdução à Orientação a Objetos Introdução Paradigmas de programação Programação Estruturada Composição

Leia mais

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária

SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária SISTEMA TYR DIAGRAMAS DE CLASSE E SEQUÊNCIA Empresa: Academia Universitária Cascavel Novembro de 2009 Pedro Patitucci Finamore Daniel Bordignon Cassanelli Marco Antonio da Rosa DIAGRAMAS DE CLASSE E SEQUÊNCIA

Leia mais

Aspectos técnicos do desenvolvimento baseado em componentes

Aspectos técnicos do desenvolvimento baseado em componentes Aspectos técnicos do desenvolvimento baseado em componentes Um novo processo de desenvolvimento O uso de componentes traz mudanças no processo de desenvolvimento Além de desenvolver um produto, queremos

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 10 Padrões GoF (Protoype e Façade) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype Singleton

Leia mais

Programação Orientada a Objetos. Encapsulamento

Programação Orientada a Objetos. Encapsulamento Programação Orientada a Objetos Encapsulamento de Dados Ocultação de dados Garante a transparência de utilização dos componentes do software, facilitando: Entendimento Reuso Manutenção Minimiza as interdependências

Leia mais

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

ATRIBUTOS PRIVADOS 6. ENCAPSULAMENTO MÉTODOS PRIVADOS MÉTODOS PRIVADOS ATRIBUTOS PRIVADOS Podemos usar o modificador private, para tornar um atributo privado, obtendo um controle centralizado Definimos métodos para implementar todas as lógicas que utilizam ou modificam o

Leia mais

Desenvolvendo AOP com Spring.NET Aprenda a desenvolver aspectos para encapsular implementações de arquitetura das implementações de negócio

Desenvolvendo AOP com Spring.NET Aprenda a desenvolver aspectos para encapsular implementações de arquitetura das implementações de negócio [Web Boas Práticas Design Patterns Orientação a Objetos AOP Spring.NET] Desenvolvendo AOP com Spring.NET Aprenda a desenvolver aspectos para encapsular implementações de arquitetura das implementações

Leia mais

Identificação de Interesses Transversais: Uma Visão Geral

Identificação de Interesses Transversais: Uma Visão Geral Identificação de Interesses Transversais: Uma Visão Geral Paulo Afonso Parreira Júnior paulojunior@jatai.ufg.br 24 de Maio de 2013 Agenda Breve Histórico sobre Desenvolvimento de Software Separação de

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 11 Padrões GoF (Bridge e Decorator) Edirlei Soares de Lima Padrões GoF Criação: Abstract Factory Builder Factory Method Prototype Singleton

Leia mais

PADRÕES DE PROJETO FAÇADE, FLYWEIGHT E VISITOR

PADRÕES DE PROJETO FAÇADE, FLYWEIGHT E VISITOR FACULDADE DE CIÊNCIAS APLICADAS SAGRADO CORAÇÃO DIRETORIA DE ENSINO SUPERIOR COORDENAÇÃO DO CURSO DE SISTEMAS DE INFORMAÇÃO GUSTAVO ANDRÉ DE FREITAS RILIANE ALPOIM PARIS RODRIGO SILVA DE SOUZA PADRÕES

Leia mais

Desenho de Software. Desenho de Software 1

Desenho de Software. Desenho de Software 1 Desenho de Software Desenho de Software 1 Sumário Caracterização Conceitos fundamentais Desenho funcional e desenho OO Qualidades Desenho de Software 2 Bibliografia Pfleeger, Capítulo 6 Design the Modules

Leia mais

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

Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Histórico da Orientação a Objetos Ciclo de vida de Desenvolvimento de SW Baseado nos materiais dos profs: Prof.: Edilberto M. Silva http://www.edilms.eti.br Edna Canedo Marcio de Carvalho Victorino Brasília-DF,

Leia mais

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

Engenharia de software para desenvolvimento com LabVIEW: Validação Engenharia de software para desenvolvimento com LabVIEW: Orientação a Objetos, Statechart e Validação André Pereira Engenheiro de Vendas (Grande São Paulo) Alexsander Loula Coordenador Suporte Técnico

Leia mais

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo;

Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo; um objeto; é definido; Um objeto é uma instância de uma 'classe'. Você define uma classe utilizando o trecho de código abaixo; class ClasseBase{ é instanciado; $objetobase = new ClasseBase; Caso queira,

Leia mais

Técnicas de Programação II

Técnicas de Programação II Técnicas de Programação II Aula 06 Orientação a Objetos e Classes Edirlei Soares de Lima Orientação a Objetos O ser humano se relaciona com o mundo através do conceito de objetos.

Leia mais

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto

Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Desenvolvimento de Sistemas Orientados a Objetos com UML UP/RUP: Projeto Engenharia de Software I Informática 2009 Profa. Dra. Itana Gimenes RUP: Artefatos de projeto Modelo de Projeto: Use-Case Realization-projeto

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 01 Orientação a Objetos Edirlei Soares de Lima Paradigmas de Programação Um paradigma de programação consiste na filosofia adotada na

Leia mais

Análise e Projeto Orientados por Objetos

Análise e Projeto Orientados por Objetos Análise e Projeto Orientados por Objetos Aula 02 Análise e Projeto OO Edirlei Soares de Lima Análise A análise modela o problema e consiste das atividades necessárias para entender

Leia mais

Guia de Fatores de Qualidade de OO e Java

Guia de Fatores de Qualidade de OO e Java Qualiti Software Processes Guia de Fatores de Qualidade de OO e Java Versã o 1.0 Este documento só pode ser utilizado para fins educacionais, no Centro de Informática da Universidade Federal de Pernambuco.

Leia mais

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento

PHP Profissional. Alexandre Altair de Melo Mauricio G. F. Nascimento PHP Profissional APRENDA A DESENVOLVER SISTEMAS PROFISSIONAIS ORIENTADOS A OBJETOS COM PADRÕES DE PROJETO Alexandre Altair de Melo Mauricio G. F. Nascimento Novatec Sumário Agradecimentos...13 Sobre os

Leia mais

Implementando uma Classe e Criando Objetos a partir dela

Implementando uma Classe e Criando Objetos a partir dela Análise e Desenvolvimento de Sistemas ADS Programação Orientada a Obejeto POO 3º Semestre AULA 04 - INTRODUÇÃO À PROGRAMAÇÃO ORIENTADA A OBJETO (POO) Parte: 2 Prof. Cristóvão Cunha Implementando uma Classe

Leia mais

Programação Orientada a Aspectos Aplicada. Charles Wellington de Oliveira Fortes chalkmaster@gmail.com

Programação Orientada a Aspectos Aplicada. Charles Wellington de Oliveira Fortes chalkmaster@gmail.com Programação Orientada a Aspectos Aplicada. Charles Wellington de Oliveira Fortes chalkmaster@gmail.com Resumo: Demonstrar de forma clara e prática como a Programação Orientada a Aspectos pode ajudar a

Leia mais

Factory Method. Edeyson Andrade Gomes www.edeyson.com.br

Factory Method. Edeyson Andrade Gomes www.edeyson.com.br Factory Method Edeyson Andrade Gomes www.edeyson.com.br Agenda Resumo Quando Usar Participantes Colaborações Conseqüências Exemplo Estrutura Genérica Exercício 2 Resumo Ao invés do cliente instanciar objetos

Leia mais

7 Trabalhos Relacionados A idéia é tentar dar todas as informações que ajudem os outros a julgar o valor da sua contribuição; não apenas as informações que levem o julgamento a uma direção em particular.

Leia mais

Java 2 Standard Edition Como criar classes e objetos

Java 2 Standard Edition Como criar classes e objetos Java 2 Standard Edition Como criar classes e objetos Helder da Rocha www.argonavis.com.br 1 Assuntos abordados Este módulo explora detalhes da construção de classes e objetos Construtores Implicações da

Leia mais

Análise de Programação

Análise de Programação Análise de Programação Conceitos Avançados da Linguagem de Programação Java Prof Gilberto B Oliveira Encapsulamento Proteger o dado dentro de uma classe (capsula segura) Facilita o uso da classe por outros

Leia mais

LINGUAGEM ORIENTADA A OBJETOS

LINGUAGEM ORIENTADA A OBJETOS LINGUAGEM ORIENTADA A OBJETOS TI MÓDULO II O ECLIPSE O eclipse é uma IDE Open Source (código fonte aberto) que serve para o desenvolvimento em muitas linguagens: PHP Java Python HTML C/C++ A IDE Eclipse

Leia mais

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp

Java Básico. Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Java Básico Classes Abstratas, Exceções e Interfaces Prof. Fernando Vanini Ic-Unicamp Classes Abstratas construção de uma classe abstrata construção de classes derivadas Classes e Herança Uma classe define

Leia mais

Construção de novas Classes em Java. Classes Atributos Métodos Herança...

Construção de novas Classes em Java. Classes Atributos Métodos Herança... Construção de novas Classes em Java Classes Atributos Métodos Herança... 1 Exemplo Representação em UML Java (Unified Modeling Language) Stack items : Vector Stack( ) push( ) pop( ) isempty( ) finalize(

Leia mais

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

Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos. Relacionamentos entre objetos Programação Orientada a Objetos Relacionamentos entre objetos Associação, composição e agregação Construtores e sobrecarga Variáveis de classe e de instância Reinaldo Gomes reinaldo@cefet-al.br Objetos

Leia mais

Tópicos em Engenharia de Computação

Tópicos em Engenharia de Computação Tópicos em Engenharia de Computação Introdução / Revisão UML e POO (JAVA) Prof. Ivan Prof. Zagari UML Linguagem Unificada. Não é metodologia, processo ou método. Versão atual 2.0 3 categorias de Diagramas

Leia mais

Curso - Padrões de Projeto Módulo 2: Padrões de Criação

Curso - Padrões de Projeto Módulo 2: Padrões de Criação Curso - Padrões de Projeto Módulo 2: Padrões de Criação Vítor E. Silva Souza vitorsouza@gmail.com http://www.javablogs.com.br/page/engenho http://esjug.dev.java.net Sobre o Instrutor Formação: Java: Graduação

Leia mais

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM

Programação OO em Java. Profa Andréa Schwertner Charão DELC/CT/UFSM Programação OO em Java Profa Andréa Schwertner Charão DELC/CT/UFSM Sumário Classes abstratas Interfaces Tipos genéricos Coleções Classes abstratas São classes que não podem ser instanciadas, porque representam

Leia mais

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010

Módulo 02 Programação Orientada a Objetos. Última atualização: 07/06/2010 Módulo 02 Programação Orientada a Objetos Última atualização: 07/06/2010 1 Objetivos Definir conceitos de orientação a objetos: o abstração, encapsulamento, pacotes. Discutir reutilização de código em

Leia mais

Noções sobre Objetos e Classes

Noções sobre Objetos e Classes Noções sobre Objetos e Classes Prof. Marcelo Cohen 1. Elementos de programação Revisão de programação variáveis, tipos de dados expressões e operadores cadeias de caracteres escopo de variáveis Revisão

Leia mais

Padrão Básico de Projeto: Herança versus Composição

Padrão Básico de Projeto: Herança versus Composição Padrão Básico de Projeto: Herança versus Composição Composição e Herança Composição e herança são dois mecanismos para reutilizar funcionalidade Alguns anos atrás (e na cabeça de alguns programadores ainda!),

Leia mais