Refactoring Visão Geral do Catálogo de Martin Fowler
|
|
- Benedito Camilo Antas
- 8 Há anos
- Visualizações:
Transcrição
1 Refactoring Visão Geral do Catálogo de Martin Fowler Jorge Fernandes Janeiro de 2001
2 Catálogo de Refactorings Composição de Métodos Movendo Características entre Objetos Organizando Dados Simplificando Expressões Condicionais Simplificando Invocação de Métodos Tratando com Generalização Grandes Refactorings
3 Composição de Métodos (Fowler, 1999) O principal refactoring é Extract Method, que transforma um pedaço de código em um novo método. Inline Method é a operação oposta, usada quando a existência do método não faz mais sentido. Quando surgem problemas com variáveis locais é interessante tentar aplicar Replace Temp with Query. Eventualmente as variáveis apresentam interdependência e a solução pode ser Replace Method with Method Object que implica na criação de uma nova classe. Outros problemas na extração de método podem ser resolvidos com Remove Assignments to Parameters. Uma vez que o método esteja fatorado, a clareza do algoritmo pode ser melhorada com Substitute Algorithm.
4 Extract Method Transformar este código... void printowing(double amount) { printbanner(); // print details System.out.println( name: + _name); System.out.println( amount + amount); } neste! void printowing(double amount) { printbanner(); printdetails(amount); } void printdetails(double amount) { System.out.println( name: + _name); System.out.println( amount + amount); }
5 Extract Method Mecânica (Algoritmo) Crie um novo método e o nomeie-o adequadamente (pelo que ele faz, e não como ele o faz) Copie o código extraído da fonte no (método) destino Dê uma varrida no código extraído para referências a quaisquer variáveis temporárias (locais e parâmetros) que estão no escopo do método fonte. Veja as variáveis temporárias usadas apenas no escopo do método extraído e declare-as no método destino. Verifique se apenas uma das outras variáveis temporárias é modificada no escopo do código extraído. Veja então se dá para usar o método novo como uma query. Caso haja mais de uma destas variáveis ou caso a query não fique adequada aplique Split Temporary Variable ou Replace Temp with Query. Passe como parâmetro para o método destino as variáveis temporárias que são apenas lidas Compile quando tiver resolvido todos os problemas com variáveis Substitua o código extraído no método fonte com uma chamada ao método destino. Compile e teste.
6 Movendo Características entre Objetos (Fowler, 1999) Problemas com atribuição adequada de responsabilidades a objetos começam a ser resolvidos aplicando-se Move Field e Move Method. Quando classes ficam abarrotadas de responsabilidades pode-se usar Extract Class para separá-las. Ao contrário, quando classes ficam irresponsáveis pode-se usar Inline Class. Uma classe que está sendo usada por outra pode ser escondida através de Hide Delegate. Se esta operação implicar em mudanças constantes na interface da classe da frente pode ser preciso Remove Middle Man. Introduce Foreign Method e Introduce Local Extension são aplicados em casos especiais, quando se deseja mover responsabilidades para uma classe, mas não é possível se acessar o código fonte desta.
7 Organizando Dados (1 de 3) Se você normalmente usa acesso direto a um atributo mas necessita de um acessor então aplique Self Encapsulate Field. Use Replace Data Value with Object quando você começou com um simples dado e porteriormente se deu conta de que um objeto poderia ser mais útil. Caso estes objetos sejam usados em muitas partes do programa então Change Value to Reference. Se você vê um array funcionando como uma estrutura de dados então Replace Array with Object. A vantagem real desta transformação surge quando se usa Move Method para adicionar comportamento aos novos objetos. Uma vez que tenha percebido qual a finalidade dele, Replace Magic Number with Symbolic Constant para se livrar do problema.
8 Organizando Dados (2 de 3) Links entre objetos podem ser uni- ou bi-direcionais. Embora os primeiros sejam mais fáceis, eventualmente é necessário Change Unidirectional Association to Bidirectional para prover suporte a novas funções. A operação inversa, Change Bidirectional Association to Unidirectional, pode simplificar a solução. Duplicate Observed Data pode ser necessário quando se deseja separar dados do domínio dos dados de uma classe de GUI. Se qualquer dado público está exposto por aí Encapsulate Field. Se o dado é uma coleção então Encapsulate Collection. Se um registro inteiro está exposto então Replace Record with Data Class.
9 Organizando Dados (3 de 3) Códigos de tipo indicam particularidades sobre a condição de um objeto. Replace Type Code with Class quando este código não implica em mudanças no comportamento da classe. Replace Type Code with Subclass quando o comportamento se altera. Outra alternativa mais complicada é Replace Type Code with State/Strategy.
10 Simplificando Expressões Condicionais Decompose Conditional separa um condicional em partes, isolando a código de chaveamento das conseqüências deste chaveamento. Consolidate Conditional Expression quando vários testes produzem o mesmo efeito. Consolidade Duplicate Conditional Fragment remove duplicações no código condicional. Para tornar mais claro um condicional Replace Nested Conditional with Guard Clauses e Remove Control Flag. Observe sempre se é possível Replace Conditional with Polymosphism, inclusive através de Introduce Null Object.
11 Simplificando Invocação de Métodos (1 de 2) A transformação mais simples e importante é Rename Method. Add Parameter ou Remove Parameter para transformar interfaces. Se muitos parâmetros são passados numa chamada, Preserve Whole Object evita esta passagem, Introduce Parameter Object cria um local adequado para estes parametros, ou então Replace Parameter with Method. Se algum dos parâmetros é usado para condicionar o comportamento do método, então Replace Parameter with Explicit Method. Separate Query from Modifier, sempre que encontrá-los juntos.
12 Simplificando Invocação de Métodos (2 de 2) Esconda ou remova métodos sempre que puder com Hide Method e Remove Setting Method. Para evitar o conhecimento prematuro da classe de um objeto a ser criado, use Replace Constructor with Factory Method. Evite usar casts explícitos através de Encapsulate Downcast. Replace Error Code with Exception ou Replace Exception with Test.
13 Tratando com Generalização (1 de 2) Use Pull Up Field e Pull Up Method para promover uma função na hierarquia de classes, ou Push Down Method e Push Down Field para rebaixá-la. Use Pull Up Constructor Body para promover construtores, que é o caminho inverso de Replace Constructor with Factory Method. Métodos que apresentam similaridades mas variam nos detalhes podem ser transformados através de Form Template Method.
14 Tratando com Generalização (2 de 2) Extract Subclass, Extract Superclass e Extract Interface modificam hierarquia através da criação de novas classes. Classes desnecessárias podem ser removidas através de Collapse Hierarchy. Quando herança não é a melhor forma de design, Replace Inheritance with Delegation. O caminho contrário é Replace Delegation with Inheritance.
15 Grandes Refactorings Tease Apart Inheritance quando você tem uma hierarquia de herança que realiza dois trabalhos ao mesmo tempo. Convert Procedural Design to Objects quando você tem código escrito em estilo procedural. Separate Domain from Presentation quando você tem classes de GUI que contém lógica do domínio. Extract Hierarchy quando você tem uma classe que está fazendo muito trabalho, principalmente através de muitos comandos condicionais.
16 Refactoring Visão Geral do Catálogo de Martin Fowler Jorge Fernandes Janeiro de 2001
J820. Refactoring. Design no Código. argonavis.com.br. Helder da Rocha (helder@acm.org)
J820 Refactoring Design no Código Helder da Rocha (helder@acm.org) O que é Uma técnica de design baseada no código Refactoring (ou refatoramento) permite que se altere o design de uma aplicação, grande
Leia maisEngenharia de Software Experimental 2013.2
Engenharia de Software Experimental 2013.2 Avaliação de introdução de anomalias de software, após aplicação de refatorações automáticas para remoção de code smells Chrystinne Fernandes Sumário Conceitos
Leia maisDataBase Refactoring em FireBird
DataBase Refactoring em FireBird Autor: Manoel Pimentel Medeiros É Engenheiro de Software, com mais de 15 anos na área de TI, atualmente trabalha com projetos Java pela Rhealeza(SP) e como Coach em metodologias
Leia maisAula 01 - Formatações prontas e condicionais. Aula 01 - Formatações prontas e condicionais. Sumário. Formatar como Tabela
Aula 01 - Formatações prontas e Sumário Formatar como Tabela Formatar como Tabela (cont.) Alterando as formatações aplicadas e adicionando novos itens Removendo a formatação de tabela aplicada Formatação
Leia maisProgramaçã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 maisEvolução de Software e Refatoração
Evolução de Software e Refatoração Mudança de software Mudança de software é inevitável Novos requisitos surgem quando o software é usado; O ambiente de negócio muda; Erros devem ser reparados; Novos computadores
Leia maisJAVA. Tópicos Especiais de Programação Orientada a Objetos. sexta-feira, 26 de outubro de 12
JAVA Tópicos Especiais de Programação Orientada a Objetos 1 REFATORAÇÃO DE CÓDIGOS 2 REFATORAÇÃO O QUE É REFATORAR? Refatorar é alterar o código de um projeto existente, sem mudar o seu comportamento,
Leia maisProgramação por Objectos. Java
Programação por Objectos Java Parte 6: Herança e Polimorfismo LEEC@IST Java 1/52 Herança revisão A herança é um mecanismo em que a subclasse constitui uma especialização da superclasse. A superclasse pode
Leia maisConceitos de Banco de Dados
Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir
Leia maisUm 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 maisPROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br
PROGRAMAÇÃO ORIENTADA A OBJETOS -TRATAMENTO DE EXCEÇÕES Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br ROTEIRO 5. Tratamento de Exceções Introdução e conceitos Capturando exceção usando
Leia maisJava 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 maisPragmática das Linguagens de Programação 2004/2005
Instituto Superior Técnico Pragmática das Linguagens de Programação 2004/2005 Segundo Exame 11/2/2005 Número: Turma: Nome: Escreva o seu número em todas as folhas do teste. O tamanho das respostas deve
Leia maisEngenharia de Software III
Engenharia de Software III Casos de uso http://dl.dropbox.com/u/3025380/es3/aula6.pdf (flavio.ceci@unisul.br) 09/09/2010 O que são casos de uso? Um caso de uso procura documentar as ações necessárias,
Leia maisAPOSTILA BANCO DE DADOS INTRODUÇÃO A LINGUAGEM SQL
1. O que é Linguagem SQL 2. Instrução CREATE 3. CONSTRAINT 4. ALTER TABLE 5. RENAME TABLE 6. TRUCANTE TABLE 7. DROP TABLE 8. DROP DATABASE 1 1. O que é Linguagem SQL 2. O SQL (Structured Query Language)
Leia maisLidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado.
, ()! $ Lidar com números e estatísticas não é fácil. Reunir esses números numa apresentação pode ser ainda mais complicado. Uma estratégia muito utilizada para organizar visualmente informações numéricas
Leia maisComputação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores
Computação II - Java Prof. Adriano Joaquim de Oliveira Cruz Aula Prática - Herança, Polimorfismo e Construtores 1 Exercícios Exercício 1: Construtores e Testes Analise a classe Conta.java, mostrada na
Leia maisFramework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C#
Linguagem de Programação 3 Framework.NET, Microsoft Visual C# 2010 Express e Elementos da Linguagem C# Prof. Mauro Lopes 1-31 35 Objetivos Nesta aula iremos apresentar a tecnologia.net, o ambiente de desenvolvimento
Leia maisSISTEMAS OPERACIONAIS LIVRES. Professor Carlos Muniz
SISTEMAS OPERACIONAIS LIVRES Professor Carlos Muniz Atualizar um driver de hardware que não está funcionando adequadamente Caso tenha um dispositivo de hardware que não esteja funcionando corretamente
Leia maisCONVENÇÃO DE CÓDIGO JAVA
CONVENÇÃO DE CÓDIGO JAVA Eligiane Ceron - Abril de 2012 Versão 1.0 Conteúdo Considerações iniciais... 2 Introdução... 2 Extensão de arquivos... 2 Arquivos de código Java... 2 Comentários iniciais... 2
Leia maisProf. Dr. Fabio Kon Prof. Dr. Alfredo Goldman. Departamento de Ciência da Computação IME / USP. 3 de Abril de 2003 VI Semana da Computação
Refatoração: Melhorando a Qualidade de Código Pré-Existente Prof. Dr. Fabio Kon Prof. Dr. Alfredo Goldman Departamento de Ciência da Computação IME / USP 3 de Abril de 2003 VI Semana da Computação 1 Refatoração
Leia maisModelagemde Software Orientadaa Objetos com UML
Modelagemde Software Orientadaa Objetos com UML André Maués Brabo Pereira Departamento de Engenharia Civil Universidade Federal Fluminense Colaborando para a disciplina CIV 2802 Sistemas Gráficos para
Leia maisATRIBUTOS 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 maisARRAYS. Um array é um OBJETO que referencia (aponta) mais de um objeto ou armazena mais de um dado primitivo.
Cursos: Análise, Ciência da Computação e Sistemas de Informação Programação I - Prof. Aníbal Notas de aula 8 ARRAYS Introdução Até agora, utilizamos variáveis individuais. Significa que uma variável objeto
Leia maisReuso 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 maisBases de Dados. Lab 1: Introdução ao ambiente
Departamento de Engenharia Informática 2010/2011 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo
Leia maisPolimorfismo. Prof. Leonardo Barreto Campos 1
Polimorfismo Prof. Leonardo Barreto Campos 1 Sumário Introdução; Polimorfismo; Polimorfismo Java; Métodos Abstratos Java Classes Abstratas Java Exercício - Java Polimorfismo C++ Classe Abstrata C++; Funções
Leia maisManual do PolicyKit-kde. Daniel Nicoletti Tradução: Luiz Fernando Ranghetti
Daniel Nicoletti Tradução: Luiz Fernando Ranghetti 2 Conteúdo 1 Resumo 5 2 Como funciona 6 2.1 Resumo............................................ 6 2.2 O problema.........................................
Leia maisProgramação Estruturada. Programação Estruturada. Idéias Básicas da Programação Estruturada
Programação Estruturada Programação Estruturada Paradigmas de Linguagens de Programação As linguagens desse paradigma são muitas vezes chamadas de linguagens convencionais, procedurais ou imperativas.
Leia mais4.1. UML Diagramas de casos de uso
Engenharia de Software 4.1. UML Diagramas de casos de uso Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Utilizados para ajudar na análise de requisitos Através da forma como o utilizador usa o sistema
Leia mais3 Classes e instanciação de objectos (em Java)
3 Classes e instanciação de objectos (em Java) Suponhamos que queremos criar uma classe que especifique a estrutura e o comportamento de objectos do tipo Contador. As instâncias da classe Contador devem
Leia maisLinguagem de Programação III
Linguagem de Programação III Aula-3 Criando Classes em Java Prof. Esbel Tomás Valero Orellana Da Aula Anterior Classes em Java, sintaxe básica Tipos básicos de dados em Java, como escolher o tipo apropriado
Leia maisLajedo Site Guia de operações comuns
Lajedo Site Guia de operações comuns Por Homem Máquina O conteúdo do site Lajedo pode ser administrado de forma simplificada pelo plugin Visual Composer. Como ele é possível editar galerias, alterar imagens,
Leia maisPOO Programação Orientada a Objetos. Classes em Java
+ POO Programação Orientada a Objetos Classes em Java + Classes 2 Para que a JVM crie objetos: Ela precisa saber qual classe o objeto pertence Na classe estão definidos os atributos e métodos Programamos
Leia maisCapítulo 4. Packages e interfaces
Capítulo 4. Packages e interfaces 1/17 Índice Indice 4.1 - Package 4.2 - Interface 2/17 Índice 4.1 Package 4.1 - Package 4.2 -- Interface 3/17 4.1 Package Package ou pacote está para o Java como as directorias
Leia maisPHP Programando com Orientação a Objetos
PHP Programando com Orientação a Objetos 2 a edição Pablo Dall Oglio Novatec Sumário Sobre o autor... 13 Agradecimentos... 14 Nota do autor... 16 Organização do livro... 18 Capítulo 1 Introdução ao PHP...
Leia maisFigura 1. A Classe Java
Conexã o com MySQL Connection Factory Para criar as conexões com o banco de dados será utilizado um padrão chamado Factory, onde através dele se terá uma única classe que proverá uma fábrica de conexão
Leia maisPROGRAMAÇÃO ESTRUTURADA. CC 2º Período
PROGRAMAÇÃO ESTRUTURADA CC 2º Período PROGRAMAÇÃO ESTRUTURADA Aula 07: Funções O comando return Protótipo de funções O tipo void Arquivos-cabeçalho Escopo de variáveis Passagem de parâmetros por valor
Leia maisFBV - Linguagem de Programação II. Um pouco sobre Java
FBV - Linguagem de Programação II Um pouco sobre Java História 1992: um grupo de engenheiros da Sun Microsystems desenvolve uma linguagem para pequenos dispositivos, batizada de Oak Desenvolvida com base
Leia maisProgramaçã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 maisConstrução Páginas de Internet
Construção Páginas de Internet Definir um Site no Frontpage Objectivos da sessão: No final da sessão os formandos deverão ser capazes de: Saber o que são os metadados do Frontpage; Distinguir entre Sites
Leia mais2 echo "PHP e outros.";
PHP (Hypertext Preprocessor) Antes de qualquer coisa, precisamos entender o que é o PHP: O PHP(Hypertext Preprocessor) é uma linguagem interpretada gratuita, usada originalmente apenas para o desenvolvimento
Leia maisGuia 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 maisNOVIDADES DO JAVA PARA PROGRAMADORES C
PROGRAMAÇÃO SERVIDOR EM SISTEMAS WEB NOVIDADES DO JAVA PARA PROGRAMADORES C Prof. Dr. Daniel Caetano 2012-1 Objetivos Apresentar o Conceito de Classes e Objetos Capacitar para a criação de objetos simples
Leia maisPadrã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 maisModulo II Técnicas para desenvolvimento de Software Ágil
Modulo II Técnicas para desenvolvimento de Software Ágil Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia Vinicius Manhaes Teles, Extreme Programming,
Leia maisProgramação Básica em STEP 7 Símbolos. SITRAIN Training for Automation and Drives Página 4-1
Conteúdo Pág. Endereçamento Absoluto e Simbólico... 2 Endereçamento Absoluto - Panorâmica... 3 Abrindo a Tabela de...... 4 Editar: Procurar e Substituir... 5 Visualizar: Filtro... 6 Visualizar: Ordenar...
Leia maisPadrões de Projeto. Singleton
Padrões de Projeto Padrões de Criação Singleton Singleton Assegura que uma classe tenha apenas uma instância e provê um ponto de acesso global a ela 2 Livro Texto: Design Pattern - Elements 1 Motivação
Leia maisUNIVERSIDADE 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 maisMemória Flash. PdP. Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006. Pesquisa e Desenvolvimento de Produtos
TUTORIAL Memória Flash Autor: Tiago Lone Nível: Básico Criação: 11/12/2005 Última versão: 18/12/2006 PdP Pesquisa e Desenvolvimento de Produtos http://www.maxwellbohr.com.br contato@maxwellbohr.com.br
Leia maisDúvidas Freqüentes sobre o OpenOffice Apresentação
Dúvidas Freqüentes sobre o OpenOffice Apresentação 1 - Como posso inserir mais de um fundo em uma apresentação? 2 - Como uso o slide de uma apresentação em outra apresentação? 3 - Quando recorto um documento
Leia mais3 Um Modelo de Operações para a web semântica 3.1. Modelo de Operações
34 3 Um Modelo de Operações para a web semântica 3.1. Modelo de Operações As classes do Modelo de Operações representam a definição de como deve ser uma operação em uma aplicação, ou seja, quais os valores
Leia maisAlgoritmos e Programação (Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br
(Prática) Profa. Andreza Leite andreza.leite@univasf.edu.br Introdução O computador como ferramenta indispensável: Faz parte das nossas vidas; Por si só não faz nada de útil; Grande capacidade de resolução
Leia maisTabela de roteamento
Existem duas atividades que são básicas a um roteador. São elas: A determinação das melhores rotas Determinar a melhor rota é definir por qual enlace uma determinada mensagem deve ser enviada para chegar
Leia maisOs objetivos indicados aplicam-se a duas linguagens de programação: C e PHP
AGRUPAMENTO DE ESCOLAS DE SANTA COMBA DÃO CURSO PROFISSIONAL DE TÉCNICO DE GESTÃO E PROGRAMAÇÃO DE SISTEMAS INFORMÁTICOS 2012-2015 PROGRAMAÇÃO E SISTEMAS DE INFORMAÇÃO MÓDULO 2 Mecanismos de Controlo de
Leia maisTÉCNICAS DE PROGRAMAÇÃO
TÉCNICAS DE PROGRAMAÇÃO (Adaptado do texto do prof. Adair Santa Catarina) ALGORITMOS COM QUALIDADE MÁXIMAS DE PROGRAMAÇÃO 1) Algoritmos devem ser feitos para serem lidos por seres humanos: Tenha em mente
Leia mais28/9/2010. Paralelismo no nível de instruções Processadores superescalares
Arquitetura de Computadores Paralelismo no nível de instruções Processadores superescalares Prof. Marcos Quinet Universidade Federal Fluminense P.U.R.O. Processadores superescalares A partir dos resultados
Leia maisAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas Rafael Vargas Mesquita http://www.ci.ifes.edu.br ftp://ftp.ci.ifes.edu.br/informatica/mesquita/ Herança O que é herança? Herdar é derivar características de gerações precedentes.
Leia maisOrientação a Objetos
1. Domínio e Aplicação Orientação a Objetos Um domínio é composto pelas entidades, informações e processos relacionados a um determinado contexto. Uma aplicação pode ser desenvolvida para automatizar ou
Leia maisProgramação Orientada a Objetos C++
Programação Orientada a Objetos em C++ Sumário Histórico Comparação com Java Encapsulamento Tratamento de classes e objetos Herança Polimorfismo Histórico Desenvolvido por Bjarne Stroustrup dos Bell Labs
Leia maisMicrosoft Access 2010. Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento
Microsoft Access 2010 Para conhecermos o Access, vamos construir uma BD e apresentar os conceitos necessários a cada momento 1 Principais objetos do Access Tabelas Guardam a informação da BD (Base de Dados)
Leia maisLinguagem SQL Sub-linguagem DDL
Linguagem SQL Sub-linguagem DDL A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language para suas
Leia maisListando itens em ComboBox e gravando os dados no Banco de Dados MySQL.
Listando itens em ComboBox e gravando os dados no Banco de Dados MySQL. Prof. Vitor H. Migoto de Gouvêa Colégio IDESA 2012 Edição 7 Listando e Gravando Listando itens em ComboBox e gravando os dados no
Leia maisBanco de Dados Objeto Relacional
Banco de Dados Objeto Relacional características Banco de Dados Objeto- Relacional (BDOR) Banco de dados relacional com extensões para manipulação de objetos e outras fatores de banco de dados orientado
Leia maisNoções de. Microsoft SQL Server. Microsoft SQL Server
Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados
Leia maisRational Requirements Composer Treinamento aos Analistas de Qualidade e Gestor das Áreas de Projeto
Rational Requirements Composer Treinamento aos Analistas de Qualidade e Gestor das Áreas de Projeto Objetivos do Treinamento Apresentar as principais funcionalidades do Rational Requirements Composer relacionadas
Leia maisBases de Dados. O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo ilustrada na figura 1.
Departamento de Engenharia Informática 2008/2009 Bases de Dados Lab 1: Introdução ao ambiente 1º semestre O ficheiro create-bank.sql contém um conjunto de instruções SQL para criar a base de dados de exemplo
Leia maisPossui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.
3. Tabelas de Hash As tabelas de hash são um tipo de estruturação para o armazenamento de informação, de uma forma extremamente simples, fácil de se implementar e intuitiva de se organizar grandes quantidades
Leia maisEXEMPLO DE COMO FAZER UMA MALA DIRETA
EXEMPLO DE COMO FAZER UMA MALA DIRETA OBS: Para esta nota de aula foi utilizada como referência: Apostila Mala Direta Santos, Jorge Rodrigues dos. Foram adaptados os comando para utilizar mala direta no
Leia maisUNIDADE 6 - PROGRAMAÇÃO MODULAR
UNIDADE 6 - PROGRAMAÇÃO MODULAR Até o momento as estruturas de controle (seqüência, seleção e repetição) de um algoritmo definia-o como um bloco lógico (início e fim). À medida que os problemas a serem
Leia maisMó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 maisCAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES
CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES 3.1 - IDENTIFICADORES Os objetos que usamos no nosso algoritmo são uma representação simbólica de um valor de dado. Assim, quando executamos a seguinte instrução:
Leia maisGuia de Início Rápido
Guia de Início Rápido O Microsoft Word 2013 parece diferente das versões anteriores, por isso criamos este guia para ajudar você a minimizar a curva de aprendizado. Barra de Ferramentas de Acesso Rápido
Leia maisFixture-Factory. Criando objetos para seus testes. Como criar objetos através de templates para serem utilizados como massa de dados em seus testes.
fixture-factory_ Fixture-Factory Criando objetos para seus testes Como criar objetos através de templates para serem utilizados como massa de dados em seus testes. Começamos testando métodos simples, mas
Leia maisOracle PL/SQL Overview
Faculdades Network Oracle PL/SQL Overview Prof. Edinelson PL/SQL Linguagem de Programação Procedural Language / Structured Query Language Une o estilo modular de linguagens de programação à versatilidade
Leia maisNetBeans. Conhecendo um pouco da IDE
NetBeans Conhecendo um pouco da IDE Professor: Edwar Saliba Júnior Sumário Apresentação:...1 Criando Um Novo Projeto de Software:...1 Depurando Um Código-fonte:...4 Entendendo o Código-fonte:...7 Dica
Leia maisProgramaçã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 maisADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 4)
Prof. Breno Leonardo Gomes de Menezes Araújo brenod123@gmail.com http://blog.brenoleonardo.com.br ADMINISTRAÇÃO DE SISTEMA OPERACIONAL DE REDE (AULA 4) Serviço de diretório Serviço de diretório é um conjunto
Leia maisPHP 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 maisUniversidade Federal do Espírito Santo
Universidade Federal do Espírito Santo Núcleo de Tecnologia da Informação Gerenciamento do Conteúdo de Sítios Institucionais Versão 1.4 Atualizado em: 8/10/2015 Sumário Sumário................................................
Leia maisSQL - Criação de Tabelas
SQL - Criação de Tabelas André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) SQL - Criação de Tabelas February 24, 2012 1 / 25 Sumário 1 Introdução 2 Tabelas
Leia maisApp Inventor 2 - programação divertida para Android
App Inventor 2 - programação divertida para Android 1 APP INVENTOR 2 O App Inventor é um ambiente de programação desenvolvido pelo MIT (Massachusetts Institute of Technology), especialmente desenhado para
Leia maisFase III Iteração II
Fase III Iteração II Gerenciamento de Usuários e Workflow do Portal 1) Introdução Para que um portal ofereça um eficiente gerenciamento de conteúdo é necessário que as funções dos usuários e os processos
Leia maisTé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 maisTabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008
Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,
Leia maisPYTHON LISTAS. Introdução à Programação SI2
PYTHON LISTAS Introdução à Programação SI2 3 Sequências Sequências! Podem ser indexados por algum valor ordinal posicional Algumas operações são aplicadas a todos os tipos de sequências. Listas li = [1,2,3,
Leia maisConectar diferentes pesquisas na internet por um menu
Conectar diferentes pesquisas na internet por um menu Pré requisitos: Elaboração de questionário Formulário multimídia Publicação na internet Uso de senhas na Web Visualização condicionada ao perfil A
Leia maiswww.coldfusionbrasil.com.br
www.coldfusionbrasil.com.br 2000 PASSANDO VARIÁVEIS ATRAVÉS DE FORM E URL 3 ALTERA.CFM 3 FORMALTERA.CFM 4 ALTERA.CFM 4 FORMALTERA.CFM 4 CRIANDO E MANIPULANDO VARIÁVEIS COM CFSET 4 VALORES ESTÁTICOS 5 PARÂMETROS
Leia maisColeções. Page 1. Coleções. Prof. Anderson Augustinho Uniandrade
Page 1 podem ser comparadas com arrays, visto que também apresentam a capacidade de armazenar referências para vários objetos. Entretanto, as coleções apresentam uma gama de funcionalidades bem maior do
Leia maisFluxo de trabalho do Capture Pro Software: Indexação de código de barras e separação de documentos
Este procedimento corresponde ao fluxo de trabalho de Indexação de código de barras e de separação de documentos no programa de treinamento do Capture Pro Software. As etapas do procedimento encontram-se
Leia mais2.3. PHP Tipos de dados e operadores
Programação para Internet II 2.3. PHP Tipos de dados e operadores Nuno Miguel Gil Fonseca nuno.fonseca@estgoh.ipc.pt Tipos de dados Embora não seja necessário declarar os tipos de dados das variáveis,
Leia maisDecorator Pattern. SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br. Junho de 2008. Departamento de Informática / UFMA
Decorator Pattern SISMO - Sistemas e Mobilidade http://www.sismo.deinf.ufma.br Departamento de Informática / UFMA Junho de 2008 Revisando os conceitos Herança é poderosa mas não é flexível Comportamento
Leia maisSumário. Computação Gráfica Illustrator
1 Sumário Área de trabalho... 2 Barra de tarefas... 5 Menu ajuda... 6 Menu janela... 7 Menu exibir... 8 Menu efeito... 9 Menu selecionar... 10 Menu tipo... 10 Menu objeto... 12 Menu editar... 13 Menu arquivo...
Leia maisClasses, Superclasses e Subclasses
Herança Herança A idéia é criar novas Classes construindo-as sobre outras existentes Ao herdar de uma classe, reusamos (herdamos) seus métodos E podemos adicionar novos métodos e campos para adaptar a
Leia maiscio Roteamento Linux
Exercício cio Roteamento Linux Edgard Jamhour Exercícios práticos para configuração de roteamento usando Linux Esses exercícios devem ser executados através do servidor de máquinas virtuais: espec.ppgia.pucpr.br
Leia mais