Arfs – Aluisio Rodrigo Fonseca de Santana fns2 – Fagner Nascimento e Silva.

Slides:



Advertisements
Apresentações semelhantes
I/O Carlos Bazilio Depto de Ciência e Tecnologia
Advertisements

Programação Orientada a Objetos*
Conceitos de Programação Paralela
Eventos Marco Antonio, Arquiteto de Software – TJDF Novembro/2005
Sockets Marco Antonio – marcoreis.net Arquiteto de Software Dezembro/2007.
Tratamento de Exceções
Programação orientada a objetos
14.17 Tratamento de Eventos de Teclado
Projeto de Sistemas de Software
PRDS - Programa de Residência em Desenvolvimento de Software Laboratório de Engenharia de Software (LES) da PUC-Rio Carlos Lucena
Uma linguagem de programação para o ambiente Virtuosi
Capítulo 15 Swing – Parte 1.
Introdução a Programação JAVA
Tópicos Tipos de Dados Variáveis por Valor Variáveis por Referência
CRIANDO OBJETOS EM JAVA
Aula prática 7 Strings Monitoria de Introdução à Programação
Acadêmicos: Durval Slompo Junior / Verediane R. S. Monteiro
JAVA Orientação a Objetos
JAVA Linguagem Ambiente de Desenvolvimento
Linguagem técnica de programação I Java
Introdução a aplicativos Java
Multimédia Imagem digital
Fns2 – Fagner Nascimento
Programação orientada a Aspectos Radio Manager System.
1 Mobilidade de Código com μcode Projeto Giga Alexandre Lages
Os métodos equals() e hashCode()
Orientação a Objetos e Java Graduação em Ciência da Computação
Pilhas Profa. Nádia Félix.
Stream – Fluxo I/O Sistema de Arquivos
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Paradigmas da Programação – Semestre 1 – Aula 10 Professor: Eduardo Mantovani )
Tratamento de Exceções
Programação Orientada a Objetos - Java
Java Kickstart, day 2 Semelhanças com linguagem C.
Análise Léxica Prof. Alexandre Monteiro
Capítulo 6 Exceções.
Programação orientada a aspectos Marcação de Concerns Paulo Fagner Thiago Brayner Tiago Vinícius.
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)
Estrutura de Controle em JAVA
Exceções Suzana Fragoso (smpf) Adaptado do material de Guilherme Carvalho (gvc)
Exceções Profa. Patrícia A. Jaques Alterada por Leandro Tonietto abr-15.
Laboratório de Programação II Pacotes Visibilidade Referências a Objetos.
Linguagem I Strings.
Vendo o código como um bolo... com várias camadas! Interface com o usuário (GUI) Comunicação Negócio Dados.
Programação I Aula 4 (Expressões Booleanas e Expressões de Seleção) Prof. Gilberto Irajá Müller Última atualização 17/3/2009.
Certificação Marco Antonio. Introdução A compreensão desse capítulo é muito importante pois trata de um assunto essencial em qualquer linguagem de programação,
Programação Orientada a Objetos - Java Professor: Jean Carlo Mendes.
Aula Prática 1 Monitoria IP/CC (~if669) (A partir do slide elaborado por Luís Gabriel)
Flip - Ferramenta para Linhas de Produtos de Aplicações Móveis Parte 2: Resultados da utilização do CCFinder Carlos Eduardo Pontual Fernanda d’Amorim Leopoldo.
Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1.
SISTEMA PROCESSUAL DIGITAL
Java Pet Store 2.0 Reference Application Guilherme Oliveira (gkmo)
Aglets.
Copyright 1998, Departamento de Informática da UFPE. Todos os direitos reservados sob a legislação em vigor. Variáveis e métodos estáticos, Passagem de.
Lucas Figueiredo Marcelo Pereira Ranieri Valença Rosana Matos Valmir Sena.
Arfs – Aluisio Rodrigo Fonseca de Santana fns2 – Fagner Nascimento e Silva.
Título do Projeto Equipe.
Ferramentas para Linhas de Produtos de Aplicações Móveis - FLIP Carlos Eduardo Pontual Fernanda d’Amorim Leopoldo Teixeira.
Linha de Produção de Jogo Móveis Danilo Cavalcanti Torres - dct.
P ET SHOP M ANAGER 3ª Parte – Reestruturação do Código.
Aula prática 7 Strings Monitoria de Introdução à Programação.
Apoio.
© Copyright 2008 Algoritmos e Estruturas de Dados 1 IF672 - Algoritmos e Estruturas de Dados CIn - UFPE Adriana Libório Fernandes Lins Arthur Cavalcanti.
CURSO DE HTML 40 horas. COMPONENTES BÁSICO DA ESTRUTURA - marca do início do documento HTML - início do cabeçalho - título da página - corpo do documento.
Laboratório de Programação II Método main Dados e Métodos de Classes.
Site upload de documentos
Diêgo Santiago, Leila Soriano e Patrícia Lustosa 27/03/2008 JaTS Java Transformation System Parte 1.
Programação orientada a Aspectos Radio Manager System.
ASP.NET Passo a Passo Controles com Processamento Personalizado Criando um controle personalizado 1. Abra ou copie a solução ControlORama desenvolvido.
Transcrição da apresentação:

arfs – Aluisio Rodrigo Fonseca de Santana fns2 – Fagner Nascimento e Silva

 Jomic é um visualizador de “comics” suportando tipos de arquivo como CBZ, CBR, PDF, RAR e ZIP;  Permite visualização de duas páginas, caching e suporta vários formatos de imagem (PNG, JPEG, TIFF, GIF).  Desenvolvido em Java, como opensource distribuido como GNU-GPL.

Visualização de duas páginas + Miniatura

Rotação

 Total de linhas de código:  Total de Classes: 164.  Pacotes: 6.  12 horas de marcação.  Total de Linhas Marcadas: 7.655

 GUI  Código espalhado pelo projeto inteiro.  Internacionalização  Código localizado nos documentos de configuração  Negócio  Ausência de documento de Requisitos  Tratamento de Eventos  Concern normalmente presente em projetos com GUIs.

public void setScaleMode(String newScaleMode) { imageTools.assertIsValidScaleMode(newScaleMode); scaleMode = newScaleMode; if (scaleMode.equals(ImageTools.SCALE_ACTUAL)) { setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_AS_NEEDED); setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_AS_NEEDED); } else if (scaleMode.equals(ImageTools.SCALE_FIT)) { setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_NEVER); setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_NEVER); } else if (scaleMode.equals(ImageTools.SCALE_HEIGHT)) { setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_AS_NEEDED); setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_NEVER); } else if (scaleMode.equals(ImageTools.SCALE_WIDTH)) { setHorizontalScrollBarPolicy(HORIZONTAL_SCROLLBAR_NEVER); setVerticalScrollBarPolicy(VERTICAL_SCROLLBAR_AS_NEEDED); } if (model != null) { updateDisplay(); }

public void showError (String message, Throwable error, boolean modal) { if (errorTools != null) { errorTools.showMessage(null, JOptionPane.ERROR_MESSAGE, message, error, modal); } if (logger != null) { logger.error(message, error); } else { // In case there isn't anything else to work with, use System.err. PrintStream errorStream = System.err; errorStream.println(message); error.printStackTrace(errorStream); }

 Projeto feito por terceiros (entendimento do código);  Definição dos concerns  Devido à ausência de documentos de caso de uso;  Identificação de concerns convencionais;

 Dos concerns identificados, Log foi o que apresentou o maior índice espalhamento, e esteve “crosscutting” com todos os outros concerns marcados.  As métricas foram úteis para identificação e quantificação dos espalhamento dos concerns.

Parte 2: Resultados da utilização do CCFinder

 Minimum Clone Lengh  50  Minimum TKN  6  Shaper Level  2 - Softshaper

 Quantidade de pares detectados  89  Quantidade de clones associados a concerns:  13  Não marcados anteriormente como concerns.

 Extract: 6  Blur: 7  Outros concerns: 0

 Foram encontrados classes e métodos praticamente copiados;  Entretanto, a relação de cópia eram em pares. Sendo consideradas poucas em relação ao tamanho do projeto.  Muitas das cópias encontradas não foram relevantes para refatoramento.