Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos.

Slides:



Advertisements
Apresentações semelhantes
Java - Interfaces Prof. Msc. Flávio Viotti.
Advertisements

Projeto de Sistemas de Software Luana Lachtermacher
1 Java: Tratamento de Exceções Alcides Calsavara.
Percurso não recursivo e impressão em árvores binárias Drozdek.
Pilhas e Filas.
Classificação. 2 Métodos de Classificação Os métodos de classificação podem ser dos tipos: Classificação interna – quando toda a coleção de itens a classificar.
Estruturas Fundamentais
Listas Ordenadas e Listas Classificadas. 2 Sumário Fundamentos Listas Ordenadas Listas Classificadas.
Árvores.
Árvores de Busca. 2 Uma árvore que suporta eficientes operações de busca, inclusão e exclusão é chamada de árvore de busca. A árvore é usada para armazenar.
Listas Encadeadas Circulares Listas Duplamente Encadeadas
Filas circulares.
Listas Encadeadas Circulares Listas Duplamente Encadeadas
2008 LCG/UFRJ. All rights reserved. 1 Standard Template Library STL Claudio Esperança Paulo Roma Cavalcanti.
1 Estruturas de Controle Márcia J. N. Rodrigues Lucena Especialização em Técnicas e Ferramentas de Apoio à Decisão Departamento.
Animador para a Linguagem Funcional 2 Carlos Eduardo Lima Lucas Roberto Bechert Schmitz Leonardo Lucena.
Erros A Evitar Redundância de Programação public void insere( Priorizavel obj ) throws listaVaziaException; Lançamento de exceções.
Técnicas e Projeto de Sistemas André Mesquita Rincon Processo de Software Técnico Subsequente – Módulo III.
Técnicas e Projeto de Sistemas
Técnicas e Projeto de Sistemas
Técnicas e Projeto de Sistemas
FORTRAN 90 Denise Yumi Takamura.
SQL Procedural Junho/2006.
Introdução à Consulta 24/3/06. Categorias de comandos DDL : estruturação de objetos de BD Ex. create table, drop index, alter table... DML: manipulação.
SQL-3. Novo contexto e necessidade de : Manipular imagens Outros tipos de dados além de texto e números Recuperação de dados mais complexos Níveis distintos.
Container Managed Persistent Bean Kellyton Brito Projeto Compose
Universidade Federal da Bahia – Centro de Processamento de Dados – Preview Computadores 1 Uma Ferramenta Orientada a Modelos para Geração de Aplicações.
Compressão por Hardware
Modelando com UML CMP 231 – Sistemas Embarcados
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço ContextManager Treinamento no GRADEp Framework Master-Worker.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - julho 2005 Serviço Worb Treinamento no GRADEp Serviço Worb WorbDemo.
Slide 1 Rede Nacional de Ensino e Pesquisa Treinamento em Gradep - junho 2005 Serviço Collector Treinamento no GRADEp Serviço Collector CollectorDemo e.
Classes Internas e Anônimas
Mais sobre classes Baseada no Livro: Deitel&Deitel - C++ How To program Cap. 7 Prentice Hall 1994 SCE 213 Programação Orientada a Objetos, ICMC - USP 2.
Banco de Dados I Profa. Jiani Cardoso 2/2005
Disciplina: Paradigmas e Ferramentas de Desenvolvimento de Software
Design Patterns – Composite e Visitor
Templates e Questões de Design Programas são geralmente construídos segundo um design que é relativamente bem mapeado nos mecanismos oferecidos pela linguagem.
UNIVERSIDADE FEDERAL DE SANTA CATARINA PPGEP - Jornalismo On-line
Stoa A Rede de Colaboração da USP Ewout ter Haar Instituto de Física – USP dezembro de 2012.
UNIVERSIDADE DE PASSO FUNDO
Segurança de Dados no MAER.
Implementação Do JXTA Como Protocolo De Transporte Do JacORB
Business Process Management e Workflow - jBPM Aluno: Filipe Ferraz Salgado Orientador: Francisco Reverbel Novembro 2006.
1 Sistema do Processo Legislativo Roberto da Silva Depto. de Informática e Desenvolvimento Organizacional.
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
Professor (a): Oscar Luiz Monteiro de Farias Aluno (a): Andressa da Silva Siqueira Matricula: Universidade do Estado do Rio de Janeiro.
Gerador de Analisadores Léxicos
Tecnologia para Web JavaScript Enrique Pimentel Leite de Oliveira
Entendendo as definições de classe
Análise do Desempenho dos Modelos
Curso de Programação em C++ Universidade Federal do Ceará Departamento de Engenharia Estrutural e Construção Civil Prof: Evandro Parente Junior Monitor:
04:27 Introdução Tipos de Fluxo de Dados e de Arquivos Manipulação de Arquivos em Java Classes FileReader e FileWriter Classes FileInputStream e FileOutputStream.
Programação Concorrente com Thread Java
Threads, Gerenciamento de Threads Pool de Threads, Grupo de Threads Variáveis Locais à Threads.
INPE / CAP-315 Airam J. Preto, Celso L. Mendes Aula 30 (1) Empacotamento de Dados em MPI Tópicos: Buffer de Mensagem Empacotamento/Desempacotamento.
Java em Redes de Computadores
Heap Sort TPA – Prof. Mateus Costa
Análise Sintática – Parte 1
Funções ou procedures Professor Esp. Diego André Sant’Ana
Java 2D Marco Antonio. Java2D Conjunto de classes para trabalhar com gráficos e imagens. A principal classe desta API é JComponent. Com esta classe é.
Java Generics Adeline de Sousa Silva.
ArrayList e Genéricos Profs. PROG2 - UNISINOS.
Tipos Especiais de Listas
Alisson Rafael Appio SOP aplicado em um jogo tipo de corrida usando a arquitetura cliente e servidor Alisson Rafael Appio
Pilhas Profa. Nádia Félix.
Marlon Novas ferramentas da Nokia para a plataforma S40 1.
Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos.
Orientação a Objetos e Java Graduação em Ciência da Computação  Centro de Informática, UFPE Alexandre Mota (com material da Qualiti Software Process)
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
Transcrição da apresentação:

Melhorias e Mensagens Amigáveis ao Usuário Centro de Informática Universidade Federal de Pernambuco Bruno Felipe Marco André Paulo Fernando Rodolfo Santos

Objetivos do Projeto Objetivo Geral – Implantar melhorias no editor utilizado no ensino da disciplina PLP, aproveitando o projeto desenvolvido em , pelos alunos: Namedin Teles e Rafael Lucena – Objetivos Específicos Seleção da linha e/ou operador com erro; Sintaxe highlight; 2

Visitor O padrão Visitor é usado quando se quer adicionar funcionalidades a uma composição de objetos e encapsulamento não é importante Vantagens – Permite adicionar operações a uma estrutura composta sem mudar a estrutura em si – Adicionar novas operações é relativamente fácil – O código das operações realizadas pelo Visitor é centralizado 3

Visitor Desvantagens – O encapsulamento das classes compostas é quebrado quando o Visitor é usado – Como uma função de travessia está envolvida, mudanças à estrutura se tornam mais difíceis 4

Visitor 5

Diagrama de Classes 6

Diagrama de Classes com Visitor 7

Expressao.java public interface Expressao { boolean checaTipo() throws VisitorException; public void accept(LinguagemVisitor lingVisitor) throws VisitorException; public int getLineExpression(); public int getBeginColumnExpression(); public int getEndColumnExpression(); } 8

ExpBinaria.java // Construtor para utilizcao da selecao dos erros no editor public ExpBinaria(Expressao esq, Expressao dir, String operador) { this.esq = esq; this.dir = dir; this.operador = operador; } // public boolean checaTipo() throws VisitorException{ if (!getEsq().checaTipo() || !getDir().checaTipo()) { result = false; accept(visit); } else { result = this.checaTipoElementoTerminal(); } return result; 9 // Variaveis e metodos utilizados na funcionalidade de selecao dos erros no editor // protected int line; protected int beginColumn; protected int endColumn; public int getLineExpression() return this.line; public int getBeginColumnExpression() return this.beginColumn; public int getEndColumnExpression() return this.endColumn;

ExpLength.java // Construtor para utilizacao da selecao dos erros no editor public ExpLength(Expressao exp, int line, int beginColumn, int endColumn) { super(exp, "length"); this.line = line; this.beginColumn = beginColumn; this.endColumn = endColumn; }// protected boolean checaTipoElementoTerminal() throws VisitorException { boolean Result = (getExp().getTipo().eString()); if (!Result) accept(visit); return Result; } 10 public void accept(LinguagemVisitor lingVisitor) throws VisitorException { lingVisitor.visit(this); }

LinguagemVisitor.java public void visit(ExpLength expLength) throws VisitorException; public void visit(ExpMenos expMenos) throws VisitorException; public void visit(ExpNot expNot) throws VisitorException; public void visit(ExpBinaria expBinaria) throws VisitorException; 11

VisitorExpressoes1.java public void visit(ExpLength expLength) throws VisitorException { if (!expLength.getExp().getTipo().eString()) { AppletInterpretadorPLP.SelecionarErro(expLength.getExp().getLineExpression(), expLength.getExp().getBeginColumnExpression(), expLength.getExp().getEndColumnExpression()); } 12 public void visit(ExpBinaria expBinaria) throws VisitorException { if (!expBinaria.getEsq().checaTipo()) { AppletInterpretadorPLP.SelecionarErro(expBinaria.getEsq().getLineExpression(), expBinaria.getEsq().getBeginColumnExpression(), expBinaria.getEsq().getEndColumnExpression()); } else { AppletInterpretadorPLP.SelecionarErro(expBinaria.getDir().getLineExpression(), expBinaria.getDir().getBeginColumnExpression(), expBinaria.getDir().getEndColumnExpression()); } }

Telas 13