Organizando seus Testes Funcionais AUMENTANDO A MANUTENIBILIDADE DE TESTES FUNCIONAIS ATRAVÉS DA ORIENTAÇÃO A OBJETOS.

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

Download "Organizando seus Testes Funcionais AUMENTANDO A MANUTENIBILIDADE DE TESTES FUNCIONAIS ATRAVÉS DA ORIENTAÇÃO A OBJETOS."

Transcrição

1 page objects_ PAGE OBJECTS Organizando seus Testes Funcionais AUMENTANDO A MANUTENIBILIDADE DE TESTES FUNCIONAIS ATRAVÉS DA ORIENTAÇÃO A OBJETOS. Testes são parte fundamental do processo de desenvolvimento de software. Testes são criados com o objetivo de garantir que os requisitos funcionais de um sistema são atendidos. Contudo, testar a interface de uma aplicação (especialmente Web) não é algo trivial. Ferramentas, como o Selenium, foram criadas com o objetivo de automatizar o processo de reprodução das ações de navegação em uma aplicação. O problema é que estas ferramentas automatizadas nem sempre geram um código simples de se manter. Como solução para este problema, apresentamos o design pattern Page Object que tem como objetivo aplicar as técnicas da programação orientada a objetos aos testes funcionais. O Testes de Interface com o Usuário (UI) / 46

2 Eder Doutorando em Engenharia Elétrica na Unicamp, é mestre em Engenharia Elétrica pela Unicamp (2009) e formado em Ciência da Computação pela Universidade Estadual de Londrina (2007). Atualmente é engenheiro de Software na Dextra Sistemas e leciona diversos cursos de graduação e pós-graduação na Faccamp e Unisal e editor do InfoQ Brasil. Leandro Biólogo formado pela Unicamp (2007) e técnico em Processamento de Dados formado pelo Colégio Técnico da Unicamp (1999). Atua com desenvolvimento de software há 11 anos sendo 8 deles com Java. Atualmente, é engenheiro de Software na Dextra Sistemas. - Utilizando Page Objects - - -» Encapsulamento de detalhes da implementação: - -» Métodos representam serviços:» Figura 1. Representação do pattern Page Object: as páginas de busca do Google são representadas por objetos PageObject que fornecem métodos públicos, encapsulando os detalhes para manipulação da página e disponibilizando o acesso aos diversos testes que a utilizam. 47 \

3 » Métodos retornam outros Page Objects: Implementando o padrão - sua public class TestaMecanismoBusca private static WebDriver public static void preparatestes() // browsers. Nesse caso driver = new public void testabuscaseleniumtest() PaginaDeBusca.acessa(driver); PaginaDeResultadoDaBusca paginaderesultadodabusca = paginadebusca.realizabusca( selenium test ); Assert.assertTrue(paginaDeResultadoDaBusca.encontrouSite( seleniumhq.org public void testabuscapageobjectpattern() PaginaDeBusca.acessa(driver); PaginaDeResultadoDaBusca paginaderesultadodabusca = paginadebusca.realizabusca ( pageobject pattern ); Assert.assertT rue(paginaderesultadodabusca.encontrousite( code.google.com/p/sele nium/wiki/pageobjects public static void () driver.close(); Listagem 1. Classe que implementa o teste a ser executado. - Listagem 2. Implementação dos PageObjects referentes à da Página de Busca e Resultado. public class PaginaDeBusca private static String URL = com.br ; private static long WAIT_TIME = 2000l; private WebDriver driver; private PaginaDeBusca(WebDriver driver) this.driver = driver; public static PaginaDeBusca acessa( WebDriver driver) // navega para a URL desta pagina driver.navigate().to(url); // retorna uma nova instancia do objeto que // representa a pagina da busca / 48

4 /eu uso Desenvolvedor de Software, com 7 anos de experiência em projetos de desenvolvimento de sistemas corporativos na plataforma Java Enterprise Edition e Ruby on Rails. Formado em Ciência da Computação na Universidade de São Paulo/São Carlos, atuando ainda como consultor de arquitetura de sistemas e instrutor de treinamentos. - - return new PaginaDeBusca(driver); public PaginaDeResultadoDaBusca realizabusca(string conteudodabusca) // escreve o valor de conteudodabusca em um driver. (By.name( q )).sendkeys( conteudodabusca); // pelo nome btng driver. (By.name( btng )).click(); try // aguarda um tempo ate a pagina do // resultado de busca ser carregada Thread.sleep(WAIT_TIME); catch (InterruptedException e) throw new RuntimeException( Can not wait for page to load., e); // retorna um novo objeto que representa a // pagina do resultado da busca return new PaginaDeResultadoDaBusca(driver); // public class PaginaDeResultadoDaBusca private WebDriver driver; public PaginaDeResultadoDaBusca( WebDriver driver) this.driver = driver; public boolean encontrousite(string urlsiteprocurado) // procura por todos os elementos li de classe // css g que estiverem dentro de um div de id res List<WebElement> itensencontrados = driver. (By.cssSelector( div#res li.g )); boolean elementoencontrado = false; for (WebElement itemencontrado : itensencontrados) // obtem o conteudo de um elemento cite // dentro de cada item encontrado String linkdoelementoencontrado = itemencontrado. (By.tagName( cite )).gettext(); elementoencontrado = linkdoelementoencontrado.contains (urlsiteprocurado); if (elementoencontrado) break; return elementoencontrado; \

5 /eu uso da Computação pela Unicamp e bacharel em Ciência da Computação pela UFMG. Na Receita Federal (V&V). Participa ativamente do curso de especialização em Engenharia de Software da Unicamp desde temas relacionados a testes e qualidade de software em instituições e eventos, e possui uma série de publicações nacionais e internacionais relacionadas Listagem 3. Refactoring dos Page Objects e da classe de testes. public abstract class PaginaBase private static long WAIT_TIME = 2000l; protected WebDriver driver; public PaginaBase(WebDriver driver) this.driver = driver; protected void preencheinputtext(string cssselector, String conteudo) WebElement inputtext = driver. ( By.cssSelector(cssSelector)); inputtext.clear(); inputtext.sendkeys(conteudo); protected void clica(string cssselector) driver. (By.cssSelector(cssSelector)). click(); try // aguarda um tempo ate a pagina do resultado // de busca ser carregada Thread.sleep(WAIT_TIME); catch (InterruptedException e) throw new RuntimeException( Nao foi possivel esperar a pagina ser carregada., e); protected List<WebElement> buscaporelementos( String cssselector) return driver. (By.cssSelector( cssselector)); / 50

6 public abstract String geturl(); // public class PaginaDeBusca extends PaginaBase private static String INPUT_BUSCA = input[name=q] ; private static String BOTAO_DE_BUSCA = input[name=btng] ; public PaginaDeBusca(WebDriver driver) super(driver); public static PaginaDeBusca acessa(webdriver driver) protected void acessapagina() driver.navigate().to(this.geturl()); new PaginaDeBusca(driver); paginadebusca.acessapagina(); return paginadebusca; quandousuarioprocurapor( selenium test ); /para saber mais private void entaomecanismodebuscaencontrasite( String siteesperado) Assert.assertTrue(paginaDeResultadoDaBusca. public static void () driver.close(); entaomecanismodebuscaencontrasite( seleniumhq.org public void testabuscapageobjectpattern() dadoqueusuarioacessamecanismodebusca(); quandousuarioprocurapor( pageobject pattern ); entaomecanismodebuscaencontrasite( code.google.com/p/selenium/wiki/ PageObjects); private void dadoqueusuarioacessamecanismodebusca() paginadebusca = PaginaDeBusca.acessa(driver); private void quandousuarioprocurapor(string conteudo) paginaderesultadodabusca = paginadebusca.realizabusca(conteudo); /referências 51 \

7 Listagem 6. public class PaginaDeBusca extends PaginaBase private static String INPUT_BUSCA = input#sb_form_q ; private static String BOTAO_DE_BUSCA = input#sb_form_go ; public PaginaDeBusca(WebDriver driver) super(driver); public static PaginaDeBusca acessa(webdriver driver) new PaginaDeBusca(driver); paginadebusca.acessapagina(); return paginadebusca; public PaginaDeResultadoDaBusca realizabusca(string conteudodabusca) this.preencheinputtext(input_busca, conteudodabusca); this.clica(botao_de_busca); return new public String geturl() return ; // public class PaginaDeResultadoDaBusca extends PaginaBase private static String LISTA_DE_RESULTADO = div#results li cite ; public PaginaDeResultadoDaBusca(WebDriver driver) super(driver); public boolean encontrousite(string urlsiteprocurado) List<WebElement> itensencontrados = this.buscaporelementos(lista_de_ RESULTADO); boolean elementoencontrado = false; for (WebElement itemencontrado : itensencontrados) // obtem o conteudo de um elemento cite // dentro de cada itemencontrado String linkdoelementoencontrado = itemencontrado.gettext().replaceall(, ); elementoencontrado = linkdoelementoencontrado.contains( urlsiteprocurado); / 52

Agilizando o processo de redeploy de aplicações Java

Agilizando o processo de redeploy de aplicações Java classghost_ ClassGhost Agilizando o processo de redeploy de aplicações Java Conheça a funcionalidade deste framework que contribui para a agilidade e produtividade no processo processo de redeploy de aplicações

Leia mais

Ferramenta Selenium. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP

Ferramenta Selenium. Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP Ferramenta Selenium 1/38 O que é A ferramenta Selenium permite que se realizam testes automatizados de aplicativos Web Em particular, teste de regressão IDE Selenium Selenium WebDriver http://www.seleniumhq.org/

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Tipos, Literais, Operadores

Tipos, Literais, Operadores Tipos, Literais, Operadores Identificadores São palavras utilizadas para nomear variáveis, métodos e classes Na linguagem Java, o identificador sempre começa por letra, sublinhado(_) ou cifrão ($) Não

Leia mais

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes.

Sabemos que a classe é responsável por definir a estrutura e o comportamento de seus objetos. Portanto, os objetos são instâncias das classes. JAVA ENCAPSULAMENTO Na linguagem de programação Java, a classe é o alicerce para o encapsulamento, o qual é definido como uma técnica que faz com que os atributos da classe permaneçam ocultos, pois desta

Leia mais

Código-Fonte da Prática 02

Código-Fonte da Prática 02 Código-Fonte da Prática 02 Sumário Classe ConexaoDB... 2 Classe PropriedadesBD... 5 Arquivo conexao.properties... 6 Programação Comercial Walderson Shimokawa 1 Classe ConexaoDB package br.edu.univag.util.sql;

Leia mais

Programação Orientada a Objetos Relacionamentos entre classes

Programação Orientada a Objetos Relacionamentos entre classes Programação Orientada a Objetos Relacionamentos entre classes Prof. Vicente Paulo de Camargo RELACIONAMENTO ENTRE CLASSES Interface agregação Dependencia composição generalização associação RELACIONAMENTO

Leia mais

Instituto Superior de Engenharia de Lisboa

Instituto Superior de Engenharia de Lisboa Instituto Superior de Engenharia de Lisboa Introdução à Programação (PG) Docente: Pedro Viçoso Fazenda (pfazenda@cedet.isel.ipl.pt) Professor Responsável: Pedro Alexandre Pereira (palex@cc.isel.ipl.pt)

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa é transferido

Leia mais

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio)

Tratamento de Exceção. Programação Orientada a Objetos Java (Rone Ilídio) Tratamento de Exceção Programação Orientada a Objetos Java (Rone Ilídio) Tratamento de exceção Exceção é uma contração de Evento de Exceção Evento de exceção impede a execução normal de um programa Quando

Leia mais

Programação Estruturada e Orientada a Objetos

Programação Estruturada e Orientada a Objetos INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE Programação Estruturada e Orientada a Objetos Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br

Leia mais

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

Programação Orientada a Objetos. Vagner Luz do Carmo - Vluzrmos Programação Orientada a Objetos Vagner Luz do Carmo - Vluzrmos Questão 1 Dada a seguinte classe na linguagem JAVA: public class Carro { public String retornacor(){ ; return Azul ; private String retornachassi(){

Leia mais

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção.

Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. 6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável - O controlo da execução do programa

Leia mais

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java

Universidade de Mogi das Cruzes Implementação Orientada a Objetos - Profª. Danielle Martin. Guia da Sintaxe do Java Guia da Sintaxe do Java TIPOS PRIMITIVOS DE DADOS DO JAVA São os tipos nativos de dados do Java, que podem ser usados na declaração de atributos, variáveis, parâmetros. Tipo primitivo Tamanho Valor padrão

Leia mais

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu:

Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz /05/13. Questão: Total Pontos: Gráu: Computação II - Java - Prova 1 Prof. Adriano Joaquim de Oliveira Cruz - 2015/05/13 Questão: 1 2 3 4 5 6 Total Pontos: 20 15 15 10 10 30 100 Gráu: 1. Defina os termos listados a seguir: (a) (10 Pontos)

Leia mais

Linguagem de Programação II Implementação

Linguagem de Programação II Implementação Linguagem de Programação II Implementação Prof. Alessandro Borges 2 Tópicos Implementação em Java Variáveis Palavras reservadas Pacotes Identificador this Acessando membros de outros objetos API Java Nossa

Leia mais

TRATAMENTO DE EXCEÇÕES

TRATAMENTO DE EXCEÇÕES Uma exceção em Java é um sinal que alguma condição excepcional aconteceu; Algo de errado aconteceu! Exemplos: solicitação de abertura de um arquivo não encontrado; índice de um array fora de faixa; uma

Leia mais

Exceções AULA 13. Ricardo Massa F. Lima Sérgio C. B. Soares

Exceções AULA 13. Ricardo Massa F. Lima Sérgio C. B. Soares Introdução a Programação IF669 http://www.cin.ufpe.br/~if669 Exceções AULA 13 Ricardo Massa F. Lima rmfl@cin.ufpe.br Sérgio C. B. Soares scbs@cin.ufpe.br Exceções Objetivo Depois desta aula você será capaz

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 6 Exceções Quando um programa viola as restrições semânticas da linguagem, a JVM assinala um erro ao programa, sob a forma de exceção. Uma exceção é um erro recuperável O controlo da execução do programa

Leia mais

1) Responda de acordo com os conceitos de orientação a objetos (0,5).

1) Responda de acordo com os conceitos de orientação a objetos (0,5). Avalição II (Teórica) 22/06/2017 Disciplina Linguagem de Programação II Prof. Wagner, dos Santos C. de Jesus Curso Engenharia da Computação Questões Solução da Avaliação 1) Responda de acordo com os conceitos

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

9 Classes Abstractas e Interfaces

9 Classes Abstractas e Interfaces 9 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos Engenharia da Computação Professor: Rosalvo Ferreira de Oliveira Neto Dados Pessoais Rosalvo Ferreira de Oliveira Neto MSc. em ciência da computação (UFPE) rosalvo.oliveira@univasf.edu.br

Leia mais

Palavras Reservadas da Linguagem Java

Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java Palavras Reservadas da Linguagem Java: Categorias Tipos de dados primitivos Literais Pseudo-variáveis Desvio e controle de fluxo Pacotes Exceções Modificadores de

Leia mais

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira

Tratamento de Erros. Sérgio Luiz Ruivace Cerqueira Tratamento de Erros Sérgio Luiz Ruivace Cerqueira sergioruivace@gmail.com Agenda Introdução Try, catch, finally Unchecked Exceptions Como levantar exceções Boas práticas O problema Calculadora numero1:

Leia mais

Laboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr

Laboratório de Programação. Aula 12 Java 5COP088. Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr 5COP088 Laboratório de Programação Aula 12 Exceções Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Manipulação de Exceções; 1) Try e Catch 2) Finally 3) Propagação (Throw e Throws) 2) Erros e Exceções Comuns;

Leia mais

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação. Processamento Paralelo Threads. Aluno: Wagner Palacio

UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação. Processamento Paralelo Threads. Aluno: Wagner Palacio UNIVERSIDADE FEDERAL RURAL DE PERNAMBUCO Bacharelado em Sistemas de Informação Processamento Paralelo Threads Aluno: Wagner Palacio Turma: 3º período Professor: Giordano Cabral Recife, 29 de maio de 2012

Leia mais

Compilação dos trabalhos: questões de concurso

Compilação dos trabalhos: questões de concurso 1 Compilação dos trabalhos: questões de concurso UFBA/DCC/Linguagens para Aplicação Comercial/2009.1 MPU/2007 (Equipe 1) 1 Quanto às variáveis Java, um inteiro de 64 bits em notação de complemento de dois

Leia mais

Escolhendo quais testes rodar através do JUnit e profiles do Maven

Escolhendo quais testes rodar através do JUnit e profiles do Maven maven_ Escolhendo quais testes rodar através do JUnit e profiles do Maven Escolha quais testes rodar através de profiles do Maven, seu plugin Surefire e o framework JUnit. Grátis, rápido e indolor. Viva

Leia mais

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO

PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO COLÉGIO ESTADUAL ULYSSES GUIMARÃES CURSO TÉCNICO PROFISSIONALIZANTE EM INFORMÁTICA ERINALDO SANCHES NASCIMENTO PROGRAMAÇÃO ORIENTADA A OBJETOS: OCULTAR INFORMAÇÕES E ENCAPSULAMENTO FOZ DO IGUAÇU 2013 LISTA

Leia mais

MsC. João Maria MsC. Liviane Melo

MsC. João Maria MsC. Liviane Melo Disciplina: Programação Orientada à Objetos AULA 02 Corpo docente: MsC. Alexandro Vladno Edmilson Campos MsC. Fábio Procópio Esp. Felipe Dantas MsC. João Maria MsC. Liviane Melo 2 Tipo Tamanho Alcance

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

Threads. Leonardo Gresta Paulino Murta

Threads. Leonardo Gresta Paulino Murta Threads Leonardo Gresta Paulino Murta leomurta@ic.uff.br Aula de hoje Estudaremos a execução em paralelo de programas em Java por meio de Threads Leonardo Murta Threads 2 Por que usar Threads? Threads

Leia mais

1 Introdução e Conceitos básicos

1 Introdução e Conceitos básicos 1 Introdução e Conceitos básicos Aula 02 Sumário Capítulo 1 Introdução e Conceitos básicos 1.1 Modelos 1.2 Tipos primitivos de dados 1.3 Tipo Abstrato de dados 1.4 Orientação a Objetos 1.4.1 Classe 1.4.2

Leia mais

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas

UNIP - Ciência da Computação e Sistemas de Informação. Estrutura de Dados. AULA 5 Pilhas UNIP - Ciência da Computação e Sistemas de Informação Estrutura de Dados AULA Pilhas Estrutura de Dados A Estrutura de Dados Pilha Pilha é uma estrutura de dados usada em programação, que tem uma regra

Leia mais

Classe Abstrata e Interface

Classe Abstrata e Interface Orientação a objetos com Java Classe Abstrata e Interface Byron Leite byron.leite@gmail.com 1 Herança Agenda Geral Parte 04 Encapsulamento Pacotes Modificadores de Acesso private, default, protected, public

Leia mais

Linguagem Algorítmica OO. Linguagem Algorítmica

Linguagem Algorítmica OO. Linguagem Algorítmica UFSC-CTC-INE INE5384 - Estruturas de Dados Linguagem Algorítmica OO Prof. Ronaldo S. Mello 2002/2 Linguagem Algorítmica Independente de linguagem de programação OO Utilizada para: Exemplificar os algoritmos

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Threads em Java Paulo Ricardo Lisboa de Almeida 1 Temos várias interfaces e classes que podem facilitar nossa vida Runnable Callable Thread... 2 Para a aula de sistemas operacionais,

Leia mais

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE

PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO Nº 006/2016 CONTRATO DE GESTÃO IGAM Nº 002/IGAM/2012 09/2017 1 PLATAFORMA SIGA RIO DAS VELHAS MANUAL DO CÓDIGO FONTE ATO CONVOCATÓRIO

Leia mais

Interfaces POO. Prof. Marcio Delamaro

Interfaces POO. Prof. Marcio Delamaro Interfaces POO Prof. Marcio Delamaro Programação Orientada a Objetos Prof Marcio Delamaro ICMC/USP 1/41 O que é interface É um template de classe Outras classes podem seguir esse template Chamamos isso

Leia mais

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos

Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos Lista de Exercícios da disciplina Aplicações de Linguagem de Programação Orientada a objetos 1. Para a construção de uma aplicação gráfica se faz necessário conceber a interface de aplicação, identificando-se

Leia mais

Programação Concorrente com Thread Java. Luiz Affonso Guedes Sistemas Distribuidos

Programação Concorrente com Thread Java. Luiz Affonso Guedes Sistemas Distribuidos Programação Concorrente com Thread Java Luiz Affonso Guedes Sistemas Distribuidos Definições Básicas Threads são sub-procesos no sistema operacional. É menos custoso gerenciar threads do que processos.

Leia mais

Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica

Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão acadêmica Unidade Acadêmica: Faculdade de Computação FACOM Disciplina: Programação Orientada a Objetos I Professor: Fabiano Azevedo Dorça Prática 03 Objetivo: Aplicar a técnica de encapsulamento no sistema de gestão

Leia mais

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... }

Recapitulando. Construtores: (Overload assinatura) public Circle() {...} public Circle(double x, double y, double r) {... } Recapitulando Orientação a objetos: programas organizados em torno da definição de classes, instanciação de objetos e troca de mensagens. Declaração de variáveis de referencia: Circle c; Criação/instanciação

Leia mais

Threads em Java. Java Threads. Java Componentes: JVM JVM:

Threads em Java. Java Threads. Java Componentes: JVM JVM: Threads em Java (Aula 17) Java Threads Difícil de classificar com user thread ou kernel thread As threads Java são gerenciadas pela JVM. Threads em Java podem ser criadas das seguintes maneiras: Fazendo

Leia mais

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){

nome = n; cargo = c; salario = s; public void print() { System.out.println(nome cargo salario); public void aumento( double fator){ UNIVERSIDADE FEDERAL DE SANTA CATARINA - Departamento de Automação e Sistemas PROGRAMAÇÃO DE SISTEMAS AUTOMATIZADOS - 2016/2 - P2 Nome: ------------------------------------------------------------------------------------------------------

Leia mais

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador)

Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça. Padrão Observer (Observador) Universidade Federal de Uberlândia Faculdade de Computação Programação Orientada a Objetos II Prof. Fabiano Dorça Problema: Definir uma dependência um-para-muitos entre objetos, de forma quando o estado

Leia mais

SOFTWARE PARA VERIFICAÇÃO DE CONFORMIDADE DE SISTEMAS À NORMA ISO/IEC Dayana Fernanda Trapp Orientador: Paulo Fernando da Silva

SOFTWARE PARA VERIFICAÇÃO DE CONFORMIDADE DE SISTEMAS À NORMA ISO/IEC Dayana Fernanda Trapp Orientador: Paulo Fernando da Silva SOFTWARE PARA VERIFICAÇÃO DE CONFORMIDADE DE SISTEMAS À NORMA ISO/IEC 15408 Dayana Fernanda Trapp Orientador: Paulo Fernando da Silva Roteiro Introdução Objetivos Fundamentação teórica Desenvolvimento

Leia mais

Análise da Utilização de Padrões no Desenvolvimento de Softwares em Camadas

Análise da Utilização de Padrões no Desenvolvimento de Softwares em Camadas Análise da Utilização de Padrões no Desenvolvimento de Softwares em Camadas (Exemplo de Arquitetura) Jadson José dos Santos jadsonjs@gmail.com Natal/RN 2008 8 EXEMPLO DE ARQUITETURA COM PADRÕES... 3 9

Leia mais

Objetos Dublês. AgilCoop Cursos de Verão Mariana Bravo IME/USP

Objetos Dublês. AgilCoop Cursos de Verão Mariana Bravo IME/USP Objetos Dublês AgilCoop Cursos de Verão 2010 Mariana Bravo IME/USP Motivação Testes de unidade focam em uma unidade Mas as unidades do sistema têm dependências entre si Dublês oferecem uma maneira de isolar

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Ciência da Computação Prof. Elias Ferreira Elaborador por: Ana Claudia Bastos Loureiro Monção JUNIT Teste de Software Processo de Software Um processo de software pode ser visto como o conjunto de atividades,

Leia mais

Orientação a Objetos e Java

Orientação a Objetos e Java Orientação a Objetos e Java Daves Martins davesmartins@yahoo.com.br Mestre em Computação de Alto Desempenho pela UFRJ Especialista em Banco de Dados Analista Web Orientação a Objetos e Java Características

Leia mais

Prof. Fernando V. Paulovich 8 de novembro de SCC Programação Orientada a Objetos

Prof. Fernando V. Paulovich  8 de novembro de SCC Programação Orientada a Objetos Tratamento de Exceções SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC)

Leia mais

Padrão de Projeto State

Padrão de Projeto State padrão state_ cinto de utilidades MÁQUINAS DE ESTADO COM O Padrão de Projeto State Desenvolver software é trabalhar com abstrações o tempo todo, pois estas nos ajudam a gerenciar a complexidade nos sistemas

Leia mais

Java para Desktop. Programação Orientada à Objetos 2 JSE

Java para Desktop. Programação Orientada à Objetos 2 JSE Java para Desktop Programação Orientada à Objetos 2 JSE Encapsulamento significa "ocultar informações, ele define que cada objeto contém todos os detalhes de implementação necessários sobre como ele funciona

Leia mais

2 A Infra-Estrutura SCS

2 A Infra-Estrutura SCS 2 A Infra-Estrutura SCS O SCS [7] é uma infra-estrutura para dar apoio à instalação, carga e execução de componentes de software em um ambiente distribuído. Atualmente, é fornecida uma implementação do

Leia mais

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS

PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS PROGRAMAÇÃO PARA DISPOSITIVOS MÓVEIS Aula 2 Vidal. Ronnison Reges 1 1 Análise e Desenvolvimento de Sistemas - Parangaba Centro Universitário Estácio do Ceará 2018 Vidal. Ronnison Reges (Centro Universitário

Leia mais

No final deste curso, saberás criar programas através da linguagem de programação Java.

No final deste curso, saberás criar programas através da linguagem de programação Java. Programação em Java Programação Formato: Mentored - Online Preço: 415 ( Os valores apresentados não incluem IVA. Oferta de IVA a particulares e estudantes. ) Horário: Flexível das 24h/24h Duração: ~45h

Leia mais

Fundamentos de Programação 1

Fundamentos de Programação 1 Fundamentos de Programação 1 Slides N. 2 D / Prof. SIMÃO Slides elaborados pelo Prof. Robson Linhares elaborados pelo Prof. Robson Linhares http://www.dainf.ct.utfpr.edu.br/~robson/ Jean Marcelo SIMÃO

Leia mais

O JUnit permite a realização de testes de unidades, conhecidos como "caixa branca", facilitando assim a correção de métodos e objetos.

O JUnit permite a realização de testes de unidades, conhecidos como caixa branca, facilitando assim a correção de métodos e objetos. JUnit O JUnit é um framework open-source, criado por Erich Gamma e Kent Beck, com suporte à criação de testes automatizados na linguagem de programação Java. Esse framework facilita a criação de código

Leia mais

Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual

Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual Aula 09 Objetivo Implementar um exemplo de relacionamento entre classes um para muitos (1:N) e um para um (1:1). Sistema para uma Promotora de Evento Agenda Anual Banco de Dados 1. Crie um novo projeto

Leia mais

Orientação a Objetos AULA 09

Orientação a Objetos AULA 09 Orientação a Objetos AULA 09 Prof. Fabrício Martins Mendonça Conteúdo da Aula ü Coleções ü Coleções lista de objetos ü Coleções conjuntos 2 Coleções Podemos armazenar vários objetos em um array e este

Leia mais

Programação de Computadores II TCC /Turma A 1

Programação de Computadores II TCC /Turma A 1 Programação de Computadores II TCC 00.174/Turma A 1 Professor Leandro A. F. Fernandes http://www.ic.uff.br/~laffernandes Conteúdo: Tratamento de exceções Material elaborado pelos profs. Anselmo Montenegro

Leia mais

Sistema Futebol - Java

Sistema Futebol - Java Sistema Futebol - Java ARTEFATO 01 Indice 1. CLASSE PESSOA... 2 2. CLASSE JOGADOR... 3 3. CLASSE TECNICO... 5 4. CLASSE SISTEMAFUTEBOL... 6 5. CLASSE SISTEMAFUTEBOLMAIN... 10 6. EXERCÍCIOS... 10 AT01 Sistema

Leia mais

Múltiplas Linhas de Execução Java (Threads)

Múltiplas Linhas de Execução Java (Threads) Múltiplas Linhas de Execução Java (Threads) SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas

Leia mais

Engenharia de Software

Engenharia de Software UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre Repescagem do 2 o Teste, 1 de Julho de 2016 Nome: Número: Este teste tem um conjunto de 10 perguntas

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro

Programação Orientada a Objectos - P. Prata, P. Fazendeiro 7 Classes Abstractas e Interfaces Classe Abstracta Classe em que pelo menos um dos métodos de instância não é implementado. Exemplo: public abstract class Forma{ public abstract double area(); public abstract

Leia mais

Linguagem de Programação III

Linguagem de Programação III Linguagem de Programação III Aula-7 Reutilização de Classes Prof. Esbel Tomás Valero Orellana Até Aqui Introdução a POO e sua implementação em Java Atributos, métodos e encapsulamento dos mesmos Trabalhando

Leia mais

Herança. Prof. Fernando V. Paulovich 23 de agosto de 2010

Herança. Prof. Fernando V. Paulovich  23 de agosto de 2010 Herança SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação(ICMC) Universidade

Leia mais

Programação Concorrente em Java

Programação Concorrente em Java Programação Concorrente em Java Prof. Orlando Loques - IC/UFF versão 17-04-2001 Referências: - Programação Concorrente em Java, Sérgio Teixeira de Carvalho & Leonardo N. M. Reis IC-UFF - Ousterhout, J.:

Leia mais

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

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista

Leia mais

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos)

Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a. cada classe e cada membro da classe (dados e métodos) Mecanismos de controlo de acesso Especificam quem tem acesso a cada entidade, isto é, quem tem acesso a cada classe e cada membro da classe (dados e métodos) Modificadores de acesso: public protected private

Leia mais

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

UNIVERSIDADE FEDERAL DE MATO GROSSO DO SUL SISTEMAS DE INFORMAÇÃO - CÂMPUS DE COXIM FUNDAMENTOS EM ORIENTAÇÃO A OBJETOS Data final de entrega 16/09/2014, até às 23h59min Enviar o arquivo de respostas em formato PDF e o arquivozip com códigos fontes para o e-mail motafernandomaia@gmailcom, insira no assunto do e-mail [Lista

Leia mais

Lição 11 Herança, polimorfismo e interfaces

Lição 11 Herança, polimorfismo e interfaces Lição 11 Herança, polimorfismo e interfaces 1 Objetivos Ao final da lição, o estudante deverá estar apto a: Definir superclasses e subclasses Criar Override de métodos de superclasses Criar métodos e classes

Leia mais

Encapsulamento. Alberto Costa Neto DComp - UFS

Encapsulamento. Alberto Costa Neto DComp - UFS Encapsulamento Alberto Costa Neto DComp - UFS 1 Motivação O que aprendemos até agora? O que diferencia a POO da Programação Imperativa? Estas informações são suficientes para construir um projeto OO eficiente?

Leia mais

Engenharia de Software

Engenharia de Software UNIVERSIDADE DE LISBOA INSTITUTO SUPERIOR TÉCNICO Engenharia de Software LEIC/LETI, 3 o Ano, 2 o Semestre 1 o Teste, 10 de Abril de 2018 Duração: 90 minutos Nome: Número: Este teste tem um conjunto de

Leia mais

Boas práticas com Orientação a Objetos. Paulo Silveira

Boas práticas com Orientação a Objetos. Paulo Silveira Boas práticas com Orientação a Objetos Paulo Silveira paulo.silveira@caelum.com.br Rapidissímo overview IFs e switches X herança Vantagens e desvantagens do uso de Herança Casos errados do uso de herança

Leia mais

Tratamento de Exceções

Tratamento de Exceções Tratamento de Exceções Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Introdução Exceções São eventos que

Leia mais

Computação II Orientação a Objetos

Computação II Orientação a Objetos Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Tipos Parametrizados ou Genéricos Os tipos parametrizados ou genéricos são a solução para esse problema

Leia mais

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação

Java RMI. RMI Remote Method Invocation. Chamadas Remotas de Procedimentos (RPC) RPC - Implementação Java Remote Method Invocation Java Remote Method Invocation () é um protocolo Java para comunicação entre processos Permite objetos Java invocar transparentemente métodos de outros objetos (que podem estar

Leia mais

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; }

Lista 05 Herança. public class PessoaFisica extends Pessoa { private String RG; public PessoaFisica(){ super(); } public String getrg(){ return RG; } Lista 05 Herança 1. Analisando a classe Java abaixo podemos observar que a mesma possui apenas um atributo, um construtor e dois métodos. Perceba que dentro do método main estão sendo invocados métodos

Leia mais

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus

Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Prof. Responsáveis Wagner Santos C. de Jesus Curso Disciplina Linguagem de Programação II Curso Engenharia da Computação Fundamentos Básicos da linguagem Java (Programação Orientada a Objetos) Site : http://www1.univap.br/~wagner/ec.html Prof. Responsáveis

Leia mais

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função

De forma simples, para a execução de comandos SQL com JDBC, precisa-se da instancia de três classes Java. São elas: Nome da classe Função .1 JDBC A linguagem Java possui classes que permitem a com um banco de dados. Essas classes fazem parte do pacote JDBC (Java Database Connectivity), uma API (Application Program Interface) que permite

Leia mais

Tratamento de Exceções em Java

Tratamento de Exceções em Java Universidade Federal do Amazonas Departamento de Ciência da Computação IEC481 Projeto de Programas Tratamento de Exceções em Java Professor: César Melo Slides baseados em materiais preparados pela Profa.

Leia mais

Testes vão muito além do TDD Automação para REST, Web e Mobile

Testes vão muito além do TDD Automação para REST, Web e Mobile Testes vão muito além do TDD Automação para REST, Web e Mobile Elias Nogueira Agile Coach & Trainer na Adaptworks QA Engineer Professor de Pós Graduação na Unisinos/RS eliasnogueira adaptworks.com.br eliasnogueira.com

Leia mais

Linguagem de Programação IV Introdução

Linguagem de Programação IV Introdução Linguagem de Programação IV Introdução Prof. Alessandro Borges 2 Tópicos Orientação a objetos Classe Objeto Abstração Encapsulamento Herança Polimorfismo Plataforma Java 3 4 POO é um paradigma de programação

Leia mais

PUC-SP Depto. de Ciência da Computação

PUC-SP Depto. de Ciência da Computação Mensagens Concorrentes Prof. Dr. Italo Santiago Vega Julho de 2000 PUC-SP Depto. de Ciência da Computação www.pucsp.br/~italo Introdução Concorrência libera a modelagem de interações entre objetos tradicionalmente

Leia mais

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc.

Sintaxe Geral Tipos de Dados. Prof. Angelo Augusto Frozza, M.Sc. Sintaxe Geral Tipos de Dados Comentários Comentários: De linha: // comentário 1 // comentário 2 De bloco: /* linha 1 linha 2 linha n */ De documentação: /** linha1 * linha2 */ Programa Exemplo: ExemploComentario.java

Leia mais

Interfaces e Classes Internas

Interfaces e Classes Internas e Classes Internas SCC0604 - Programação Orientada a Objetos Prof. Fernando V. Paulovich http://www.icmc.usp.br/~paulovic paulovic@icmc.usp.br Instituto de Ciências Matemáticas e de Computação (ICMC) Universidade

Leia mais

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação

Programação Orientada a Objectos - P. Prata, P. Fazendeiro. Hierarquia de classes e mecanismo de ligação 4 Conceito de Herança Hierarquia de classes e mecanismo de ligação Herança Uma classe pode herdar operações de uma superclasse e as suas operações podem ser herdadas por subclasses. O mecanismo de herança

Leia mais

[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999.

[Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999. Programação Concorrente [Magee 1999] Concurrency State Models and Java Programs, Jeff Magee, Jeff Kramer, John Wiley 1999. [Gosling] The Java Language Specification James Gosling, Bill Joy and Guy Steele,

Leia mais

Programação Java. Tratamento de Exceções

Programação Java. Tratamento de Exceções Programação Java Tratamento de Exceções Grupo de Linguagens de Programação Departamento de Informática PUC-Rio Motivações para Exceções Um método pode detectar uma falha mas não estar apto a resolver sua

Leia mais

Programação de Computadores II

Programação de Computadores II Programação de Computadores II TCC- 00.174 Profs.: Leandro A. F. Fernandes (A1) & Marcos Lage (B1) & Isabel RosseJ (C1) (Turma A1) www.ic.uff.br/~laffernandes (Turma B1) www.ic.uff.br/~mlage (Turma C1)

Leia mais

Programação Orientada a Objetos

Programação Orientada a Objetos Programação Orientada a Objetos luno: ata: Professor: Leonardo abral da Rocha Soares 1.ado o seguinte código: class valiacao { Qual fragmento de código irá compilar? a) class Prova extends valiacao { b)

Leia mais

Programação Orientada a Objetos II

Programação Orientada a Objetos II Programação Orientada a Objetos II Prof. Walter Gima walter.gima@anhanguera.com 1 Interfaces Polimorfismo 2 Agenda Interfaces Interfaces x Classes Abstratas Polimorfismo Herança Múltipla 3 Interfaces São

Leia mais

Testes com JUnit. Treinamento ALESP SPL. Danilo Toshiaki Sato.

Testes com JUnit. Treinamento ALESP SPL. Danilo Toshiaki Sato. Testes com JUnit Danilo Toshiaki Sato dtsato@ime.usp.br Treinamento ALESP SPL Agenda 1. Introdução 2. Por que usar JUnit? 3. Quando escrever um teste? 4. Como escrever um teste? 5. Como rodar um teste?

Leia mais