Boas Práticas de Programação
|
|
- Osvaldo Molinari Osório
- 8 Há anos
- Visualizações:
Transcrição
1 Boas Práticas de Programação João Arthur Brunet Monteiro Mestrando em Informática - COPIN 25/10/2008 João Arthur Brunet Monteiro 1/ 27
2 Roteiro Introdução 1 Introdução Objetivos Contextualização 2 Práticas de alto-nível 3 Práticas de baixo-nível 4 João Arthur Brunet Monteiro 2/ 27
3 Objetivos Introdução Objetivos Contextualização Apresentar boas práticas de programação Alto nível Baixo nível Apresentar o comportamento de um bom programador João Arthur Brunet Monteiro 3/ 27
4 Código elegante Introdução Objetivos Contextualização Any fool can write code that a computer can understand. Good programmers write code that humans can understand. (Martin Fowler) Código elegante (elegância funcional) Reuso de código Manutenção de código Diminuição de bugs Facilita comunicação Diminui curva de aprendizado João Arthur Brunet Monteiro 4/ 27
5 Código elegante Introdução Objetivos Contextualização Any fool can write code that a computer can understand. Good programmers write code that humans can understand. (Martin Fowler) Código elegante (elegância funcional) Reuso de código Manutenção de código Diminuição de bugs Facilita comunicação Diminui curva de aprendizado João Arthur Brunet Monteiro 4/ 27
6 Pensando no problema Pense no problema antes Quanto mais tempo no teclado, mais bugs são adicionados Mapeie seu problema para objetos Use boas abstrações João Arthur Brunet Monteiro 5/ 27
7 Programe para interface Programe para a interface, não para a implementação Interfaces são mais democráticas! Exemplo Collections.sort(List list) Flexibilidade Reuso João Arthur Brunet Monteiro 6/ 27
8 Programe para interface Programe para a interface, não para a implementação Interfaces são mais democráticas! Exemplo Collections.sort(List list) Flexibilidade Reuso João Arthur Brunet Monteiro 6/ 27
9 Respeite a lei de Demeter Não abuse dos pontos! String key = entry.getvalue().entryset().iterator().next().getkey(); Princípio do mínimo conhecimento Conhecer o mínimo possível sobre as propriedades de um objeto "Only talk to your friends" Parâmetros Objetos criados Objetos próprios Métodos próprios Inibe efeito gelatina João Arthur Brunet Monteiro 7/ 27
10 Respeite a lei de Demeter Não abuse dos pontos! String key = entry.getvalue().entryset().iterator().next().getkey(); Princípio do mínimo conhecimento Conhecer o mínimo possível sobre as propriedades de um objeto "Only talk to your friends" Parâmetros Objetos criados Objetos próprios Métodos próprios Inibe efeito gelatina João Arthur Brunet Monteiro 7/ 27
11 Padrões de Projeto Introdução Soluções padrão para problemas recorrentes Procure mapear seu problema para um já solucionado Exemplo: Expert (padrão de distribuição de responsabilidades) João Arthur Brunet Monteiro 8/ 27
12 Testes Introdução Teste o que você desconfia que vai falhar Evite testes de get e set Não encare como uma atividade secundária Testes aumentam a confiança no código (regressão) Testes revelam mau cheiro no código João Arthur Brunet Monteiro 9/ 27
13 Programação Defensiva Valide dados vindos do usuário Cheque referências nulas Commons Validator (Apache) João Arthur Brunet Monteiro 10/ 27
14 Não construa dependência cíclica Pacotes representam abstração diferentes (Ex.: Acesso a dados vs GUI) Dificulta entendimento Dificulta evolução Dificulta testabilidade Dificulta modularidade João Arthur Brunet Monteiro 11/ 27
15 Construindo métodos - Contrato Respeite contratos A assinatura de um método é o contrato do programador Implementar exatamente o que a especificação diz Um método deve cumprir com somente uma obrigação Não force leitura de corpo de método Separe o que do como João Arthur Brunet Monteiro 12/ 27
16 Construindo métodos - Implementação Crie variáveis somente quando for usá-las Não reuse variáveis Nomes pronunciáveis e sugestivos Evite siglas retorne result Seja coerente no uso de padrões de codificação João Arthur Brunet Monteiro 13/ 27
17 Uso de coleções Introdução Exemplo Declare usando a interface: List mylist = new LinkedList() João Arthur Brunet Monteiro 14/ 27
18 Uso de coleções Introdução Exemplo Declare usando a interface: List mylist = new LinkedList() João Arthur Brunet Monteiro 14/ 27
19 Evite funções com efeito colateral Exemplo de função com efeito colateral: Collections.sort(List l) Dificultam reuso São difícies de entender Difíceis de prever o comportamento Se for inevitável, comente os efeitos colaterais João Arthur Brunet Monteiro 15/ 27
20 Construa objetos imutáveis Objetos imutáveis Como? Facilitam testes São confiáveis para serem usados em coleções São thread-safe Permitem cache de resultados de métodos (hashcode) Ganho em memória Ótimas chaves para HashMap Não permita que a classe seja estendida (final) Atributos private e final Não permita métodos set Não permita funções com efeito colateral João Arthur Brunet Monteiro 16/ 27
21 Cópia Defensiva Introdução Proteção contra objetos mutáveis No construtor this.date = new Date(param.getTime()) Evita efeito gelatina Torna o código mais seguro Métodos get de coleções Collections.unmodifiableList(this.alunos) João Arthur Brunet Monteiro 17/ 27
22 Cópia Defensiva Introdução Proteção contra objetos mutáveis No construtor this.date = new Date(param.getTime()) Evita efeito gelatina Torna o código mais seguro Métodos get de coleções Collections.unmodifiableList(this.alunos) João Arthur Brunet Monteiro 17/ 27
23 Parametrize coleções Qual o problema? List alunos = new ArrayList() Melhorou? List<Aluno> alunos = new ArrayList<Aluno>(); Evita casts Evita coleções guarda-chuva Segurança ao acessar os elementos da coleção Facilita uso do for João Arthur Brunet Monteiro 18/ 27
24 Parametrize coleções Qual o problema? List alunos = new ArrayList() Melhorou? List<Aluno> alunos = new ArrayList<Aluno>(); Evita casts Evita coleções guarda-chuva Segurança ao acessar os elementos da coleção Facilita uso do for João Arthur Brunet Monteiro 18/ 27
25 Use for vs Iterator Introdução Iterator Iterator it = alunos.iterator(); while (it.hasnext()) { Aluno aluno = (Aluno) it.next() } For for (Aluno aluno : alunos) João Arthur Brunet Monteiro 19/ 27
26 Use for vs Iterator Introdução Iterator Iterator it = alunos.iterator(); while (it.hasnext()) { Aluno aluno = (Aluno) it.next() } For for (Aluno aluno : alunos) João Arthur Brunet Monteiro 19/ 27
27 Streams Introdução Exemplos Sempre feche os streams Bug conhecido! Pergunta clássica: Você fechou o stream? Use bufferização BufferedReader e StringBuffer StringBuffer X Concatenação de Strings João Arthur Brunet Monteiro 20/ 27
28 Streams Introdução Exemplos Sempre feche os streams Bug conhecido! Pergunta clássica: Você fechou o stream? Use bufferização BufferedReader e StringBuffer StringBuffer X Concatenação de Strings João Arthur Brunet Monteiro 20/ 27
29 Equals e HashCode Sempre que implementar equals, implemente hashcode Bug muito comum: hashset.contains( algo ) Effective Java [1] possui diretrizes para construção desses dois métodos João Arthur Brunet Monteiro 21/ 27
30 Implemente compareto Implemente Comparable Reuso do método Collections.sort(List l) Mudança na estratégia de ordenação Collections.sort(List l, Comparator c) João Arthur Brunet Monteiro 22/ 27
31 Como lidar com erros Mensagens de erro inúteis System.out.println("Deu erro aqui") Use mensagens de erro que façam sentido Tratamento de erros deve ser adequado Use exceções ao invés de valores extremos João Arthur Brunet Monteiro 23/ 27
32 Como lidar com erros Mensagens de erro inúteis System.out.println("Deu erro aqui") Use mensagens de erro que façam sentido Tratamento de erros deve ser adequado Use exceções ao invés de valores extremos João Arthur Brunet Monteiro 23/ 27
33 Equals vs "==" Introdução Qual o resultado? Integer i = new Integer("4"); Integer j = new Integer("4"); assert i.equals(j); assert i == j; Sempre use equals ao invés de "==" Exceção: Comparar referências João Arthur Brunet Monteiro 24/ 27
34 Equals vs "==" Introdução Qual o resultado? Integer i = new Integer("4"); Integer j = new Integer("4"); assert i.equals(j); assert i == j; Sempre use equals ao invés de "==" Exceção: Comparar referências João Arthur Brunet Monteiro 24/ 27
35 Aprenda com os gurus Cole nos caras bons Troque experiências Pair programming Joshua Bloch, Kent Beck, Marting Fowler, Eric Gahma Leia bons livros (Effective Java, Beautiful Code [4], Pragmatic Programmer [3], Design Patterns [2] etc) Discussões e Sites [5] João Arthur Brunet Monteiro 25/ 27
36 Não conviva com Janelas Quebradas "Don t Live with Broken Windows" Bons programadores têm coragem João Arthur Brunet Monteiro 26/ 27
37 Perguntas Introdução Perguntas? João Arthur Brunet Monteiro 27/ 27
38 J. Bloch. Effective Java: Programming Language Guide. Addison-Wesley Professional, E. Gamma, R. Helm, R. Johnson, and J. Vlissides. Design patterns: elements of reusable object-oriented software. Addison-Wesley Reading, MA, A. Hunt and D. Thomas. The Pragmatic Programmer: From Journeyman to Master. Addison-Wesley Professional, A. Oram and G. Wilson. Beautiful Code: Leading Programmers Explain how They Think. O Reilly, H. Systems. Java Practices. At João Arthur Brunet Monteiro 27/ 27
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 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 maisIntrodução ao Design
Introdução ao Design João Arthur e Guilherme Germoglio Coordenação de Pós-graduação em Informática - COPIN 16/10/2008 João Arthur e Guilherme Germoglio 1/ 33 Roteiro 1 Introdução Objetivos 2 Definições
Leia maisLaboratório de Programação. Aula 13 Java 5COP088. Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior. Sylvio Barbon Jr barbon@uel.
5COP088 Laboratório de Programação Aula 13 Genéricos e Conjuntos Java Prof. Dr. Sylvio Barbon Junior 1 Sumário: 1) Métodos hashcode(), equals() e tostring(); 2) Conjuntos; 3) Genéricos; 4) Resumo. 2 1)
Leia maisIntrodução ao TDD. Dionatan Moura. #guma10anos Abril de 2014. about.me/dionatanmoura
Introdução ao TDD #guma10anos Abril de 2014 Dionatan Moura about.me/dionatanmoura Introdução ao TDD Extreme Programming TDD Refatoração xunit Baby Steps Clean Code Patterns para TDD Red Bar Test Green
Leia maisEMENTA DO CURSO. Tópicos:
EMENTA DO CURSO O Curso Preparatório para a Certificação Oracle Certified Professional, Java SE 6 Programmer (Java Básico) será dividido em 2 módulos e deverá ter os seguintes objetivos e conter os seguintes
Leia maisAlgoritmos e Estrutura de Dados. Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira
Algoritmos e Estrutura de Dados Aula 1 Introdução a Linguagem Python (Parte I) Prof. Tiago A. E. Ferreira Linguagem a ser Utilizada? Nossa disciplina é de Algoritmos e Estrutura de Dados, e não de linguagem
Leia maisOrientação a Objetos com Java
Everton Coimbra de Araújo Orientação a Objetos com Java Simples, Fácil e Eficiente Visual Books Sumário Prefácio... 11 Introdução... 13 1 Introdução à Orientação a Objetos... 17 1.1 Conceitualização...
Leia maisPadrã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 maisPADRÕ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 maisColeções Avançadas. Programação Orientada a Objetos Java. Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior
Coleções Avançadas Programação Orientada a Objetos Java Prof. Anselmo Cardoso Paiva Prof. Geraldo Braz Junior Objetivos Aprender como o conceito de coleção pode ser expresso de forma genérica Examinar
Leia maisDois clientes com a mesma data de pagamento não podem compartilhar instâncias
Capítulo 3. Tópicos de Orientação a Objetos correr o risco de cair na armadilha da quebra de encapsulamento e alto acoplamento. Repare que, desta forma, o acoplamento é bem menor, nenhuma das classes precisa
Leia maisTrilha Agile TDD e 20 coisas que você precisa saber
Trilha Agile TDD e 20 coisas que você precisa saber Camilo Lopes Quem sou eu?! Trabalha com desenvolvimento de software desde 2003. Atualmente Desenvolvedor de Software na ADP Labs, escritor do livro "Guia
Leia maisModulo IIa Extra: Object
Modulo IIa Extra: Object Professor Ismael H F Santos ismael@tecgraf.puc-rio.br April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Bibliografia Linguagem de Programação JAVA Ismael H. F. Santos,
Leia mais1Introduçã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 maisDesenvolvimento Dirigido por Testes (TDD)
Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão 2010 www.agilcoop.org.br Hugo Corbucci O que é Desenvolvimento Dirigido por Testes? Entenderam? Copyleft AgilCoop 2010 2 Testes a priori Conhecer
Leia maisPadrõ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 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 maisCurso 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 maisPrototype, 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 maisJ930. 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 maisPadrõ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 mais5. Generics, Iterators e Comparable em Java. Tipos de Dados Abstractos Generics em Java
5. Generics, Iterators e Comparable em Java Fernando Silva DCC-FCUP Estruturas de Dados Fernando Silva (DCC-FCUP) 5. Generics, Iterators e Comparable em Java Estruturas de Dados 1 / 12 Tipos de Dados Abstractos
Leia maisDesenvolvimento Dirigido por Testes (TDD)
Desenvolvimento Dirigido por Testes (TDD) Cursos de Verão 2008 www.agilcoop.org.br Mariana & Paulo O que é Desenvolvimento Dirigido por Testes? Dúvidas? Copyleft AgilCoop 2008 2 Testes a priori Conhecer
Leia maisESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE
ESTENDENDO A UML PARA REPRESENTAR RESTRIÇÕES DE INTEGRIDADE Fabiana Gomes Marinho Faculdade Lourenço Filho Resumo: Na UML, a modelagem conceitual dos dados é descrita pelo diagrama de classes, que através
Leia maisSISTEMA 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 maisPadrõ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 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 maisATIVIDADES PRÁTICAS SUPERVISIONADAS
ATIVIDADES PRÁTICAS SUPERVISIONADAS Tecnologia em Análise e Desenvolvimento de Sistemas 4 a série Programação Orientada a Objetos A atividade prática supervisionada (ATPS) é um método de ensinoaprendizagem
Leia maisBSI UFRPE Prof. Gustavo Callou gcallou@gmail.com
BSI UFRPE Prof. Gustavo Callou gcallou@gmail.com Coleções List Set Map Classes e interfaces do pacote java.util que representam listas, conjuntos e mapas. Solução flexível para armazenar objetos. Quantidade
Leia maisTESTE DE SOFTWARE COM XP. Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com
TESTE DE SOFTWARE COM XP Isac Aguiar isacaguiar.com.br isacaguiar@gmail.com Contexto Inúmeros processos de software Evolução das formas/metodologias de desenvolvimento de software Dificuldades encontradas
Leia maisAspectos 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 maisProgramação Orientada a Testes Rodrigo Rebouças de Almeida
Programação Orientada a Testes Rodrigo Rebouças de Almeida http://rodrigor.com rodrigor@rodrigor.com Agenda Nossos objetivos hoje: Entender o que é programação orientada a testes Entender a sua função
Leia maisPrincípios de Design TRADUÇÃO DE TATIANE CRISTINE ARNOLD, DO ARTIGO IBM DESIGN: DESIGN PRINCIPLES CHECKLIST.
Princípios de Design TRADUÇÃO DE TATIANE CRISTINE ARNOLD, DO ARTIGO IBM DESIGN: DESIGN PRINCIPLES CHECKLIST. Um software deve ser projetado para simplificar tarefas e criar experiências positivas para
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 maisJonas de Souza H2W SYSTEMS
Jonas de Souza H2W SYSTEMS 1 Tecnólogo em Informática Fatec Jundiaí MBA em Gerenciamento de Projetos FGV Project Management Professional PMI Mestrando em Tecnologia UNICAMP Metodologia de apoio à aquisição
Leia maisColeções. Conceitos e Utilização Básica. c Professores de ALPRO I 05/2012. Faculdade de Informática PUCRS
Coleções Conceitos e Utilização Básica c Professores de ALPRO I Faculdade de Informática PUCRS 05/2012 ALPRO I (FACIN) Coleções: Básico 05/2012 1 / 41 Nota Este material não pode ser reproduzido ou utilizado
Leia maisComputação II Orientação a Objetos
Computação II Orientação a Objetos Fabio Mascarenhas - 2014.1 http://www.dcc.ufrj.br/~fabiom/java Classes abstratas Até agora, usamos interfaces toda vez que queríamos representar algum conceito abstrato
Leia maisTópicos Avançados em Engenharia de Software
Faculdade de Ciências e Tecnologia Departamento de Matemática e Computação Programa de Pós-Graduação em Ciência da Computação Tópicos Avançados em Engenharia de Software Padrões e Frameworks (Aula 01-
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 maisCategorias de Padrões
Categorias de Padrões Padrão Arquitetural ou Estilo Arquitetural Padrão de Design (Design Patterns) Idiomas Categorias de Padrões ESTILOS ARQUITETURAIS PADRÕES DE DESIGN IDIOMAS Padrões de Design Os subsistemas
Leia maisPadrão Arquitetura em Camadas
Padrão Arquitetura em Camadas Universidade Católica de Pernambuco Ciência da Computação Prof. Márcio Bueno poonoite@marciobueno.com Fonte: Material da Profª Karina Oliveira Definição Estimula a organização
Leia maisDesign 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 maisXP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br
XP extreme Programming, uma metodologia ágil para desenvolvimento de software. Equipe WEB Cercomp web@cercomp.ufg.br Introdução Criada por Kent Baeck em 1996 durante o projeto Daimler Chrysler. O sucesso
Leia maisCurso - 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 maisRoteiro do Programa e Entrada/Saída
Roteiro do Programa e Entrada/Saída c Professores de ALPRO I Faculdade de Informática PUCRS 03/2012 ALPRO I (FACIN) Roteiro do Programa e E/S 03/2012 1 / 32 Sumário 1 Relembrando 2 Programa Definição de
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ
CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 03 APRESENTAÇÃO: Hoje vamos conhecer o comando switch, o bloco try catch;
Leia maisProcesso de Desenvolvimento de Software. Engenharia de Software. nelmarpg@yahoo.com.br
Processo de Desenvolvimento de Software nelmarpg@yahoo.com.br 1 Objetivos Contextualizar Análise e Projeto de software dentro de uma metodologia de desenvolvimento (um processo de desenvolvimento de software)
Leia maisObjetivos: Sun recomenda que utilize o nome de domínio da Internet da empresa, para garantir um nome de pacote único
Pacotes e Encapsulamento Prof. Bruno Gomes bruno.gomes@ifrn.edu.br Programação Orientada a Objetos Introdução Permite o agrupamento de classes em uma coleção chamada pacote Um pacote é uma coleção de classes
Leia maisUSANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE
USANDO O IZCODE PARA GERAR SOFTWARE RAPIDAMENTE SUMÁRIO usando o izcode... 1 para gerar software rapidamente... 1 introdução... 2 o que é o izcode?... 2 Como funciona o izcode?... 2 os tipos diferentes
Leia maisCSF FasTest SOLUÇÕES DE OUTPUT DE PAGAMENTO
CSF FasTest SOLUÇÕES DE OUTPUT DE PAGAMENTO CSF FasTest Reduzindo o esforço empregado nos testes Os testes são a faca de dois gumes da composição de documentos: durante o ciclo de vida de seu documento,
Leia maisIntrodução à orientação a objetos. João Tito Almeida Vianna 25/05/2013
Introdução à orientação a objetos João Tito Almeida Vianna 25/05/2013 Roteiro Aula 2 Motivação Revisão dos conceitos da aula 1 Preparação para os exercícios Exercícios propostos 2 Motivação A orientação
Leia maisAnálise e Projeto de Sistemas de Informação. Andrêza Leite andreza.lba@gmail.com
Análise e Projeto de Sistemas de Informação Andrêza Leite andreza.lba@gmail.com Roteiro Sistemas de Informação Ciclo de Desenvolvimento de SI Projeto Análise Estruturada Análise Orientada a Objetos Como
Leia maisOrganização e Arquitetura de Computadores I. de Computadores
Universidade Federal de Campina Grande Unidade Acadêmica de Sistemas e Computação Curso de Bacharelado em Ciência da Computação Organização e Arquitetura de Computadores I Organização Básica B de Computadores
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 maisAULA 4 VISÃO BÁSICA DE CLASSES EM PHP
AULA 4 VISÃO BÁSICA DE CLASSES EM PHP Antes de mais nada, vamos conhecer alguns conceitos, que serão importantes para o entendimento mais efetivos dos assuntos que trataremos durante a leitura desta apostila.
Leia mais6.170 Revisão para a Prova
6.170 Revisão para a Prova Tópicos: 1. Desacoplamento 2. Abstração de dados 3. Funções de Abstração e Invariantes de Representação 4. Abstração de Iteração & Iteradores 5. Modelos de Objeto e Invariantes
Leia maisTestes de Software. Testes de Software. Teste de Validação. Teste de Defeito. Modelo de Entrada e Saída. Modelo de Entrada e Saída
DCC / ICEx / UFMG Testes de Software Testes de Software Eduardo Figueiredo http://www.dcc.ufmg.br/~figueiredo Teste de software buscam por erros ou anomalias em requisitos funcionais e não funcionais Classificação
Leia maisAULA 12 CLASSES DA API JAVA. Disciplina: Programação Orientada a Objetos Professora: Alba Lopes alba.lopes@ifrn.edu.br
AULA 12 CLASSES DA API JAVA Disciplina: Programação Orientada a Objetos Professora: Alba Lopes alba.lopes@ifrn.edu.br CLASSES DA API JAVA A maioria dos programas de computador que resolvem problemas do
Leia maisExercícios 07 Introdução à POO (Interface Gráfica)
Exercícios 07 Introdução à POO (Interface Gráfica) Importante: Desenvolva cada questão em um mesmo projeto, porém em diferentes pacotes. ex. Questão 1: lab03.aula11_out.questao01, Questão 2: lab03.aula11_out.questao02.
Leia maisPROGRAMAÇÃ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 maisNúcleo de Pós Graduação Pitágoras
Núcleo de Pós Graduação Pitágoras Professor: Fernando Zaidan Disciplina: Arquitetura da Informática e Automação MBA Gestão em Tecnologia 1 da Informaçao 2 Figura: Tela do IBM Mainframe Fonte: Arquivo próprio
Leia maisProgramação de Computadores - I. Profª Beatriz Profº Israel
Programação de Computadores - I Profª Beatriz Profº Israel As 52 Palavras Reservadas O que são palavras reservadas São palavras que já existem na linguagem Java, e tem sua função já definida. NÃO podem
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 maisAutoria:Aristófanes Corrêa Silva Adaptação: Alexandre César M de Oliveira
Unified Modeling Language (UML) Universidade Federal do Maranhão UFMA Pós Graduação de Engenharia de Eletricidade Grupo de Computação Assunto: Introdução Autoria:Aristófanes Corrêa Silva Adaptação: Alexandre
Leia maisUniversidade do Estado da Bahia UNEB Departamento de Ciências Exatas e da Terra - Campus I
Projeto Avançado de Sistemas/CPD029 Conceito de padrão de projeto. Padrões de projeto para software orientado a objetos. Mapeamento objetorelacional baseado em padrões. Padrões de arquitetura de software.
Leia maisDesenvolvimento Web com Framework Demoiselle versão 1.0
Desenvolvimento Web com Framework Demoiselle versão 1.0 Módulo 07: Outros Componentes Autor: Rodrigo Hjort Serpro / Coordenação Estratégica de Tecnologia / Curitiba www.frameworkdemoiselle.org.br Modificado
Leia maisUML & Padrões. Aula 1 Apresentação. Profª Kelly Christine C. Silva
UML & Padrões Aula 1 Apresentação Profª Kelly Christine C. Silva Sistemas para Internet Módulo I - Construção de sites informativos Módulo II - Construção de sites dinâmicos Módulo III - Aplicações para
Leia maisModelos do Design de Software
Modelos do Design de Software Modelos do Design de Software O processo de design na Engenharia de Software parte de três pressupostos básicos: O resultado do design é um produto; O produto é derivado de
Leia maisCurso - 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 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 maisTópicos de Ambiente Web. Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres
Tópicos de Ambiente Web Modulo 2 Processo de desenvolvimento de um site Professora: Sheila Cáceres Roteiro Motivação Desenvolvimento de um site Etapas no desenvolvimento de software (software:site) Analise
Leia maisExercícios de Revisão Java Básico
Exercícios de Revisão Java Básico (i) Programação básica (estruturada) 1) Faça um programa para calcular o valor das seguintes expressões: S 1 = 1 1 3 2 5 3 7 99... 4 50 S 2 = 21 50 22 49 23 48...250 1
Leia maisO Processo de Desenvolvimento de Software
O Processo de Desenvolvimento de Software Objetivos Contextualizar Análise e Projeto de software dentro de uma metodologia de desenvolvimento (um processo de desenvolvimento de software) Um processo de
Leia maisPadrõ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 maisSlide 1 Deitel/Deitel, 8e. Java Como programar Copyright 2010 Pearson Education
Java Como Programar, 8/E Slide 1 Slide 2 Slide 3 Métodos genéricos e classes genéricas (e interfaces) permitem especificar, com uma única declaração de método, um conjunto de métodos relacionados ou, com
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 maisA Linguagem Pascal e o Ambiente de Programação Dev-Pascal. Introdução à Ciência da Computação I
A Linguagem Pascal e o Ambiente de Programação Dev-Pascal Introdução à Ciência da Computação I Março/2004 Introdução (1 de 3) Homenagem a Blaise Pascal, filósofo e matemático do século XVII. Desenvolvida
Leia maisProgramaçã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 Introdução GUI Classes abstratas São classes que não podem ser instanciadas,
Leia maisProgramação Java. em Ambiente Distribuído. Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate. Douglas Rocha Mendes.
Programação Java em Ambiente Distribuído Ênfase no Mapeamento Objeto-Relacional com JPA, EJB e Hibernate Douglas Rocha Mendes Novatec Copyright 2011 da Novatec Editora Ltda. Todos os direitos reservados
Leia maisProfa. Thienne Johnson
Profa. Thienne Johnson E. Gamma and R. Helm and R. Johnson and J. Vlissides. Design Patterns - Elements of Reusable Object-Oriented Software. Addison- Wesley, 1995. Conhecido como GoF (Gang of Four) Versão
Leia maisTRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES
TRABALHO DE DIPLOMAÇÃO Regime Modular ORIENTAÇÕES SOBRE O ROTEIRO DO PROJETO FINAL DE SISTEMAS DE INFORMAÇÕES [Observação: O template a seguir é utilizado como roteiro para projeto de sistemas orientado
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 maisGerenciador de Log. Documento Visão. Projeto Integrador 2015/2. Engenharia de Software. Versão 2.0. Engenharia de Software
Documento Visão e Documento Suplementar Gerenciador de Log Documento Visão Versão 2.0 1 Índice 1. Histórico de Revisões...3 2. Objetivo do Documento...4 3. Sobre o Problema...4 4. Sobre o produto...4 4.1.
Leia maisPadrões de Projeto em Aplicações Web Desenvolvendo projetos web consistentes baseados em reuso de soluções
1/ Padrões de Projeto em Aplicações Web Desenvolvendo projetos web consistentes baseados em reuso de soluções Adote as melhores práticas de reuso de soluções com a abordagem de Padrões de Projeto (Design
Leia maisProgramação Orientada por Objetos
PPROG Paradigmas da Programação Programação Orientada por Objetos Relações entre Dependência Agregação Composição Associação (Livro Big Java, Late Objects Capítulo 12) Nelson Freire (ISEP DEI-PPROG 2014/15)
Leia maisCapítulo 22. Associações entre Classes. Rui Rossi dos Santos Programação de Computadores em Java Editora NovaTerra
Capítulo 22 Associações entre Classes Objetivos do Capítulo Indicar os diferentes aspectos de um relacionamento entre classes que podem ser expressos através de uma associação. Descrever o significado
Leia maisCurso Superior de Tecnologia emtelemática Programação Orientada a Objetos Streams em Java. Copyright 2010 Prof. César Rocha
Curso Superior de Tecnologia emtelemática Programação Orientada a Objetos Streams em Java Copyright 2010 Prof. César Rocha 1 Objetivos Explorar os conceitos fundamentais acerca do uso de streams de arquivos
Leia mais1. Desenvolver o software iterativamente. Um pouco de reflexão: Acabou aí? 31/08/2010
Engenharia de Software Aula 5 (Versão 2010-02) Melhores práticas para desenvolvimento de software Desenvolver de forma iterativa e gerenciar requisitos Professor Gabriel Baptista ( gabriel.baptista@uninove.br
Leia maisRoteiro. Interfaces de Programação de Aplicações (Application Programming Interfaces) Conceitos BásicosB. ! Definição
Roteiro Interfaces de Programação de Aplicações (Application Programming Interfaces) Cleidson R. B. Souza Departamento de Informática Universidade Federal do Pará! Definição! Vantagens! Exemplos! Utilização
Leia maisProgramaçã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 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 maisConteú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 maisJAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo
JAVA 1.5 na plataforma J2SE 5.0 Tiger Novas Construções, Sintaxe, Tipos e Polimorfismo GENERICS (Tipos Parametrizados, Classes Parametrizadas) : têm o objectivo de tornar as Colecções seguras em termos
Leia maisFelipe Denis M. de Oliveira. Fonte: Alice e Carlos Rodrigo (Internet)
UML Felipe Denis M. de Oliveira Fonte: Alice e Carlos Rodrigo (Internet) 1 Programação O que é UML? Por quê UML? Benefícios Diagramas Use Case Class State Interaction Sequence Collaboration Activity Physical
Leia maisA Evolução de XP segundo Kent Beck Parte 2
A Evolução de XP segundo Kent Beck Parte 2 O que mudou nesses 5 anos? Danilo Toshiaki Sato dtsato@ime.usp.br Agenda PARTE 1 1. Introdução 2. O que é XP? 3. O que mudou em XP? Valores, Princípios e Práticas
Leia maisUNIVERSIDADE FEDERAL DO PARANÁ
CURSO: Ciência da Computação DATA: / / 2013 PERÍODO: 4 o. PROFESSOR: Andrey DISCIPLINA: Técnicas Alternativas de Programação AULA: 05 APRESENTAÇÃO: Nesta aula vamos ver como se faz a criação de Métodos
Leia mais