1 Reestruturação das Linguagens da Disciplina “Paradigmas de Linguagens de Programação” para Java 1.5 Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt)

Slides:



Advertisements
Apresentações semelhantes
Exemplo de Projeto Vamos criar agora um projeto exemplo para verificar as condições de crédito de um conjunto de indivíduos; Nosso primeiro conjunto de.
Advertisements

Programação em Java Prof. Maurício Braga
Utilitários Marco Antonio. Enum Como o nome sugere, é uma enumeração de opções para uma determinada situação A principal vantagem é limitar as opções.
Collections Marco Antonio, Arquiteto de Software – TJDF Atualizado Dezembro/2008.
Java Básico Orientação a Objeto Marco Antonio Software Architect Fev/2008.
Conhecendo o VS2008: Windows Forms X Web Forms X Web Services
Programação Básica em Java
Polimorfismo e Acoplamento Dinâmico
Refactoring de Programas Java
Wagner Santos C. de Jesus
Introdução a Linguagem JAVA
Uso do Eclipse/SourceForge Paradigmas de Linguagem de Programação
Segurança em Aplicações 5. Melhores Práticas de Programação
Especialização em Segurança da Informação Segurança em Aplicações 5. Melhores Práticas de Programação Márcio Aurélio Ribeiro Moreira
Classes, Objetos e Encapsulamento
Introdução a linguagem Python
Aula PHPdoc Prof. Naércio Filho Técnico em Informática
Introdução a Java: Classes, métodos e variáveis Eduardo Figueiredo 24 de Março de 2010 POOAula 05.
Concurrent Versions System Leandro Augusto de Oliveira
Programação I Aula 2 (Métodos)
Interpretador Python.
Linguagem de Programação JAVA
Primeira aula de PL/SQL Parte II
Paradigmas de Linguagens de Programação Linguagem Orientada a Objetos 1 Augusto Sampaio e Paulo Borba Departamento de Informática Universidade Federal.
Pilhas Profa. Nádia Félix.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa This.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Membro Static.
LPII Professora Lucélia. Pacotes Um pacote em Java é um diretório onde ficam armazenadas uma ou mais classes. Geralmente as classes com a mesma afinidade.
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Como criar uma Classe e.
1 Linguagem Imperativa 2 com Design by Contract Alunos: Bruno Moreno José Elias Queiroga Yuri Malheiros Samara Martins Prof.: Augusto Sampaio.
Wagner Santos C. de Jesus
Laboratório I Mateus Raeder Material baseado nos originais da Profa. Denise Bandeira.
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Curso de Aprendizado Industrial Desenvolvedor WEB
Java Kickstart, day 2 Semelhanças com linguagem C.
Aula Prática 4 Monitoria IP/CC (~if669).
Análise Léxica Prof. Alexandre Monteiro
Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos.
José Francisco PHP & MySQL. Os slides originais são parte do material de cursos anteriores do curso de PHP, ministrados por Sérgio Clemente.
Coleções, Genéricos, Threads Marco Antonio. Collection Principais métodos da interface Collection.
Herança e Arquitetura em camadas
JAVA Sintaxe.
RMI Objetos Distribuídos Luiz C. D´oleron SCJP
Coleções em Java - Parte 2
Clique para editar o estilo do subtítulo mestre POO Utilizando PHP5 Prof. André Rabelo.
1 Uso do Eclipse/CVS na cadeira Paradigmas de Linguagem de Programação Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt) Euclides Neto (enan) Prof.:
1 Reestruturação das Linguagens da Disciplina “Paradigmas de Linguagens de Programação” para Java 1.5 Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt)
Modificadores Programação II.
OO com Java Luiz Carlos d´Oleron Roteiro de aula.
CVS – Gerenciamento de Versões
Emanuella Aleixo ( José Antônio Juliana Mafra Marcela Balbino
Organizando seu código Classes, pacotes, modificadores. Padrões.
Linguagem Técnica II SCM Software Configuration Management Aula 03 Prof. Renato Novais
Módulo II Capítulo 1: Orientação a Objetos
O Portal do Estudante de Computação
Engenharia de Requisitos Prof. Fábio Botelho, MSc Redes e Sistemas Distribuídos Recife, Agosto de 2012.
Utilizando subversion como controle de versão
OCLE Object Constraint Language Environment Fábio Moura CIn-UFPE.
Array e ArrayList LPOO – 01/09/14.
Curso Básico de Android
Implementação Orientada a Objetos – Aula 04 Métodos, parâmetros e retorno Prof. Danielle Martin/Marcia Bissaco Universidade de Mogi das Cruzes
Visual C# (parte 3) Prof. Igor Conrado Alves de Lima – Orientação a objetos, Modificadores de acesso, Lista (List), e tratamento.
PROF. DR. DIVINO IGNÁCIO RIBEIRO JR DEPARTAMENTO DE BIBLIOTECONOMIA E GESTÃO DA INFORMAÇÃO - FAED EndNote X5 – Gerenciador de Referências Bibliográficas.
ASP.NET Passo a Passo Controles com Processamento Personalizado Criando um controle personalizado 1. Abra ou copie a solução ControlORama desenvolvido.
Polimorfismo com Interfaces Pacotes em Java Prof. Gustavo Wagner (Alterações) Prof. Tiago Massoni (Slides Originais) Desenvolvimento de Sistemas FATEC-PB.
Laboratório de Computação Aula 06 e 07 – Implementação de classes Prof. Fábio Dias
Introdução à Orientação a Objetos em Java Prof. Gustavo Wagner (Alterações) Slides originais: Prof. Tiago Massoni Desenvolvimento de Sistemas FATEC-PB.
Linguagem de Programação – Aula 04 Prof. Me. Ronnison Reges Vidal.
Subversion- Utilização com Eclipse Utilização do Subversion com o Eclipse via plugin Subclipse Atualizado em
Playframework 2.0. O que veremos hoje Playframework 2.0 Instalação Criação e Execução de uma Aplicação Estrutura de uma Aplicação Exemplos.
Transcrição da apresentação:

1 Reestruturação das Linguagens da Disciplina “Paradigmas de Linguagens de Programação” para Java 1.5 Alunos: Angelo Ribeiro (arnpr) Eduardo Tavares (eagt) Euclides Neto (enan) Prof.: Augusto Sampaio (acas)

2 Próximos Passos 1.Alteração das outras Linguagens; 2.Atualização do site ou Construção de documentação via Doxygen; 3.Verificar utilização de Enumeration na classe Tipo;

3 Roteiro  Reestruturação das Linguagens(Java 1.5):  *Classe Tipo (Leonardo Lucena,special Guest)  Imperativa1;  Imperativa2;  OO1;  Atualização da Base de Dados CVS com as outras linguagens e alteração dos.jj para aceitar parâmetros de entrada;  Documentação Automática com D’oxygen;  Aula para a nova turma de PLP;

4 Reestruturação da Linguagem *Classe Tipo Utilização do Tipo Enumeration e EnumSet; Antes: public static final int INTEIRO = 1; public static final int BOOLEANO = 2; public static final int STRING = 4; public static final int INDEFINIDO = 8; Depois: public enum Tipos{INTEIRO, BOOLEANO, STRING}

5 Reestruturação da Linguagem *Classe Tipo public static final Tipo TIPO_INTEIRO = new Tipo(INTEIRO); public static final Tipo TIPO_BOOLEANO = new Tipo(BOOLEANO); public static final Tipo TIPO_STRING = new Tipo(STRING); public static final Tipo TIPO_PONTO_FLUTUANTE = new Tipo(PONTO_FLUTUANTE); public static final Tipo TIPO_INDEFINIDO = new Tipo(INDEFINIDO); Antes: Depois: public static final Tipo TIPO_INTEIRO = new Tipo(EnumSet.of(Tipos.INTEIRO)); public static final Tipo TIPO_BOOLEANO = new Tipo(EnumSet.of(Tipos.BOOLEANO)); public static final Tipo TIPO_STRING = new Tipo(EnumSet.of(Tipos.STRING)); public static final Tipo TIPO_INDEFINIDO = new Tipo(EnumSet.noneOf(Tipos.class));

6 Reestruturação da Linguagem *Classe Tipo public Tipo() { this(INTEIRO + BOOLEANO + STRING + PONTO_FLUTUANTE); } public Tipo(int tipo, Tipo prox) { this.tipo = tipo; this.prox = prox; } Antes: Depois: public Tipo() { this(EnumSet.allOf(Tipos.class)); } public Tipo(Set tipo, Tipo prox) { this.tipo = tipo; this.prox = prox; }

7 Reestruturação da Linguagem *Classe Tipo public int getTipo() { return tipo; } Antes: Depois: public Set get() { return Collections.unmodifiableSet(tipo); }

8 Reestruturação da Linguagem *Classe Tipo public boolean eInteiro() { return (tipo & INTEIRO) != 0; } Antes: Depois: public boolean eInteiro() { return tipo.contains(Tipos.INTEIRO); }

9 Reestruturação da Linguagem Imperativa 1 Modificações: 1.Lista: 2.Utilização do ForEach: 3.Parametrização das Classes Stack, HashMap:

10 Reestruturação da Linguagem Imperativa 1 Lista Antes: public class ListaValor { private Valor valor; private ListaValor listaValor; public int length() {...} public Valor head() {...} public ListaValor tail() Lista Depois: public class Lista { protected T head; protected Lista tail; …. public class ListaValor extends Lista {

11 Imperativa 2 Modificações: 1.ListaExpressão e Lista Declaração de Parâmetros: 2.Utilização do ForEach: 3.Parametrização das Classes Stack, HashMap:

12 Reestruturação da Linguagem Imperativa 2 Lista Antes: public class ListaExpressao { private Expressao expressao; private ListaExpressao listaExpressao; public int length() {...} public Expressao head() {...} public ListaExpressao tail() Lista Depois: public class Lista { protected T head; protected Lista tail; …. public class ListaExpressao extends Lista { … public class ListaDeclaracaoParametro extends Lista {

13 OO1 Modificações: 1.Eliminação do pacote Coleção; 2.Utilização do ForEach: 3.Parametrização das Classes Stack, HashMap:

14 OO1 Antes: Depois: public Stack > getPilha();

15 Documentação D’oxygen Doxygen é um sistema de documentação para C++, C, Java, Objective-C, Python, IDL (Corba e Microsoft flavors) e algumas extensões PHO,C#, e D.

16 Documentação D’oxygen Com essa ferramenta podemos fazer: 1.Gerar página html de documentação de código (ou até mesmo Latex). A documentácão é extraída diretamente do código fonte, o que facilita manter a documentação consistente com o código fonte. (Esta funcionalidade é utilizada por desenvolvedores da Motorola); 2.Pode-se configurar o D’oxygen para extrair partes de código que não seja propriamente de documentação, como por exemplo, diagramas de classes, diagrama de sequencia, dentro vários outros artifícios; 3.Você pode até mesmo ‘abusar’ do d’oxygen e usálo para criar documentos normais, tipo manual de instruções.

17 Documentação D’oxygen Como usar? 1.Baixar o doxygen do site Instalar o GraphViz para geração dos.dot(Diagramas de Classes); 3.Rodar o doxywizard; 4.Step1: Configure Doxygen. Neste ponto você pode escolher o Wizard(configuração simples) ou o expert( mais detalhes);

18 Documentação D’oxygen Como usar? 5.Para começar vamos escolher o Wizard; 6.Dar um nome e versao ao projeto (plp,1.0); 7.Apontar para o diretorio onde está o codigo fonte a ser documentado; 8.Geraremos uma documentação de todas as linguagens, já que colocamos a mesma em pacotes;

19 Documentação D’oxygen Como usar? 9.Escolha o local onde a documentação será armazenada; 10.Na aba Mode escolheremos “All Entities” na parte “Select the desired extraction mode” e seleciona “Include cross-referenced source code in the output” e a opcao “Optimize for Java output”

20 Documentação D’oxygen Como usar? 11.Na aba output escolha somente HTML com frames para navegação. 12.E por ultimo a aba Diagrams “Use dot tool from GraphViz package to generate Diagrams”. 13.Salve o arquivo configuração para ser utilizado novamente depois (documentação automática); 14.Working dir (Diretório onde o d’oxygen foi instalado); 15.PRESSIONE START.

21 Documentação D’oxygen

22 Questions, Please !