Prêmio Universitário Felipe
      Gaúcho 2009




 Aproximando a academia e o mercado
          Java do Ceará


                            Fortaleza - Ceará
                             Julho de 2010




  Prêmio Universitário Felipe Gaúcho 2009       CEJUG, Página 1
"Se eu enxerguei longe, foi por ter subido nos ombros de gigantes.”

                             – Isaac Newton




  Prêmio Universitário Felipe Gaúcho 2009          CEJUG, Página 2
Índice

Patrocínio
                                                      4
Mudança do nome
                                                 5
O que é?
                                                        6
O que mudou no PUG 2009?
                                        7
Critérios de avaliação
                                          8
Banca avaliadora
                                               11
Alunos x Instituições
                                          17
Avaliadores x Estados
                                          18
Trabalhos
                                                      19
Trabalhos
                                                      20
Trabalhos
                                                      21
Classificação final do PUG 2009
                                  22
Avaliações
                                                     23
Pespectivas para o PUG 2010
                                    82
Veracidade do documento
                                        83




    Prêmio Universitário Felipe Gaúcho 2009   CEJUG, Página 3
Patrocínio




USIX Technology                           IVIA
Empresa cearense que tem como             Fundada em 1996, a IVIA é uma
foco o mercado de seguradoras,            empresa especializada em T.I,
atuando com desenvolvimento               atuando com software e serviços.
de software.                              Certificada CMMI 2, MPS.BR E.




Fortes Informática                        Atlântico
Empresa pertencente ao Grupo              É uma instituição de P&D que
Fortes, 20 anos de atuação em             provê soluções tecnológicas que
T.I, desenvolvendo softwares nas          geram valor em forma de
áreas contábil, RH, etc.                  inovação.



    Prêmio Universitário Felipe Gaúcho 2009              CEJUG, Página 4
Mudança do nome


    Em virtude do falecimento do Felipe Gaúcho, no dia 06 de março
deste ano, a coordenação do CEJUG, em conjunto com seus
conselheiros, alterou o nome do PUJ - Prêmio Universitário Java - para
PUG - Prêmio Universitário Felipe Gaúcho, a fim de homenagear e
imortalizar o criador do programa.




                           Felipe Gaúcho, 1969 - 2010




     Prêmio Universitário Felipe Gaúcho 2009            CEJUG, Página 5
O que é?

    Um dos objetivos do PUG é promover a sinergia entre academia e
mercado de TI, permitindo que a produção universitária receba a
avaliação de experientes profissionais de mercado. Esta avaliação, mais
do que premiar um aluno, revela o quão próximo da realidade de
mercado estão os cursos de graduação em TI no Ceará.


    O CEJUG não interfere nas notas e comentários entregues pelos
avaliadores. Todas as informações fornecidas pelos avaliadores foram
compiladas para facilitar a leitura dos dados e também para preservar
os endereços de contato dos avaliadores.




     Prêmio Universitário Felipe Gaúcho 2009       CEJUG, Página 6
O que mudou no PUG 2009?
‣ Categoria Mobile - uma categoria especial Java ME (Micro Edition) - a
Sagarana está patrocinando uma categoria piloto em tecnologias JME. Esta
categoria será avaliada para a inclusão oficial do JME no PUG a partir de sua
quarta edição.

‣ Ranking CEJUG - a partir desta edição o PUG terá um ranking por
universidades e por professores.

‣ Limite de trabalhos, que agora passa a ser no máximo 25 - para garantir a
qualidade das avaliações. Se o número de submissões exceder este limite,
uma banca especial escolherá os vinte cinco melhores trabalhos para a
competição.

‣ Trabalhos em grupo passam a ser aceitos, mas o prêmio vai apenas para 1
aluno - o professor deve indicar na submissão quem é o autor principal do
trabalho.

‣ Um aluno pode competir com apenas um trabalho - o aluno não pode
submeter dois trabalhos no mesmo PUG.

‣ Professores não podem avaliar trabalhos das instituições de ensino onde
trabalham.

‣ Alunos não podem avaliar trabalhos de alunos da mesma instituição onde
estudam (seu colegas de faculdade).

‣ A melhor e a pior nota dos alunos serão eliminadas da competição, que terá
a média final calculada por média harmônica com duas casas decimais. A
nota mínima dos trabalhos será 1.00 e a nota máxima 10.

‣ As notas submetidas pelos avaliadores serão comparadas com as médias
finais dos alunos, revelando quão longe da média cada avaliador ficou para
cada trabalho. A idéia é extrair automaticamente dos resultados finais os
avaliadores mais regulares da competição - um bom feedback aos avaliadores.

‣ Teremos prêmios para os 5 melhores trabalhos, e 1 prêmio para o professor
do trabalho vencedor. Além disso, todos os participantes receberão
certificados de participação no PUG 2009 (PDF assinado pelo Footprint).




     Prêmio Universitário Felipe Gaúcho 2009            CEJUG, Página 7
Critérios de avaliação

   Uma caraterística em jovens estudantes é associar a qualidade do
que produzem a critérios individuais, associando a nota que recebem
em pequenos detalhes – um ponto para pontualidade, um ponto para
apresentação, outra para documentação, etc. Apesar de ser prática
comum no ensino fundamental e ainda existir na avaliação de trabalhos
em cursos de graduação, esta barganha de qualidade não sobrevive no
mercado de software e não é prática comum nas empresas de
Tecnologia da Informação.


   Quando empresas entregam produtos a clientes, o primeiro impacto
sempre revela a satisfação do cliente com o produto que ele comprou, de
acordo com a expectativa do contrato firmado entre o consumidor e o
fornecedor. Se o cliente não ficar satisfeito com o resultado, dificilmente
o fornecedor do software irá convencê­lo a mudar de opinião por
detalhes internos da aplicação. No mercado de TI, os conceitos de bom e
ruim sempre prevalecem sobre o detalhamento do que foi feito, e
reconhecer este valor de mercado é um aprendizado duro que o aluno
pratica ao competir no PUG. Baseado nesta premissa, o PUG procura
renomados profissionais no mercado de TI e concede a estes
profissionais o privilégio e a responsabilidade sobre a avaliação dos
trabalho apresentados pelos alunos. Acreditamos fielmente que a visão
de profissionais com vários anos de experiência no mercado de software
é mais do que suficiente para uma avaliação justa de trabalhos
acadêmicos. O CEJUG procurou também convidar para o PUG 2008
diversos profisionais de fora do Estado do Ceará, reforçando a
imparcialidade na avaliação dos trabalhos – uma vez que a maioria
destes profissionais não conhece as universidades e os alunos
participantes do prêmio.
	

   Além de profissionais, os alunos competidores e seus professores
também participam da avaliação ­ processo conhecido como revisão aos
pares – pois acreditamos que ao avaliarem seus colegas os alunos
amadurecem o senso crítico sobre qualidade de software e reconhecem
em seus pares o contexto universitário onde estão inseridos. Os
professores, por sua vez, avaliam a qualidade de software sob a ótica
acadêmica, identificando o potencial educacional dos enunciados e o
aprendizado dos alunos durante a execução dos trabalhos.



     Prêmio Universitário Felipe Gaúcho 2009          CEJUG, Página 8
Apesar do PUG concentrar a qualidade das avaliações na qualidade
das pessoas, os avaliadores receberam como sugestão a lista de critérios
abaixo. * Nenhum avaliador foi obrigado a seguir estes critérios, foram
apenas sugestões, linhas gerais.

‣ Avaliação independente de tecnologias específicas: o avaliador deve
evitar ao máximo associar as tecnologias utilizadas para realizar o
trabalho à qualidade do trabalho. Trabalhos realizado com Swing/AWT,
Servlet/JSP ou EJB3/JPA devem sofrer o mesmo olhar crítico, sem
nenhuma qualificação a priori. O que está sendo avaliado é a qualidade
do trabalho do aluno e a qualidade do enunciado. O PUG não tem
nenhuma intenção de comparar ou avaliar as tecnologias utilizadas nos
trabalhos – e o aluno, como futuro profissional, deve entender a
qualidade de seu trabalho como algo associado a seu conhecimento e
habilidade técnica, e nunca dependente de tecnologias ou ferramentas
específicas.

‣ Qualidade acadêmica do trabalho: um ponto importante é o
aprendizado do aluno durante a implementação do trabalho e a
qualidade do enunciado. O quanto o trabalho permitiu ao aluno
aprender é um quesito importante e reflete a qualidade do aluno e do
professor.

‣ Forma e conteúdo: trabalhos com visual impressionante mas que
dependem muito de frameworks ou bibliotecas devem ser avaliados com
cautela e confrontados com trabalhos pobres visualmente mas que
baseiam­se em projetos elaborados do ponto de vista de conhecimento
emtecnologia da informação (algoritmos, estruturas de dados, técnicas
de programação). A qualidade do que o aluno realmente aprendeu e
produziu é mais relevante do que a qualidade visual que a tecnologia lhe
permitiu – o conteúdo do trabalho é mais relevante que a forma do
trabalho, mas ambos tem impacto na qualidade final do produto.

‣ Qualidade de software do mercado de TI: a avaliação deve também
considerar o trabalho do aluno como um projeto de software comercial,
identificando pontos onde o projeto seria mal avaliado por critérios de
qualidade adotados pelas empresas de TI. Dentre os tópicos mais
comuns, destacam­se: documentação, artefatos de distribuição
(deployment), existência de testes unitários ou funcionais, organização
do código fonte, comentários no código, uso correto de estruturas de
dados e da API Java, etc.


     Prêmio Universitário Felipe Gaúcho 2009         CEJUG, Página 9
‣ IHC – Interação Humano­Computador: acabamento final e visual do
trabalho – internacionalização, uso correto do português, das cores,
distribuição dos componentes, etc. Se o trabalho não tiver interface
gráfica, ou isso não for o mais importante no trabalho, ignore este
quesito.

‣ Desempenho: considerando a função do trabalho, qual o seu
desempenho, tamanho e número de dependências?




    Prêmio Universitário Felipe Gaúcho 2009       CEJUG, Página 10
Banca avaliadora

   Foram convidados 10 profissionais de mercado, além dos 8 alunos e
seus professores. Infelizmente, apenas 3 professores puderam avaliar
os trabalhos (40%) e apenas 1 aluno não entregou a sua avaliação,
perdendo um ponto na média final. Profissionais possuem peso 7 e
alunos possuem peso 1. Não foram consideradas as notas dos
professores.


   O mini­currículo dos profissionais que entregaram as avaliações
para o PUG 2009 estão enumerados na tabela abaixo:

Adriano Almeida - Caelum - SP 
 
       
    
 
 
          
     Página 10
Alexandre Gomes - SEA Tecnologia - InfoQ - DF
   
          
     Página 11
Cláudio Rocha - IVIA - CE

    
   
    
    
 
 
          
     Página 11
Fabiane Nardon - Zilics - JavaTools Community - SP
         
     Página 12
Hebert Aquino - BRQ - CE

     
   
    
    
 
 
          
     Página 12
João Victor - USIX - CE
 
     
   
    
    
 
 
          
     Página 13
Julio Viegas - SPC Brasil - Globalcode - SP
 
 
 
          
     Página 13
Loiane Groner - IBM - ESJUG - SP

      
    
 
 
          
     Página 14
Ricardo Ferreira - Red Hat / JBoss - SP
 
     
 
          
     Página 14
Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB
 
          
     Página 15

                         Nome                       Mini-currículo
                                         É bacharel em Sistemas de Informação
                                         pela Faculdade de Infor mática e
                                         Administração Paulista e possui as
                                         certificações SCJP e SCWCD. Desenvolve
                                         sistemas desde 2005 e é entusiasta
                  Adriano Almeida        práticas agéis de desenvolvimento, como
                                         testes unitários, integração contínua,
                                         pair programming entre outras.
                                         Atualmente é instrutor, desenvolvedor e
                                         consultor pela Caelum.




    Prêmio Universitário Felipe Gaúcho 2009                CEJUG, Página 11
Nome                        Mini-currículo
                                     Mestre e Bacharel em Ciência da
                                     Computação pela Universidade de
                                     Brasília (2007, 2001); Diretor Técnico
                                     da SEA Tecnologia; Mais de 10 anos de
                                     experiência em arquitetura e
                                     desenvolvimento de software; Mais de 4
                                     anos de experiência em gestão de
                                     projetos e liderança de equipes;
                                     Experiência em editorial de revistas e
                                     sites de conteúdo técnicos (MundoJava
             Alexandre Gomes         e InfoQ); Instrutor de cursos oficiais da
                                     Sun Microsystems, SAP e RedHat/JBoss
                                     com centenas de horas ministrando
                                     treinamentos para a iniciativa pública e
                                     privada; Palestrante em dezenas de
                                     eventos tecnológicos nacionais e
                                     internacionais; Grande defensor da
                                     utilização de modelos colaborativos e
                                     ágeis para a gestão empresarial;
                                     Atualmente com pesquisas em modelos
                                     arquiteturais para a computação ubíqua.

                                     Graduado em Administração de
                                     Empresas, possui pouco mais de 9 anos
                                     de experiência em desenvolvimento de
                                     software na tecnologia Java. Trabalha
                Cláudio Rocha        na Ivia desde 2005 tendo participado
                                     neste período em projetos Java para
                                     diversas instituições de variados portes.




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 12
Nome                        Mini-currículo
                                     Fabiane Bizinella Nardon é Mestre em
                                     Ciência da Computação pela UFRGS e
                                     Doutora em Sistemas Eletrônicos pela
                                     USP. Atuou em diversas instituições de
                                     grande porte, em projetos de larga
                                     escala e de grande impacto social, como
                                     o Sistema SIGA-Saúde, vencedor do
                                     Duke’s Choice Award’2005. Atualmente
                                     é Diretora de Tecnologia da Zilics, onde é
                                     responsável pelas definições
                                     tecnológicas em projetos na área de
                                     saúde, e líder do grupo de pesquisa de
                                     computação na nuvem do LSI/USP. Foi
                                     diretora de diversos grupos sem fins
                                     lucrativos, como o Capítulo Latino-
               Fabiane Nardon        Americano do CORBAmed e a Sociedade
                                     Brasileira de Informática em Saúde,
                                     além de ter sido membro do OpenJDK
                                     Governance Board, o órgão responsável
                                     pela criação da constituição do Java
                                     Open Source. Atualmente é líder da
                                     JavaTools Community do Java.net, uma
                                     comunidade que réune mais de 800
                                     projetos open source do mundo todo e
                                     membro do comitê arquitetural da
                                     Fundação OpenEHR. Recebeu o Special
                                     Jury Award no concurso
                                     Simagine’2006, em Barcelona, pela
                                     criação da aplicação Virtual Health Pet.
                                     Em 2006, foi apontada como Java
                                     Champion pela Sun Microsystems.

                                     Hebert de Aquino trabalha há 7 anos
                                     com desenvolvimento Java, com foco no
                                     desenvolvimento Java SE e Java EE. É
                                     bacharelado em Ciências da Computação
                                     e faz mestrado pela Universadade de
               Hebert Aquino         Fortaleza (UNIFOR).
                                     Atualmente, trabalha como Arquiteto de
                                     Software na BRq e possui algumas
                                     certificações da Sun (SCJP, SCWCD,
                                     SCBCD, SCEA e SCMAD).




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 13
Nome                       Mini-currículo
                                     Graduado em Informática pela
                                     Universidade de Fortaleza e Mestre em
                                     Administração de Empresas pela
                                     Universidade de Fortaleza (2006).
                                     Atualmente é o Gerente Técnico da
                                     Matriz da USIX Technology onde tem
                                     como principal responsabilidade a
                                     gestão de todo o Portfólio de Projetos e
                                     Operações. Possui certificações Project
                 João Victor         Management Professional (PMP) e
                                     Information Technology Infrastructure
                                     Library (ITIL).
                                     Têm experiência em gerenciamento de
                                     Prog ramas e Portfólio, atuando
                                     principalmente em projetos corporativos
                                     de g randes organizações, como
                                     Bradesco, SulAmérica Seguros, Brasil
                                     Veículos (Seguradora do Banco do
                                     Brasil) dentre outras.

                                     For mado em Desenvolvimento de
                                     Sistemas pela UNISUL, foi
                                     instrutor Java certificado pela Sun
                                     Microsystems. Possui mais de 10
                                     anos de experiência na área de
                                     tecnologia como instrutor(ministra
                                     aulas de Java desde 2001), arquiteto,
                 Julio Viegas        consultor e desenvolvedor de
                                     sistemas de software. Colaborador ativo
                                     no RSJUG, XP-RS, CEJUG e
                                     outras comunidades. Possui as
                                     certificações SCJP 5, SCJA 1, SCEA 1 e
                                     5, SCDJWS 1.4 e 5, SCWCD 1.4, SCBCD 5,
                                     Sun Certified Trainer.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 14
Nome                       Mini-currículo
                                     Bacharel em Ciência da Computação,
                                     atua como IT Specialist num projeto
                                     internacional na IBM – Hortolândia-SP -
                                     voltado para a plataforma Java Web.
                                     Atua como embaixadora técnica e de
                                     relacionamento do IBM Academic
                                     Initiative. Coordenadora do ESJUG
                                     (Grupo de Usuários Java do Espírito
                                     Santo) e jug leader do CampinasJUG/
                Loiane Groner        Java Campinas (Grupo de Usuários Java
                                     de Campinas-SP e Região). Possui 4 anos
                                     de experiência na palataforma Java e
                                     experiência 2 anos como Teacher
                                     Assistant. Atuou por 2 anos como
                                     Delegada Estudantil da SBC (Sociedade
                                     Brasileira de Computação) na FAESA.
                                     Escreve sobre java e desenvolvimento no
                                     blog http://loiane.com e no blog em
                                     inglês http://loianegroner.com

                                     Ricardo Ferreira trabalha na JBoss, a
                                     divisão de Middleware da Red Hat
                                     atuando como Solutions Architect e
                                     como especialista em SOA e BPM. Possui
                                     mais de 12 anos de experiência na área
                                     de desenvolvimento de softwares, 8
                                     destes anos dedicados a soluções em
                                     Java / JEE de missão crítica. É
                                     especialista em soluções de EAI e
                                     plataformas de negócios baseadas em
                                     BPM. Já esteve em diversos projetos
                                     SOA em empresas do governo,
                                     telecomunicações e construção civil
              Ricardo Ferreira       liderando equipes em plataformas como
                                     Progress (Sonic), webMethods, BizTalk,
                                     AquaLogic e JBoss SOA Platform. É
                                     colunista da revista Mundo Java onde
                                     escreve periodicamente artigos sobre
                                     SOA e BPM na coluna "SOA na Prática".
                                     Além disso, possui diversas certificações
                                     de grandes players da indústria como
                                     Sun, IBM, Oracle e Borland, entre elas:
                                     SCEA, SCBCD, SCWCD, SCJP, IBM
                                     Certified SOA Solution Designer, IBM
                                     Certified RUP Solution Designer, Oracle
                                     SOA Architect Certified Expert e
                                     Borland JBuilder Certified Developer.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 15
Nome                   Mini-currículo
                              Possui graduação em Ciência da
                              Computação pela Universidade Federal
                              de Campina Grande (2003) e mestrado
                              em informática pela Universidade
                              Federal de Campina Grande (2005).
                              Tem experiência na área de Ciência da
                              Computação, com ênfase em Gerência de
                              Serviços de TI e Engenharia de
                              Software, atuando principalmente nos
             Rodrigo Rebouças seguintes temas: gerência de serviços
                              orientada a negócios; gerência de
                              mudanças em TI; ITIL; processos de
                              desenvolvimento de software;
                              engenharia de software; arquitetura de
                              software. Atualmente é Analista de T.I e
                              arquiteto de software da Dataprev, JUG
                              Leader do PBJUG e co-fundador da
                              Melon Tech.




Prêmio Universitário Felipe Gaúcho 2009            CEJUG, Página 16
Alunos x Instituições
            UFC              IFCE              FA7        UNIFOR




                                              IFCE
                       UFC                      2
                        2



                                                 FA7
                                                  1
                             UNIFOR
                               3


UFC - Universidade Federal do Ceará
IFCE - Instituto Federal de Educação, Ciência e Tecnologia do Ceará
FA7 - Faculdade 7 de Setembro
UNIFOR - Universidade de Fortaleza




    Prêmio Universitário Felipe Gaúcho 2009            CEJUG, Página 17
Avaliadores x Estados
          CE                 SP           DF              PB




                        CE
                         3



                                               SP
                   PB                           5
                    1
                          DF
                          1




Prêmio Universitário Felipe Gaúcho 2009             CEJUG, Página 18
Trabalhos


                                    Brincadeira de criança
                                                             IFCE
                                   Aluno: Marcos Paulo
                                   Professor: Fernando Parente




                                  C3U - Chat 3D Unifor
                                                     UNIFOR
                                  Aluno: Daniel Valente
                                  Professor: Julio Guido
                                  Militão

                                   Codificação de Huff
                                                      man
                                                               FA7
                                  Aluno: Francisco Jo
                                                     sé de
                                  Lima
                                  Professor: Leonard
                                                    o Holanda



Prêmio Universitário Felipe Gaúcho 2009           CEJUG, Página 19
Trabalhos


                                    Gerenciador de Documentos
                                                            UFC
                                   Aluno: Diego Aguiar Sousa
                                   Professor: Iális Cavalcante




                                  Indexador Semântico
                                                   UNIFOR
                                  Aluno: Germano Duarte
                                  Professor: Raimundo Tales



                                   Labirinto Dinâmico
                                                        c/ grafos
                                                       UNIFOR
                                  Aluno: Carlos Albé
                                                      rcio
                                  Maciel
                                  Professor: Rafael B
                                                     arbosa



Prêmio Universitário Felipe Gaúcho 2009           CEJUG, Página 20
Trabalhos


                                    Simulador de Árvore B+ em
                                    Java FX
                                                           IFCE
                                   Aluno: Anderson de Matos
                                   Professor: Glauber Cintra


                                  Sistema de fretes
                                                            UFC
                                  Aluno: Rafael Sales
                                  Professor: Vânia Ponte Vidal




Prêmio Universitário Felipe Gaúcho 2009           CEJUG, Página 21
Classificação final do PUG
               2009
O quadro abaixo apresenta a classificação final do PUG 2009:


 # Média               Aluno                      Professor          Instituição

                 Daniel Valente de
 1   8.84                                  Julio Guido Militão        UNIFOR
                     Macedo

                 Francisco José de         Leonardo Gomes de
 2   7.78                                                               FA7
                       Lima                     Holanda

              Carlos Albercio Maciel             Rafael Garcia
 3   7.26                                                             UNIFOR
                  Lopes Júnior                     Barbosa

                Marcos Paulo Souza
 4   7.06                                      Fernando Parente         IFCE
                   Damasceno

                Germano Machado                Raimundo Tales
 5    6.8                                                             UNIFOR
                    Duarte                     Benigno Rocha

               Anderson Severo de              Glauber Ferreira
 6    6.7                                                               IFCE
                     Matos                          Cintra

                 Rafael de Castro          Vânia Maria Ponte
 7   5.81                                                               UFC
                  Dantas Sales                   Vidal

                                           Iális Cavalcante de
 8   5.75       Diego Aguiar Souza                                  UFC/Sobral
                                              Paula Júnior

Siglas:     - 1º lugar - campeão

           - 2º lugar

           - 3º lugar

           - 4º lugar

           - 5º lugar



     Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 22
Avaliações
                       1º - Daniel Valente de Macedo
                       Campeão PUG 2009
                       Faculdade: UNIFOR
                       Professor: Julio Guido Militão
                       Média aritmética: 8,84
                       Link p/ o trabalho: http://tiny.cc/ue6gb




                            Profissionais

Nota                                  Avaliação
           Adriano Almeida - Caelum - SP
           Excelente manual, muito completo e detalhado. O sistema
           funcionou sem problema nenhum em um MacOS, parabéns pela
           compatibilidade entre as diferentes plataformas, pois havia
           bibliotecas disponíveis. A qualidade da usabilidade do projeto é
           excepcional, fiquei realmente encantado. Sobre o código, pode-se
           melhorar alguns tratamentos de exceções, onde em várias
           lugares elas são perdidas.
9.5
           O código está bastante simples e fácil de ler, expressividade no
           código é um fator que acho muito importante e seu código está
           expressivo em grande parte do projeto (mesmo usando Swing
           que é uma API que não favorece código expressivo). Parabéns
           novamente. A ideia simples de um chat via socket, que é algo que
           fazemos na Caelum no nosso curso básico de Java foi muito bem
           aplicada. Com certeza mostrarei esse projeto para meus alunos.
           Uma pena não ter testes unitarios.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 23
Profissionais

Nota                                  Avaliação
           Alexandre Gomes - SEA Tecnologia - InfoQ - DF
           Impressionante resultado visual e com grande potencial de
           pesquisa e evolução pelas gerações subsequentes de estudantes.
           O código está simples e muito bem estruturado, o que reflete a
           clareza e sobriedade de idéias do aluno. Algumas observações,
           entretanto, se fazem necessárias para aperfeiçoamento deste
           futuro profissional.

           Atente-se ao português. Apesar de ter uma mensagem clara na
           documentação, o excesso de termos coloquiais e falhas
           constantes de concordância prejudicam a impressão final de um
10
           contrante. Em projetos reais, se há alguma opção que não deve
           ser selecionada, não a disponibilize no projeto, como é o caso do
           checkbox 'Fullscreen' apresentado na incialização do jogo mas
           cuja seleção é proibida pela documentação. Em próximas
           oportunidades, revise a documentação após concluído todo o
           trabalho de desenvolvimento. Algumas instruções pareceram-me
           obsoletas (e.g., não existe o arquivo PUJ2009.zip para importação
           do projeto, as libs não vieram configuradas). Logging com
           System.out.println não é uma boa prática. O algoritmo de colisão
           com as coordenadas hard coded não poderia ser melhor
           flexibilizado?

           Cláudio Rocha - IVIA - CE
           O trabalho do Daniel utilizou um componente já recorrente em
           trabalhos com implementação que é o Chat porém incorporou à
           ele toda a interatividade da computação gráfica. A proposta ficou
           bem interessante.
9.4
           Este trabalho foi implementado com o lado cliente e lado servidor.
           No lado cliente estava toda a lógica de apresentação gráfica, e o
           lado servidor que realizava o controle dos diálogos. Também
           houve a necessidade de se estabelecer um protocolo de
           comunicação para que os clientes pudessem reconhecer a ação
           executada pelo outro cliente.




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 24
Profissionais

Nota                                  Avaliação
           Fabiane Nardon - Zitrics - JavaTools Community - SP
           Infelizmente a aplicação não fornece um jar pronto para ser
           executado, o que facilitaria bastante a avaliação da ferramenta. O
           sistema fornece um arquivo .bat para execução, mas o mesmo
           não funciona por não existir o jar necessário. Lembre-se: facilitar
           o uso da aplicação é fundamental para você ter sucesso no seu
 9         produto! Após instalar o Eclipse, as instruções estavam claras e
           precisas e foi muito fácil executar a aplicação.

           Gostei muito do cuidado com a interface, criando roupas para o
           PUJ, CEJUG, etc. Existe uma boa quantidade de JavaDoc no
           código, o que facilita o entendimento. De modo geral, o código
           está bem organizado e bem formulado.

           Hebert Aquino - BRQ - CE
           Excelente projeto com boa documentação porém não gerou o
9.8        Javadoc.
           Gerou uma vídeo-aula de como configurar a aplicação.




Prêmio Universitário Felipe Gaúcho 2009                   CEJUG, Página 25
Profissionais

Nota                                  Avaliação
           João Victor - USIX Technology - CE
           Justificativa para a nota: O sistema apresentado é muito bom
           visualmente. Utilizou de um modismo tecnológico (Second Life)
           para desenvolver a aplicação. Consegue atender o propósito da
           ferramenta com muita clareza e praticidade e os comandos são
           bastante conhecidos para quem esta acostumado a jogar no
           micro. Outro ponto importante é a utilização de tecnologia 3D
           para aprimorar o aplicativo. Um ponto negativo foi não
           disponibilizar um “executável” para rodar a aplicação.

           A documentação do projeto esta excelente. Possui um vídeo
           explicativo para colocar a aplicação para funcionar, além de um
           tutorial escrito. A documentação cobre desde a preparação da
9.6        aplicação até o modo de utilização da mesma.

           Sobre o valor do projeto em relação ao mercado: A aplicação
           utiliza-se de um modismo tecnológico e pode ser explorado pelo
           mercado. O Chat pode ser aprimorado e ganhar espaço no mundo
           da tecnologia. Sendo ousado na opinião, poderemos num futuro
           próximo ter esse tipo de chat como o padrão de comunicação do
           mercado em substituição ao MSN, Gtalk e outros.

           Sobre os critérios de qualidade: A aplicação parece estável,
           porém não foi testada por múltiplos usuários, sendo assim, não
           se pôde avaliar a robustez do aplicativo. Provavelmente não se
           utilizou de ferramentas de PMD ou Findbugs , mas teve
           preocupação com warnings no código.

           Julio Viegas - SPC Brasil - Globalcode - SP
           Faltou melhorar a mobilidade. Pode ser trabalhado para se tornar
8.9        um jogo semelhante ao second life. Projeto com alto potencial de
           vendas e alta qualidade.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 26
Profissionais

Nota                                  Avaliação
           Loiane Groner - IBM - ESJUG - SP
           UI bem finalizada, bom uso de Swing, aplicação bem intuitiva.
           Arquivo de instrução super claro e objetivo, bem detalhado,
           qualquer pessoa conseguiria fazer a instalação com
           um mínimo de conhecimento. Achei a idéia do vídeo-tutorial show
           de bola!

           Demonstrou bom uso de Sockets e da bilbioteca OpenGL.
9.5        Encontrado comparação de objetos com == em vez de .equals
           (má prática e não é
           correto: operador == entre objetos compara a referência e não o
           conteúdo/valores do objeto).

           Encontrado blocos catch vazios (muito feio!) – ao menos faça uso
           de impressão de stacktrace, ignorar uma exception é uma
           péssima prática!
           Pouco uso de interface de coleções. Exemplo: dê preferência para
           usar List nomeDoObj = new ArrayList().

           Ricardo Ferreira - Red Hat / JBoss - SP
           Considerando que o trabalho do aluno começou com 10.0 pontos,
           houveram certos aspectos do trabalho que me fizeram destacar
           alguns destes pontos, decrementando o valor da nota para 9.25.
           Os aspectos avaliados foram:

           Faltou a criação de um laucher mais apropriado para executar o
           programa cliente e o programa servidor. Apesar da correta
           execução do projeto dentro do ambiente Eclipse, isso torna o
           aplicativo voltado para conhecedores da plataforma Java, o que
           compromete o requisito não funcional de usabilidade do software.
           Para este ponto, foi retirado 0.5 ponto.
9.25
           Apesar de excelente aplicação do conceito de sockets Java para
           comunicação de processos via remoting, faltou alguma
           preocupação sobre como questõs de Threads e sockets usam
           recursos visuais do AWT. Nos testes efetuados, o cursor do mouse
           apresentou intermitências durante a execução, e alguns pequenos
           e rápidos congelamentos de tela ocorreram, talvez relacionados a
           como a biblioteca nativa se comporta com diversos threads
           acessando a API. Talvez o uso de uma lib visual mais "Thread-
           Safe" como o Swing poderia resolver o caso, mas acredito que a
           aplicação de AWT possa estar relacionada sobre como a
           dependência do framework lwjgl requer para funcionar. Para este
           ponto, foi retirado 0.25 ponto.



Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 27
Profissionais

Nota                                  Avaliação
           Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB
           Meus critérios de avaliação:
           a) Facilidade de instalação e execução

           Script para execução do projeto apenas em .bat... (podia ter
           usado um script ANT, para que funcione no Linux ou MAC OS).
           Estou usando um MAC OS. Não consegui rodar o projeto.
           Tentei rodar no Linux. Também sem sucesso.
           Ter uma IDE como requisito de software para rodar o projeto
           também não é interessante.

           b) Qualidade do manual e material de documentação

 8         Muito bom.

           c) Qualidade do código produzido (código e design do projeto)

              Evite usar System.out.println para imprimir as mensagens do
           sistema, dentro das classes do sistema.
              Parametrize a porta. Leia de um arquivo de configuração ou
           receba por parâmetro, na classe GameServer.java. Eu posso
           querer mudar esta porta e não quero alterar o código pra isso. ;-)
             Lógica do jogo muito misturada com elementos de interface.


           d) Inovação do projeto

           Muito bom.



                                Alunos

Nota                                  Avaliação
           Anderson Severo de Matos - aluno IFCE
           O programa roda muito leve e causa excelente impressão. Um
           ponto muito ruim é a necessidade de utilizar o Eclipse para poder
           testar a aplicação, porém consegui rodar seguindo os passos do
8.25       tutorial apenas importando o arquivo .ZIP e executando as duas
           classes indicadas. Não cheguei a ter problema com vídeo, não sei
           em máquinas mais simples. Código extremamente organizado,
           provavelmente houve um ótimo trabalho de orientação por parte
           do professor. Ausência de javadoc.




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 28
Alunos

Nota                                   Avaliação
           Carlos Albercio Maciel - aluno UNIFOR
           Trabalho com documentação simples, mas objetiva. O trabalho
 8         poderia ter ficado mais interessante se tivesse utilizado menos
           API já existentes que facilitam o trabalho, mas o mesmo ficaria
           árduo e não daria tempo de fazer devido ao espaço de tempo
           dado ao desenvolvido.

           Diego Aguiar Souza - aluno UFC/Sobral
           Um ótimo sistema, com uma boa interface. Faltou apenas a
9.5        documentação, muito embora o código esteja bem definido no
           quesito organização.

           Francisco José Lima - aluno FA7
           Não possuo uma placa de aceleração gráfica para poder realizar o
 1         teste. A execução do aplicativo deve ser independente do uso de
           IDE.

           Germano Machado Duarte - aluno UNIFOR
 8         Trabalho com documentação simples, mas objetiva. A grande
           quantidade de API usada fez com que o trabalho perdesse seu
           valor, tirando um pouco o mérito do aluno.

           Marcos Paulo - aluno IFCE
           Considerações Positivas: Grande trabalho, de dar inveja a
           qualquer desenvolvedor, o resultado final ficou muito bom. Muito
           bem documentado, e o video também foi uma ótima idéia para
           facilitar a execução do programa, rodou perfeitamente no
 8         Windows 7, um dos sistemas operacionais que testei.

           Considerações Negativas: Infelizmente não consegui fazê-lo
           executar no MacOS X Snow Leopard, nem no Ubuntu 9.10, não
           achei legal o fato do trabalho utilizar bibliotecas fora do Java, que
           são diferentes a cada SO.

           Rafael Sales - aluno UFC
 1
           Não entregou a avaliação.



                        2º - Francisco José de Lima
                        vice-campeão PUG 2009
                        Faculdade: FA7
                        Professor: Leonardo Gomes de Holanda
                        Média aritmética: 7,78
                        Link p/ o trabalho: http://tiny.cc/n07n2

Prêmio Universitário Felipe Gaúcho 2009                    CEJUG, Página 29
Profissionais

Nota                                      Avaliação
           Adriano Almeida - Caelum - SP
           Muito legal a ideia do projeto. Sistema simples, funcionando e fácil
           de usar. Excelente. Parabéns por ter usado uma ferramenta (Ant)
           para facilitar o build do projeto. Muito boa a separação entre
9.2        Model, View e Controller na aplicação. No sistema existe uma
           classe chamada Referencia que está com código vazio. É isso
           mesmo? O sistema ficou muito bom, mas como eu garanto que as
           regras de negócio estão funcionando corretamente? O ideal é que
           existissem alguns testes unitários pelo menos para as lógicas mais
           complicadas. Muito bom projeto. Parabéns.

           Alexandre Gomes - SEA Tecnologia - InfoQ - DF
           A documentação do projeto está simples e objetiva. O assunto é
           extremamente enriquecedor para a vida profissional do aluno e
           um bom uso da tecnologia foi feito. Entretanto, ressalto alguns
           pontos que podem ser melhorados em novas oportunidades.

           Ao longo do desenvolvimento de qualquer projeto, é comum o
           acúmulo de códigos mal feitos e/ou desnecessários criados no
 10        calor das emoções. Essas pendências, na linguagem comum, são
           conhecidas por débitos técnicos e devem ser rotineiramente
           eliminadas de seu código para o bem de sua clareza e facilidade de
           manutenção. No projeto submetido, encontra-se, por exemplo,
           uma classe Referencia que sequer possui conteúdo e, na classe
           Controle, o método getHuffman está disponível mas nunca foi
           usado. Ainda, num aparente preciosismo, ou over-engineering,
           temos a classe Tabela com a única responsabilidade de encapsular
           um atributo do tipo Map. ão seria excesso de capricho?

           Cláudio Rocha - IVIA - CE
           A aplicação disponibilizada pelo Francisco José é relativamente
9.8        pequena, porém seu código mostrou uma divisão de
           responsabilidades das classes em um nível adequado o que facilita
           sua leitura promovendo uma fácil manutenção.




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 30
Profissionais

Nota                                      Avaliação
           Fabiane Nardon - Zitrics - JavaTools Community - SP
           A documentação do projeto foi suficiente para instalar e executar o
           aplicativo. No código fonte, algumas classes não estão
           documentadas com JavaDoc.

           Os textos utilizados na aplicação estão hard coded e não
           internacionalizados. Seria mais adequado utilizar um resource
           bundle.

           Poderia haver um pouco mais de cuidado com a interface, pois em
           diferentes sistemas operacionais, os elementos da tela não ficam
           corretamente alinhados.

 7         Senti falta de uma funcionalidade simples na interface que
           permitiria testar melhor o software: uma funcionalidade que
           permitisse abrir um arquivo já comprimido e pedir que seja feita a
           descompressão. Da forma como a aplicação foi organizada, a única
           forma de descomprimir um arquivo é antes comprimi-lo na mesma
           tela.

           A classe CodigoHuffman está implementada como um Singleton,
           mas para que a implementação seja realmente correta, deveria
           haver uma diretiva synchronized no método getInstance e a
           implementação de um construtor privado para evitar que exista
           mais de uma instância da classe criada.



           Hebert Aquino - BRQ - CE
           Javadoc - Faltou o Javadoc e não comentou todas as classes
           deixando a documentação pobre.
 6         Aplicação - Criou uma classe Referencia sem necessidade.
           Deixo referencias do Svn dentro do código-fonte.
           Interface - Baixa usabilidade deveria ter criado um help colocou
           apenas um sobre o projeto.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 31
Profissionais

Nota                                      Avaliação
           João Victor - USIX - CE
           Justificativa para a nota: Fez um excelente trabalho, porém
           poderia explorar melhor a interface para deixá-la mais intuitiva.
           Conseguiu comprovar a compressão e a descompressão dos
           arquivos o que valida o trabalho em termos práticos.

           Possui uma documentação bem simples, porém funcional. A forma
           de execução do aplicativo é bem fácil e rodou “out of the box”. Não
           possui javadoc do aplicativo.

7.3        Sobre o valor do projeto em relação ao mercado: O aplicativo
           implementa um algoritmo conhecido de compressão de dados.
           Sendo assim, possui pouco apelo no mercado. Caso o aplicativo
           implementasse um algoritmo inovador teria um enorme apelo,
           principalmente para grandes infra-estruturas onda o volume de
           dados armazenados são enormes.

           Sobre os critérios de qualidade: A aplicação parece ter sido escrita
           sem utilização de nenhuma IDE, utilizou-se apenas de um ant
           build para compilação. Diante disso, possui vários problemas de
           imports dentre outros e com certeza não passou PMD ou Findbugs.

           Julio Viegas - SPC Brasil - Globalcode - SP
           Já existem uma série de códigos disponíveis para tal, tornando a
5.2        exploração comercial inviável. Porém possui uma boa interface, na
           minha opinião. Possui um potencial de vendas baixo e uma
           qualidade média.

           Loiane Groner - IBM - ESJUG - SP
           Aplicação bem intuitiva, bom uso de Swing, arquivo de instrução
           claro e objetivo. Projeto é espelho do que se propõe a fazer. Fez
           uso correto do padrão de projeto utilizado. Uso correto de
           interfaces de coleções.

8.5        Projeto não possui documentação e não possui comentários ao
           longo do código. Achei alguns blocos de código repetidos, poderia
           ter criado métodos para reuso de código e facilitar uma
           manutenção futura (caso fosse necessário). Exemplo: métodos
           fromByteArray da classe Util (poderia ter feito cast do object e
           chamado o outro método). Quase todos os atributos das classes
           são public ou default. Não fez uso de encapsulamento.




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 32
Profissionais

Nota                                      Avaliação
           Ricardo Ferreira - Red Hat / JBoss - SP
           Considerando que o trabalho do aluno começou com 10.0 pontos,
           houveram certos aspectos do trabalho que me fizeram destacar
           alguns destes pontos, decrementando o valor da nota para 9.0. Os
           aspectos avaliados foram:

           O código do programa apresenta pouco controle de instâncias de
           objetos quanto as suas referências. Erros do tipo
           NullPointerException são considerados básicos demais para uma
           aplicação que está sendo distribuida e deverá ser usado em larga
           escala. No consegui avaliar se o programa dispara algum erro
 9         desta natureza, mas pelo código fonte dá pra perceber que
           'potencialmente' isso ocorrerá, o que me estimula a retirar 0.75
           pontos do resultado final. Quando um projeto é mantido apenas
           por um programador, falhas como essa tendem a ser contornadas
           ou inibidas. Mas em um projeto onde vários programadores atuam
           no código fonte, este tipo de controle de código deve ser
           obrigatório.

           Documentação apresenta poucas instruções sobre questões de
           ambiente do programa. Não fala por exemplo que para executar o
           mesmo é necessário usar uma JVM versão 6.0 ou superior. Para
           este ponto, foi descontado 0.25 ponto.




Prêmio Universitário Felipe Gaúcho 2009               CEJUG, Página 33
Profissionais

Nota                                      Avaliação
           Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB
           Meus critérios de avaliação:
           a) Facilidade de instalação e execução

           Excelente. 1 click no codificacaohuffman.jar e voilá!

           b) Qualidade do manual e material de documentação

           Muito bom

           c) Qualidade do código produzido (código e design do projeto)

           Classe "Referencia.java" vazia.
           A classe "CodigoHuffman" era para ser um Singleton?
                  private static CodigoHuffman instance = null;

                  public static CodigoHuffman getInstance(){
                          if(instance == null)
                                  instance = new CodigoHuffman();
                          return instance;
                  }
 9         Tá faltando o construtor privado.

           Os métodos "main" e "getHuffman()" da classe "Controle" não
           estão sendo usados.

           Acertou na trave na implementação do controlador do MVC.

            A classe "Controle" deveria receber diretamente o evento do
           ActionListener. Ela deveria implementar "ActionListener" e ser
           adicionada como Listener do botão. Assim ela iria traduzir
           diretamente o evento da interface no evento do "modelo".
            É uma sugestão para você melhorar sua implementação do MVC.

           d) Inovação do projeto

           Baixa

           Em resumo, o projeto está bem documentado, não é um ótimo
           exercício de implementação do algoritmo de compressão, foi bem
           implementado. Só não é inovador por se tratar de um projeto de
           sala de aula, um exercício sobre a implementação do algoritmo. De
           fato, inovação não é objetivo da equipe.




Prêmio Universitário Felipe Gaúcho 2009                      CEJUG, Página 34
Alunos

Nota                                      Avaliação
           Anderson Severo - aluno IFCE
           O software apresenta de forma direta a aplicação do algoritmo de
7.3        Huffman e explicita que não deve ser utilizado com propósito
           comercial ou mais sério. O desenvolvedor não forneceu javadoc.
           Exemplificação de conteúdo acadêmico incluindo menção do autor,
           no documento tutorial, de fontes sobre o assunto na Internet.

           Carlos Albercio - aluno UNIFOR
           O trabalho poderia ter ficado mais interessante se exibi-se algum
           percentual de andamento da compressão, pois ao selecionar um
 7         arquivo de 28mb o mesmo ficou “travado” até que a compressão
           fosse concluída, sem contar que o mesmo não fez a compressão,
           não sei se deu algum erro durante o processo, pois o mesmo não
           apresentou nenhum resultado, assim imagino que a memória deve
           ter “estourado” ou algo do tipo.

           Daniel Valente - aluno UNIFOR
           Trabalho está bem legal e seu código também, porém a parte visual
7.5        poderia estar um pouco mais didática, como outros trabalhos do
           PUJ (Ex: o de grafos, árvores e SO).

           Diego Aguiar - aluno UFC/Sobral
 8         Funciona conforme o esperado, contudo, comparado aos demais
           programas com uma boa GUI, este ficou devendo, além de possuir
           um botão sem nenhuma funcionalidade. Faltou a documentação.

           Germano Duarte - aluno UNIFOR
 6         Ao selecionar um arquivo maior do que 10mb o sistema fica em
           espera até que a compressão for concluída. Seria interessante
           mostrar uma tela de status da compressão.

           Marcos Paulo - aluno IFCE
           Considerações Positivas: Bom programa didático, pode ser utilizado
           para demonstração da codificação de Huffman muito bem. Bom
           tutorial.

 6         Considerações Negativas: Tem classes vazias no src, péssima,
           péssima, péssima utilização do swing, a interface ficou
           organizadinha mas o código está horrendo, não curto a filosofia
           drag and drop e acredito que possa ter sido utilizado nesse
           programa, pra mim, usar o swing na mão pode ser mais produtivo
           que o drag and drop se você utilizar bem. Levou nota porque em
           comparação.

           Rafael Sales - aluno UFC
 1
           Não entregou a avaliação.




Prêmio Universitário Felipe Gaúcho 2009                CEJUG, Página 35
3º - Carlos Albercio
                       Faculdade: UNIFOR
                       Professor: Rafael Garcia Barbosa
                       Média aritmética: 7,26
                       Link p/ o trabalho: http://tiny.cc/0uhak

                             Profissionais

Nota                                      Avaliação
           Adriano Almeida - Caelum - SP
           Manual sucinto e direto. Código de algumas classes um pouco
           extensos e de leitura complicada. Algumas refatorações, como
 7         extrações de métodos facilitariam a leitura do código. É preciso
           também tomar cuidado com os famosos números mágicos no meio
           do código. Boa usabilidade, mas visualmente poderia ser melhor
           trabalhado. Sistema simples e objetivo. Parabéns.

           Alexandre Gomes - SEA Tecnologia - InfoQ - DF
           Desde já, é importante que nossos futuros profissionais atentem-se
           aos detalhes estáticos de seus trabalhos. Apesar de completa e
           clara, a documentação poderia ter sido mais bem acabada.
           Infelizmente, nossa cultura ainda preconiza a forma sobre o
           conteúdo. Portanto, é importante que, ao se entregar qualquer
           produto final a clientes ou parceiros, atente-se aos ajustes finos
           que podem fazer a diferença para a primeira impressão (aquela que
           fica).
 8
           O projeto está funcional e desenvolve-se sobre a curiosa teoria dos
           grafos cuja complexidade no necessariamente precisa ser refletiva
           no código. No geral, observa-se métodos de longa extensão, com
           profundos níveis de aninhamento e carência de documentação não
           javadoc que dificultam sua compreensão imediata. Ademais,
           existem algumas dependências entre a lógica (Grafo) e a GUI
           (JFramePrincipal) que não é bem vista pela comunidade
           desenvolvedora.

           Cláudio Rocha - IVIA - CE
           Achei que a código poderia ter sido quebrado em um maior número
8.4        de classes de forma a facilitar a leitura e manutenção. De qualquer
           forma a proposta era muito boa e o Labirinto Dinâmico do Carlos
           Albércio     estava muito fácil de instalar e possuía boa
           documentação.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 36
Profissionais

Nota                                      Avaliação
           Fabiane Nardon - Zilics - JavaTools Community - SP
           A documentação estava concisa, mas suficiente para entender o
           sistema e utilizá-lo. A execução do sistema ocorreu sem problemas.

           A interface é simples, mas bem elaborada.

 8         Nem todos os métodos possuem JavaDoc adequados, o que
           dificulta um pouco a compreensão do código.

           Algumas partes do código poderiam ter sido fatoradas em métodos
           para que o código ficasse mais organizado e sua manutenção mais
           fácil. Exemplo: no método Grafo.moverBoneco, o mesmo pedaço de
           código é repetido várias vezes, com pouca variação.

           Hebert Aquino - BRQ - CE
           Javadoc - Javadoc não foi gerado e não respeitou alguns code
8.5        conventions. Algumas classes não foram comentadas.
           Instruções foram simples deixando falhas. Bom Trabalho mas faltou
           alguns pequenos detalhes.

           João Victor - USIX - CE
           Justificativa para a nota: A aplicação parece bem interessante e
           fácil de usar. Não tem um visual muito agradável, mas para o jogo
           que se propõe ser atende ao nível mínimo de aparência.          Vale
           salientar que a aplicação utilizou-se de swing com leiaute estático.
           Foi fácil colocar a aplicação para funcionar. Executou de forma “out
           of the box”, sem muita complicação.

           Possui dois manuais bem funcionais, porém ambos muito pobres
           em qualidade visual o que deixa transparecer que não houve
           cuidado ao criar os manuais. A aplicação não possui Javadoc para
7.3        deixa o código legível.

           Sobre o valor do projeto em relação ao mercado: É uma aplicação
           que pode ser comercializada como jogo para crianças. Bem fácil de
           ser entendida. Se refinada poderia ser mais um joginho no
           mercado. Porém, vale salientar que já existem joginhos dessa
           natureza.

           Sobre os critérios de qualidade: A aplicação utilizou-se de recursos
           de programação não muito recomendáveis, como java.util.Vector e
           muitos resources. Provavelmente não se utilizou de ferramentas de
           PMD ou Findbugs, porém nos teste a aplicação não travou.


Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 37
Profissionais

Nota                                      Avaliação
           Julio Viegas - SPC Brasil - Globalcode - SP
           Faltaram alguns ajustes de interface. Pode ser comercializado como
7.5        biblioteca em algum engine de jogo. Possui um potencial de vendas
           médio e alta qualidade.

           Loiane Groner - IBM - ESJUG - SP
           Aplicação bem intuitiva, bom uso de Swing, arquivo de instrução
           claro e objetivo. Deixou o aprendizado sobre Grafos mais atrativo.
           Fez uso de documentação, mas poderia ter colocado alguns
           comentários dentro de métodos para facilitar entendimento de
           bloco de código.
 8
           Achei alguns blocos de código repetidos, poderia ter criado métodos
           para reuso de código e facilitar uma manutenção futura (caso fosse
           necessário). O FindBugs achou algumas linhas de código com Bad
           Practice, mas nada muito sério. O mais relevante que achei foi
           concatenação de Strings em loop com operador + - dê preferência
           a StringBuffer (só uma dica para melhorar a performance).




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 38
Profissionais

Nota                                      Avaliação
           Ricardo Ferreira - Red Hat / JBoss - SP
           Considerando que o trabalho do aluno começou com 10.0 pontos,
           houveram certos aspectos do trabalho que me fizeram destacar
           alguns destes pontos, decrementando o valor da nota para 7.75.
           Os aspectos avaliados foram:

             1) Documentação não cobre detalhes de execução e ambiente do
           programa. Um ponto por exemplo era explicitar que o programa
           necessita de uma JVM versão 6.0 ou superior. Ao tentar executar o
           programa de acordo com as instruções (Usando um JVM 5.0), tive
           um problema de classVersion logo de cara. Por conhecer Java,
           solucionei o problema, mas considerando uma pessoa que não é
           técnica, ela não consequiria executar o programa corretamente.
           Para este ponto, descontei 0.50 ponto.

              2) O código do programa não oferece uma boa separação de
           camadas entre os componentes da camada de apresentação e os
           componentes do modelo. Como foi adotado um modelo baseado em
7.75
           MVC, uma separação das dependências por meio de factories,
           interfaces e/ou Dependency Injection se faria necessário. Existem
           classes do modelo que possuem imports diretos para classes da
           camada de apresentação (Ex: import javax.swing.*) o que torna o
           código mais acoplado em dificil de manter. Para este ponto,
           descontei 1.0 ponto.

             3) O código do programa apresenta pouco controle de instâncias
           de objetos quanto as suas referências. Erros do tipo
           NullPointerException são considerados básicos demais parauma
           aplicação que está sendo distribuida e deverá ser usado em larga
           escala. Não consegui avaliar se o programa dispara algum erro
           desta natureza, mas pelo código fonte dá pra perceber que
           'potencialmente' isso ocorrerá, o que me estimula a retirar 0.75
           pontos do resultado final. Quando um projeto é mantido apenas por
           um programador, falhas como essa tendem a ser contornadas ou
           inibidas. Mas em um projeto onde vários programadores atuam no
           código fonte, este tipo de controle de código deve ser obrigatório.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 39
Profissionais

Nota                                      Avaliação
           Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB
           Meus critérios de avaliação:
           a) Facilidade de instalação e execução
           Excelente. Basta executar o JAR. 1 click.

           b) Qualidade do manual e material de documentação
           Não há documentação

           c) Qualidade do código produzido (código e design do projeto)
 4         Ruim.

           JFramePrincipal é uma "GOD Class". O código que constrói e
           manipula a interface está todo misturado com o código da estrutura
           de dados.

           d) Inovação do projeto

           Baixa.




                                 Alunos

Nota                                      Avaliação
            Anderson Severo - aluno IFCE
            O software assim como o arquivo com as instruções são bem
 8          simples, porém, claros e objetivos. Consegui executar sem
            problemas e o gerador de labirintos funcionou corretamente no que
            se propôs. O código me pareceu organizado e minimamente
            comentado. Ausência de javadoc.

            Daniel Valente - aluno UNIFOR
            Trabalho bem divertido de se usar e bem explicativo visualmente
            em relação ao objetivo do trabalho. Porém na parte do codigo acho
7.5         que poderia ter tido um menor acoplamento da estrutura de dados
            Grafo em relação a interface gráfica, podendo deixando ela
            independente da interface e possibilitanto o uso da mesma para
            outros objetivos.

            Diego Aguiar - aluno UFC/Sobral
 9          O programa executou conforme o esperado, e possui um GUI muito
            amigável. Contudo, o autor ficou devendo na parte de documentação.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 40
Alunos

Nota                                      Avaliação
            Francisco José de Lima - aluno FA7
            Bom manual de instruções, pois é objetivo e claro. O aplicativo é
            de fácil inicialização.
            Boa interface gráfica, porém precisa de alguns ajustes para poder
            rodar em ambiente GNU/Linux. Interface intuitiva o que facita o
            entendimento.

 7          Métodos comentados, porém poderia adicionar mais informações
            sobre o comportamento. Alguns métodos precisam de um
            "refactoring", pois estão muito grandes ou agregam
            funcionalidades que poderiam ser desacopladas. O programa
            atende ao que ele se propõe e não ocorre falhas. Boa escolha do
            tema, pois o aplicativo exige boa capacidade de raciocínio e
            criatividade.

            Germano Duarte - aluno UNIFOR
 8          Trabalho bem estruturado com boa padronização e documentação
            do código. Interface simples e de fácil entendimento.

            Marcos Paulo - aluno IFCE

            Considerações Positivas: O Programa realmente faz o que propõe,
            bastante didático, bastante intuitivo, consegui fazê-lo funcionar
            sem precisar ler o manual. Javadoc bom se comparado ao dos
            outros ou ao meu mesmo.

            Considerações Negativas:      Praticamente toda a lógica ficou em
            apenas uma classe com várias linhas, não achei que isso ficou
            legal. Além disso, a interface pareceu que ele fez sim a mão o que
            é bem legal, mas o código ficou horrível, colocou toda a interface
 6          em apenas uma classe, podia ter extendido o FramePrincipal de
            Jframe e ter feito um sigleton utilizado ele na classe Grafo e
            separado alguns componentes que fossem ficar mais complexo em
            outras classes ou em até metódos, ao inves de sair inicializando-os
            e setando suas propriedades de uma formada jogada no código,
            também poderia ter feito uma classe interna para poder usar o
            ActionListener ao inves de inicializalo e implementar o método
            action performed como parametro do metodo addActionListener.
            Também podia ter feito uma classe de carregamento das imagens.
            Acredito que teria sido uma melhor prática e não precisava ser um
            mestre do swing para isso, são conceitos de OO que senti muita
            falta no software.

            Rafael Sales - aluno UFC
            Não entregou a avaliação.



Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 41
4º - Marcos Paulo Souza Damasceno
                       Faculdade: IFCE
                       Professor: Fernando Parente
                       Média aritmética: 7,06
                       Link p/ o trabalho: http://tiny.cc/auxz3

                             Profissionais

Nota                                      Avaliação
           Adriano Almeida - Caelum - SP
           Bem direto a execução do programa e a ideia de mostrar as
           Threads em execução com um exemplo bastante didático foi
           excelente. No entanto, o projeto pecou na usabilidade, por exemplo,
           após finalizar a definição da quantidade de usuários e do tempo e
           clicando em "Definir" a janela não é fechada. Com relação ao
           código, a API Swing é bastante poluída e nem sempre herdar dos
           componentes Swing são a melhor saída para conseguir um código
6.7        legível. Muitas vezes utilizar composição no lugar pode tornar o
           código mais simples.

           As variáves declaradas no programa são bem claras e o código está
           bem organizado. Outro ponto crítico é o tratamento das exceções. É
           imprescindível indicar ao usuário que algo está dando errado na sua
           aplicação. No entanto, com o tratamento através do
           System.out.println o usuário não sabe que a aplicação está com
           problemas, a não ser que ele tenha conhecimento suficiente para
           verificar o log da aplicação.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 42
Profissionais

Nota                                      Avaliação
           Alexandre Gomes - SEA Tecnologia - InfoQ - DF
           A documentação está recheada de argumentos contra possíveis
           decepções da avaliação. A submissão do projeto nas vésperas do
           prazo, a pouca idade do estudante à época do desenvolvimento, a
           ausência de IDE e outros poréns não devem ser motivos para se
           tecer justificativas precipitadas do trabalho proposto. Nenhum
           desses argumentos aliviam o rigor da avaliação. Desculpar-se antes
           de se apresentar é uma tremenda gafe que deve ser evitada em
           todas as situações de nossas vidas. Um palestrante que começa
           uma palestra dizendo estar nervoso e que não conhece a fundo o
           assunto tem mil vezes mais chances de fracasso do que se tivesse
           administrado internamente suas fraquezas e tentado se superar
           silenciosamente. Mesmo no mercado de trabalho, por exemplo, é
           mais transparente e honroso assumir o não alcance dos objetivos
           iniciais e estabelecer novos prazos para sua realização do que
           tentar disfarçar uma produção aquém de seu potencial. Portanto,
           estudantes, desde já, ergam a cabeça, assumam o ônus de suas
           decisões e sigam adiante.
 6
           O funcionamento geral do sistema é adequado ao tema proposto,
           mas é importante observar regras básicas do desenvolvimento Java.
           Está fora do bom costume, por exemplo, a criação de classes com
           nomes iniciando por letras minúsculas (e.g.
           InterfacePrincipal.telaDefinicoes) e variáveis com nomes iniciando
           em letras maiúsculas (TelaInicia.Comeco). Também faz parte das
           boas práticas de projeto o desacoplamento máximo entre as
           camadas arquiteturais. No sistema entregue, entretanto, a classe
           Crianca, que representa a lógica do jogo, possui profundos laços de
           dependência com os painéis da camada de apresentação.

           A documentação parece ter sido concebida às pressas, pecando no
           português (e.g. durmindo) e com excesso de coloquialismos (e.g.
           'Pronto, temos uma thread para cada criancÃßa e elas estarão ali
           brincando e tudo mais'). Durante a execução de uma amostragem
           com 5 crianças, 3 com bolas e 1 bola no cesto, os sistema parou
           com StackOverflowError.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 43
Profissionais

Nota                                      Avaliação
           Cláudio Rocha - IVIA - CE
           O Marcos apresentou uma aplicação que aborda a utilização e
           controle de Threads. Sua app se mostrou fácil de instalar, com uma
10         boa granularidade na definição das classes exibindo uma boa
           divisão de responsabilidades. A forma/disposição na tela com que
           abordou o assunto também facilitou bastante o entendimento dos
           conceitos propostos.




Prêmio Universitário Felipe Gaúcho 2009                CEJUG, Página 44
Profissionais

Nota                                      Avaliação
           Fabiane Nardon - Zilics - JavaTools Community - SP
           Embora o autor tenha se preocupado em fazer uma documentação
           completa, sugiro um pouco mais de atenção ao texto, tanto no que
           se refere a erros de português quanto ao estilo da documentação.
           Sendo uma documentação de um software ou produto, deveria ser
           um pouco mais formal.

           Aparentemente a aplicação requer Java 6 para executar
           corretamente (apresentou erros em Java 1.5), mas esta informação
           não está presente da documentação. Em algumas situações, a
           aplicação apresentou java.lan g.NullPointerException durante a
           execução. Em termos de usabilidade, o fato de as definições serem
           zeradas a cada simulação é bastante inconveniente, pois obriga o
           usuário a refazer as definições a cada nova simulação.
           Nas minhas simulações, nem sempre o programa se comportou
           como descrito na documentação. Por exemplo, simulando 5
           crianças, 2 crianças com bolas e 1 bola no cesto, com tempos de 5
           segundos para brincar e 5 para descansar para todos, as crianças
 6         nunca descansam. Parece que a aplicação fica paralizada em um
           certo ponto. Os textos utilizados na aplicação estão hard coded e
           não internacionalizados, o que não é adequado. Seria mais
           adequado que estes textos estivessem em bundles. O código está
           muito pouco documentado. Seria importante incluir javadocs nas
           classes.

           Nem todas as variáveis obedecem os padrões de nomenclatura.
           Existem variáveis com primeira letra maiúscula, por exemplo. Da
           mesma forma, nem todos os nomes de métodos obedecem estes
           padrões. O tratamento de exceções também não é adequado.
           Existem exceções que são escondidas por um try...catch sem log.
           Exemplo: veja método "Brincar". Como são usadas diversas
           variáveis estáticas, é necessário avaliar onde colocar a diretiva
           synchronized para evitar conflitos.


           Um ponto a destacar é que a lógica está separada da camada de
           apresentação, o que é um bom princípio.




Prêmio Universitário Felipe Gaúcho 2009                CEJUG, Página 45
Profissionais

Nota                                      Avaliação
           Hebert Aquino - BRQ - CE
           Javadoc - Documentação Pobre, não informa o que faz cada classe e
           método, baixa legibilidade do código fonte não respeita alguns java
           code convetions.
 7
           Interface pouco intuitiva o botão começar veio antes das definições.
           Na criação da criança já deveria ser informada o intervalo de
           tempo.

           João Victor - USIX - CE
           Justificativa para a nota: O sistema apresentado é relativamente
           usual. O layout não deixa claro alguns detalhes do funcionamento
           do aplicativo. A aplicação fez o que se propõe a fazer, porém o
           funcionamento é bem simplista.

           A documentação é bem pobre e deixa muito a desejar. O javadoc só
           possui casca, não possui comentários. Aparentemente gerou o
           javadoc sem a preocupação de fazê-lo entendível.
6.5
           Sobre o valor do projeto em relação ao mercado: A aplicação tem
           pouquíssimo apelo no mercado, pelo fato de ser um simulador e
           possuir algoritmos clássicos de produtor consumidor.

           Sobre os critérios de qualidade: A aplicação não parou de funcionar
           em nenhum teste e suportou vários cenários. Não se utilizou de
           PMD e FindBugs além de não se preocupar em documentar as
           classes métodos e etc.

           Julio Viegas - SPC Brasil - Globalcode - SP
           Única aplicação comercial se for usado como suporte ao
6.5        aprendizado. Qualidade gráfica boa. O programa funcionou bem.
           Baixo potencial de vendas e qualidade média.




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 46
Profissionais

Nota                                      Avaliação
           Loiane Groner - IBM - ESJUG - SP
           Aplicação bem intuitiva, UI com alertas e validação, bom uso de
           Swing, arquivo de instrução claro e objetivo. Deixou o aprendizado
           de Threads bem divertido. Projeto não possui documentação e não
           possui comentários ao longo do código.

           Encontrado comparação de Strings com == em vez de .equals (má
           prática e não é correto: operador == entre objetos compara a
           referência e não o conteúdo/valores do objeto). Encontrado
           variáveis e atributos iniciadas com letra maiúscula (não é erro, mas
8.5        não está dentro do padrão de convenção do java).Encontrado
           alguns atributos com modificador default.

           Poderia ter declarado como private para o uso de encapsulamento,
           como utilizado em atributos de outras classes. Encontrado
           comandos vazios (apenas ; no código) - ocorreu muito após bloco
           catch. Chamada do método getFrame da classe TelaInicial - seria
           interessante fazer o uso do pattern singleton adequadamente nesse
           caso, já que o atributo Comeco é private static. Encontrado blocos
           catch vazios (muito feio!) – ao menos faça uso de impressão de
           stack trace, ignorar uma exception é uma péssima prática!

           Ricardo Ferreira - Red Hat / JBoss - SP
           Considerando que o trabalho do aluno começou com 10.0 pontos,
           houveram certos aspectos do trabalho que me fizeram destacar
           alguns destes pontos, decrementando o valor da nota para 8.25. Os
           aspectos avaliados foram:

           1) O código do programa apresenta pouco controle de instâncias de
           objetos quanto as suas referências. Erros do tipo
           NullPointerException são considerados básicos demais para uma
           aplicação que está sendo distribuida e deverá ser usado em larga
           escala. Não consegui avaliar se o programa dispara algum erro
8.25
           desta natureza, mas pelo código fonte dá pra perceber que
           'potencialmente' isso ocorrerá, o que me estimula a retirar 0.75
           pontos do resultado final. Quando um projeto é mantido apenas
           por um programador, falhas como essa tendem a ser contornadas
           ou inibidas. Mas em um projeto onde vários programadores atuam
           no código fonte, este tipo de controle de código deve ser
           obrigatório.

           2) Código com pouca organização de camadas e excesso de
           dependências entre os componentes. Para este quesito, foi
           descontado 1.0 ponto.




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 47
Profissionais

Nota                                      Avaliação
           Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB
           Meus critérios de avaliação:
           a) Facilidade de instalação e execução

           Excelente. 1 click no jar.

           b) Qualidade do manual e material de documentação

           Ruim

           c) Qualidade do código produzido (código e design do projeto)

           Algumas variáveis com letra maiúscula, classes com letra
           minúscula.
 8
           A classe "teste" em "PBrincadeiraDeCrianca.java" não tem um bom
           nome.

           As variáveis com uma letra dificultam a leitura do código, como "c",
           "b", "a".

           A classe "Crianca" acessa a classe "PLogCesto", criando
           acoplamento entre lógica e elemento de interface.
           Apesar destes pequenos detalhes, o código está bem estruturado,
           no geral.


           d) Inovação do projeto

           Bom



                                  Alunos

Nota                                      Avaliação
           Anderson Severo - aluno IFCE
           O programa tinha grande potencial de apresentar uma interface gráfica mais
           rica e/ou intuitiva. O código está imaturo em relação aos outros trabalhos
7.5        apresentados (nomes de métodos, atributos, classes internas), mas a
           simulação corre sem problemas. Com tempo e um pouco de atenção é
           possível observar o comportamento das imagens(segundo definido) e
           entendê-las como Threads. Javadoc apresentado.




Prêmio Universitário Felipe Gaúcho 2009                      CEJUG, Página 48
Alunos

Nota                                      Avaliação
           Carlos Albercio - aluno UNIFOR
           A tela ficou meio deformada, não dando pra ver todos os
           componentes do sistema e a parte do log poderia ter uma auto-
           rolagem” para que o usuário não tivesse que ficar baixando o log
           manualmente para poder entender o que esta acontecendo no
           sistema.

           Algumas mensagens de erro poderia explicar melhor o que
6.5        aconteceu para que ela fosse exibida, como por exemplo quando
           aperta o botão começar sem ter criado alguma criança, diz algo
           como “que as crianças podem ter sido criadas, mas os tempo não
           terem sido definidos e que tem que certificar-se de criar as crianças
           e definir seus tempos”, invés disso poderia simplesmente informar
           que nenhuma criança foi criada.

           Alguns padrões de criação de variáveis e métodos não foram
           seguidos, alguns começam com letra maiúscula e o código está
           pouco documentado.

           Daniel Valente - aluno UNIFOR
           Poderia ter tido um pouco mais de trabalho na estruturação do
 8         código, porém já foi justificado no próprio documento auxiliar um
           dos motivos. Mas o objetivo final foi bem realizado com uma
           representação visual de uma forma bem intuitiva e didática.

           Diego Aguiar - aluno UFC/Sobral
           Funcionou conforme o esperado, exceto pelo fato de as threads
 7         entrarem em deadlock em alguns testes e o programa não fazer um
           tratamento adequado, ou exibir alguma mensagem. Não possui
           documentação, embora possua um bom tutorial.

           Francisco José - aluno FA7
           Pouca documentação. O aplicativo é de fácil inicialização.
           Boa interface gráfica, porém apresentando uma falha na
           renderização do cesto. Interface intuitiva o que facita o
 4         entendimento.

           Métodos sem comentáros. O programa não esta funcionando como
           informado no manual de instruções, após as bolas serem guardadas
           no cesto a criança que ficou esperando não pegou a bola no cesto.

           Germano Duarte - aluno UNIFOR
           Dificuldade para ver todos os componentes do sistema e a parte do
5.5        log poderia ter uma auto- rolagem”. Mensagens de erro com textos
           de difícil entendimento. Alguns padrões de criação de variáveis e
           métodos não foram seguidos, alguns começam com letra maiúscula
           e o código está pouco documentado.

Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 49
Alunos

Nota                                      Avaliação
           Rafael Sales - aluno UFC
 1
           Não entregou a avaliação.




                       5º - Germano Machado Duarte
                       Faculdade: UNIFOR
                       Professor: Raimundo Tales Benigno
                       Média aritmética: 6,8
                       Link p/ o trabalho: http://tiny.cc/n1g7f




                             Profissionais

Nota                                      Avaliação
           Adriano Almeida - Caelum - SP
           Muito bom tema. O aluno fez bom uso do JSF e de CSS. Código
           enxuto e simples de ler. Ajustes como conditional comments para
           usuários de internet explorer são sempre bem vindos (vale estudar
           graceful degradation).
8.5
           O Lucene hoje em dia é uma das ferramentas mais utilizadas nas
           empreas para fazer buscas textuais. Muitos (eu inclusive) reclamam
           da complexidade de sua API e configurações que devem ser feitas
           quando se precisa de um ajuste mais fino. Nesse caso, existem
           ferramentas que te auxiliam, como o Hibernate Search ou o Solr,
           que eu recomendo ao aluno estudar.




Prêmio Universitário Felipe Gaúcho 2009                CEJUG, Página 50
Profissionais

Nota                                          Avaliação
           Alexandre Gomes - SEA Tecnologia - InfoQ - DF
           Trata-se de um dos conteúdos submetidos mais avançados e cujo
           domínio teórico e prático tem grandes potenciais de distinção
           profissional. A documentação está bem escrita, mas carece de
           instruções sobre o uso da interface Web (como indexar, como
           pesquisar).

           No aplicativo, nenhuma URL pode ser indexada, por ausência da
           biblioteca ICU [1]. Ao se realizar o download manual da citada lib,
           outra dependência insatisfeita é revelada [2]. Se nenhuma URL é
           informada, uma StringIndexOutOfBoundsException é lançada.

           Infelizmente, com todos esses problemas, tornou-se inviável a
 1
           avaliação de tão promissor trabalho.

           [1] javax.servlet.ServletException: #{servidorBean.indexarPagina}:
           java.lang.NoClassDefFoundError: com/ibm/icu/text/
           StringPrepParseException
                  javax.faces.webapp.FacesServlet.service(FacesServlet.java:
           277)

           [2] javax.servlet.ServletException: #{servidorBean.indexarPagina}:
           java.lang.NoClassDefFoundError: Could not initialize class
           com.hp.hpl.jena.iri.IRIFactory
                        j ava x . f a c e s . w e b a p p. Fa c e s S e r v l e t . s e r v i c e
           (FacesServlet.java:277)

           Cláudio Rocha - IVIA - CE
           Instalei a app no Tomcat 6.0.26 (que acabara de baixar da Apache) conforme
           as instruções e acessei-a no endereço indicado. Quando fui interagir com a
           funcionalidade de indexação o browser acusou uma
7.7        java.lang.NoClassDefFoundError: com/ibm/icu/text/
           StringPrepParseException. Em outro momento apareceu um outro stacktrace
           na página acusando o erro java.lang.NoClassDefFoundError: Could
           not initialize class com.hp.hpl.jena.iri.IRIFactory.




Prêmio Universitário Felipe Gaúcho 2009                              CEJUG, Página 51
Profissionais

Nota                                      Avaliação
           Fabiane Nardon - Zilics - JavaTools Community - SP
           A execução do programa falhou por falta da biblioteca
           icu4j-3.4.4.jar e só foi possível testar a aplicação depois de depurar
           o código e descobrir o que estava faltando. Cuidado ao distribuir
           suas aplicações! Um usuário normal provavelmente teria desistido
           de testar sua aplicação no primeiro erro. Os testes foram realizados
           em um Tomcat 6, sem nenhuma configuração adicional, conforme
           instruções de instalação.

           Cuidado na utilização de marcas. Você provavelmente não poderia
           usar o nome "Google" na sua aplicação (a menos que você tenha
           tido autorização do Google para isso).

           As classes precisam ser melhor documentadas: falta Javadoc em
           muitas delas.

           Tome cuidado com alguns elementos que podem prejudicar muito a
8.5        performance da sua aplicação. A aplicação criada pode manipular
           uma grande quantidade de dados e performance neste caso é muito
           importante. Um exemplo: tente não criar objetos que poderiam ser
           reaproveitados dentro de laços. No método
           OntologyClass.createIndex, um DecimalFormat é criado com a
           mesma definição a cada iteração do laço. Tente fazer este tipo de
           criação de objetos fora do laço e você terá ganhos significativos de
           performance.

           Na aplicação, o botão Listar Primeiros está sem ação.

           A aplicação faz uma boa separação entre camadas, implementando
           o modelo MVC.

           A escolha do tema do trabalho é interessante e apresenta um bom
           nível de complexidade, trabalhando com diversas tecnologias
           diferentes e algumas delas não usuais.

           Hebert Aquino - BRQ - CE
           Javadoc - Faltou o Javadoc e não comentou todas as classes
 8         deixando a documentação pobre. Apenas criou um documento do
           que estava sendo feito.




Prêmio Universitário Felipe Gaúcho 2009                   CEJUG, Página 52
Profissionais

Nota                                      Avaliação
           João Victor - USIX - CE
           Justificativa para a nota: Infelizmente não rodou, sendo assim, não
           consegui comprovar a utilização e a veracidade da aplicação. Apesar
           de não conseguir executar a aplicação a mesma parece esta bem
           escrita. O WAR estava faltando uma dependência que foi necessária
           baixar: http://dev.eclipse.org/viewsvn/index.cgi/org.eclipse.sdk-
           feature/plugins/com.ibm.icu/

           Possui pouca documentação, mas parece esta bem estruturada.
           Possui descrição do Javadoc incompleta.
 6
           Sobre o valor do projeto em relação ao mercado: É uma aplicação
           de grande valor de mercado, pois a medida que a tecnologia se
           desenvolve, cada vez mais arquivos são compartilhados no mundo e
           a dificuldade e encontrá-los passa a ser crítica já que o tempo esta
           cada vez mais concorrido.

           Sobre os critérios de qualidade: A aplicação pecou por não funcionar
           e por faltar biblioteca no war. Possui javadoc incompleto, mas
           ap arent ement e o cód i g o p rod uz i d o é b em p rofi ssi onal .
           Aparentemente não utilizou-se de PMD e Findbugs.

           Julio Viegas - SPC Brasil - Globalcode - SP
           Tive problemas de setup não explicados na documentação. Sem
6.9        diferenciais que poderiam ser atrativos na comercialização, porém
           poderia ser utilizado como uma máquina de busca de um site.
           Potencial de vendas médio e qualidade média.

           Loiane Groner - IBM - ESJUG - SP
           UI bem limpa, JSPs com código limpo e bem organizado. Arquivo de
           instrução claro e objetivo. Trabalho bem interessante e interessante
           o fato de ter juntado conhecimento acadêmico com framework
 9         utilizado pelo mercado. Fez bom uso do framework. Fez uso de
           documentação em algumas classes e alguns métodos. Alguns em
           português e outros em inglês (é bom seguir um padrão). Poderia ter
           adicionado mais comentários ao longo do código.

           Foram encontradas algumas Bad Practices, mas nada assustador.




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 53
Profissionais

Nota                                      Avaliação
           Ricardo Ferreira - Red Hat / JBoss - SP
           Considerando que o trabalho do aluno começou com 10.0 pontos,
           houveram certos aspectos do trabalho que me fizeram destacar
           alguns destes pontos, decrementando o valor da nota para 7.25. Os
           aspectos avaliados foram:

              1) Apesar da aplicação não apresentar problemas na hora do
           deployment, durante a execução do programa, ocorreu um erro
           grave na hora de realizar uma indexação de uma URL. Ao entrar
           com a URL a clicar no botão "Indexar", ocorreu o seguinte erro:

                  javax.faces.FacesException: #{servidorBean.indexarPagina}:
           java.lang.NoClassDefFoundError: com/ibm/icu/text/
           StringPrepParseException

           Como o problema está relacionado a uma questão básica de
7.25
           dependências de arquivos JAR, foi decontado 2.0 do candidato
           principalmente por se tratar de uma funcionalidade que é
           principal para a solução.

              2) O código do programa apresenta pouco controle de instâncias
           de objetos quanto as suas referências. Erros do tipo
           NullPointerException são considerados básicos demais para uma
           aplicação que está sendo distribuida e deverá ser usado em larga
           escala. Não consegui avaliar se o programa dispara algum erro
           desta natureza, mas pelo código fonte dá pra perceber que
           'potencialmente' isso ocorrerá, o que me estimula a retirar 0.75
           pontos do resultado final. Quando um projeto é mantido apenas por
           um programador, falhas como essa tendem a ser contornadas ou
           inibidas. Mas em um projeto onde vários programadores atuam no
           código fonte, este tipo de controle de código deve ser obrigatório.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 54
Profissionais

Nota                                      Avaliação
           Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB
           Meus critérios de avaliação:
           a) Facilidade de instalação e execução

           Estava indo tudo perfeito. Copiei o .war para meu diretório
           webapps. O Tomcat fez o deployment da aplicação. Acessei, vi a
           interface. Cliquei no link "server" e mandei indexar minha página.
           Inseri a URL da minha página, OK e então veio o erro. Por acaso
           faltou alguma biblioteca JSF no lib de dentro do WAR?




 9




           b) Qualidade do manual e material de documentação

           Muito bom

           c) Qualidade do código produzido (código e design do projeto)

           Muito boa.

           Sugestão: Use o logger do container para imprimir as mensagens
           de erro das exceções. Evite o clássico "printStackTrace()". Use o
           método "log()" do ServletContext.

           d) Inovação do projeto

           MUITO BOM




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 55
Alunos

Notas                                     Avaliação
           Anderson Severo - aluno IFCE
           Não consegui usar o software. Para as tentativas de busca, sempre
           resultados vazios e para as tentativas de indexação, sempre ocorreu

           javax.servlet.ServletException:                          #
 1         {servidorBean.indexarPagina}:java.lang.NullPointerExcepti
           on

           O manual não foi suficiente para iniciar o uso com sucesso. Não há como dar
           nota.

           Carlos Albercio - aluno UNIFOR
           Trabalho bem implementado com bom nível de complexidade,
 8.5       mesmo que utilizando o Lucene para a implementação do trabalho,
           porém a organização do código poderia ter ficado melhor, tendo
           uma melhor distribuição dos arquivos nos pacotes.

           Daniel Valente - aluno UNIFOR
           Trabalho bem interessante e bem elaborado. PorÈm durante meus
 8         testes ocorreram alguns erros, mas como nao sei se foi problema de
           ambiente, julguei pelo cÛdigo e objetivo do trabalho.

           Diego Aguiar - aluno UFC/Sobral
 5         Não consegui executar o programa, mesmo com as instruções
           fornecidas. Possui uma boa documentação e um bom tutorial.

           Francisco José de Lima - aluno FA7
           O programa não se comportou como descrito no manual do usuário.
 1         A instação do software ocorreu com sucesso, porém a pesquisa não
           funcionou e ao clicar em servidor e depois em indexar ocorreu uma
           falha no sistema.




Prêmio Universitário Felipe Gaúcho 2009                      CEJUG, Página 56
Alunos

Notas                                        Avaliação
           Marcos Paulo - aluno IFCE
           Considerações positivas: Bom assunto, interessante, pareceu que o aluno teve que
           fazer uma boa pesquisa sobre para poder desenvolver a aplicação o que é bem legal.

           Considerações negativas: O programa rodou mas não fez seu papel, pelo menos não
           no meu computador, pode ser algum problema de configuração... não sei... to
           mandando o printscreen pra ver como é verdade...




 7




            !

           Rafael Sales - aluno UFC
 1
           Não entregou a avaliação.




Prêmio Universitário Felipe Gaúcho 2009                           CEJUG, Página 57
6º - Anderson Severo de Matos
                       Faculdade: IFCE
                       Professor: Glauber Ferreira Cintra
                       Média aritmética: 6,7
                       Link p/ o trabalho: http://tiny.cc/8j3yt



                             Profissionais

Nota                                      Avaliação
           Adriano Almeida - Caelum - SP
           Ao executar o jnlp lança uma exceção indicando que nao foi possível
           baixar um arquivo:

           com.sun.deploy.net.FailedDownloadException: Impossible de
           charger la ressource : file:SimuladorArvoreBeMaisFX.jnlp
                 at com.sun.deploy.net.DownloadEngine.actionDownload
           (DownloadEngine.java:1347)
                 at com.sun.deploy.net.DownloadEngine.getCacheEntry
           (DownloadEngine.java:1487)
                 at com.sun.deploy.net.DownloadEngine.getCacheEntry
           (DownloadEngine.java:1465)
                 a                                                       t
           com.sun.deploy.net.DownloadEngine.getResourceCacheEntry
           (DownloadEngine.java:1568)
                 a                                                       t
 1         com.sun.deploy.net.DownloadEngine.getResourceCacheEntry
           (DownloadEngine.java:1496)
                 at com.sun.deploy.net.DownloadEngine.getResource
           (DownloadEngine.java:217)
                 at com.sun.deploy.net.DownloadEngine.getResource
           (DownloadEngine.java:201)
                 at com.sun.javaws.Launcher.updateFinalLaunchDesc
           (Launcher.java:447)
                 at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:
           232)
                 at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:
           211)
                 at com.sun.javaws.Launcher.launch(Launcher.java:104)
                 at com.sun.javaws.Main.launchApp(Main.java:405)
                 at com.sun.javaws.Main.continueInSecureThread(Main.java:
           252)
                 at com.sun.javaws.Main$1.run(Main.java:111)
                 at java.lang.Thread.run(Thread.java:613)




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 58
Profissionais

Nota                                      Avaliação
           Alexandre Gomes - SEA Tecnologia - InfoQ - DF
           Trabalho muito bem acabado com ótima apresentação final e
           organização dos deliverables. Muito boa a seleção do tema de
           trabalho. Apesar de ignorados por grande parte dos alunos,
           conceitos como esses são utilizados nos mais modernos sistemas de
           arquivos e nos principais SGBDs de mercado e a bagagem teórica
           adquirida tem o potencial para ser o diferencial competitivo do
           futuro profissional.
10
           A tecnologia utilizada teve papel papel fundamental para a
           realização visual da proposta. Entretanto, alguns de seus recursos
           poderiam ter sido melhor explorados. Por exemplo, Resource
           Bundles poderiam ter sido utilizados no lugar da classe
           Mensagens.java e excesso de indireções evitados, como no método
           Util.converterNumero, que cria um nível extra de projeto sem
           qualquer agregação de valor.

           Cláudio Rocha - IVIA - CE
           O Projeto do Anderson estava muito bem documentado. Inclusive
9.2        foi o único projeto que enviou diagramas de classe para expor em
           alto nível como estava organizada a aplicação. O tema do trabalho
           também foi muito importante para a nota dada.




Prêmio Universitário Felipe Gaúcho 2009                CEJUG, Página 59
Profissionais

Nota                                      Avaliação
           Fabiane Nardon - Zilics - JavaTools Community - SP
           Houve dificuldade para executar a aplicação, sendo que só foi
           possível executá-la corretamente depois de fazer alguns ajustes no
           arquivo jnlp. Talvez os erros gerados sejam resultantes do fato de
           que os testes foram feitos em um MacOSX e não em um
           computador Windows, onde a aplicação foi originalmente
           desenvolvida.

           As strings do projeto estão "hard coded" e não armazenadas em
           bundles externos, o que não é recomendável. Inclusive, a
           compilação do projeto falhou porque o compilador não reconhecia
           alguns caracteres acentuados (note que o teste foi realizado em um
           MacOSX que usa um encoding diferente do Windows). O código teve
           que ser modificado para que pudesse ser compilado.

 8
           Ao executar a aplicação, as imagens no formato PNG não eram
           carregadas por algum motivo (ocorria uma exceção ao carregá-las).
           Para contornar o problema, as imagens foram transformadas em
           GIF e só então foi possível executar a aplicação.

           Em geral, o código está bem organizado e fácil de entender. As
           classes Java possuem boa documentação, mas senti falta de um
           pouco mais de documentação nos arquivos JavaFx. O manual do
           sistema está bem escrito e fácil de entender.

           Uma sugestão que tornaria o código melhor seria uma separação
           entre a camada de apresentação e a camada de lógica e
           armazenamento de dados. Da forma como a aplicação foi
           organizada, os dados e a lógica estão misturados com a camada de
           apresentação, o que, em grandes aplicações, é problemático.

           Hebert Aquino - BRQ - CE
           Javadoc - Não tinha informações sobre o que cada método fazia,
           boa documentação mas faltou essa informação.
           Bug - Aplicação não diferencia valor em branco de campo numérico.
 8         Erro - Ao iniciar a aplicação, rodei a primeira vez mas a segunda vez
           deu erro ao iniciar a aplicação.
           Se for clicado no Atalho do JavaWeb Start só funciona quando é
           clicado no arquivo .jnlp
           Os erros e acertos não foram colocados no painel de Erros e Log.




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 60
Profissionais

Nota                                      Avaliação
           João Victor - USIX - CE
           Justificativa para a nota: O Sistema apresentado é bem usual.
           Consegue deixar claro a simulação dos conceitos da árvore B+. Tem
           um visual agradável, porém como foi desenvolvido em javafx não
           deve ter despendido muito esforço de programação. Outro ponto
           importante que vale ser ressaltando é a utilização do Java
           Webstart , onde para colocar a aplicação para funcionar foi muito
           fácil.

           Possui uma boa documentação onde explica o funcionamento da
           aplicação e como fazê-la funcionar. Além disso, as classes estão
           com o javadoc feitos, porém o mesmo não foi gerado. Gerou o
8.5        Javadoc com estilo Javafx.

           Sobre o valor do projeto em relação ao mercado: Infelizmente a
           aplicação não tem valor de mercado, pois esse algoritmo já é
           implementado em sistemas de banco de dados e aplicações
           comerciais utilizam esse recurso através dos bancos. Porém,
           academicamente é uma excelente ferramenta de estudo.

           Sobre os critérios de qualidade: A aplicação parece bem escrita e
           possui dois diagramas da UML na documentação. Nos testes
           realizados a aplicação não travou ou parou de funcionar.
           Provavelmente não se utilizou de ferramentas de PMD ou Findbugs ,
           mas teve preocupação com warnings no código.

           Julio Viegas - SPC Brasil - Globalcode - SP
           Interface um pouco confusa e baixo potencial comercial. Talvez
4.5        pudesse ser vendido como aplicativo de suporte ao aprendizado.
           Potencial de vendas baixo e qualidade média.




Prêmio Universitário Felipe Gaúcho 2009                CEJUG, Página 61
Profissionais

Nota                                      Avaliação
           Loiane Groner - IBM - ESJUG - SP
           UI bem finalizada, uso de FX, arquivo de instrução claro e objetivo.
           Precisei ler o arquivo de instrução para executar a aplicação. Não
           sei se é a minha máquina, mas quando tentava inserir ou buscar
           algum nó na árvore, demora bastante (uns 5 segundos). Aplicação
           demonstra o uso de Árvore B+ como proposto.

8.5        Fez uso de documentação, código FX bem comentado – ficou
           intuitivo para quem não conhece a tecnologia e for olhar o código.
           Achei bem interessante a idéia de usar FX, pois pode relacionar o
           conhecimento adquirido em sala de aula com uma tecnologia
           recente do mercado.

           A Bad Practice mais relevante que achei foi concatenação de Strings
           em loop com operador + - dê preferência a StringBuffer (só uma
           dica para melhorar a performance).




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 62
Profissionais

Nota                                      Avaliação
           Ricardo Ferreira - Red Hat / JBoss - SP
           Considerando que o trabalho do aluno começou com 10.0 pontos,
           houveram certos aspectos do trabalho que me fizeram destacar
           alguns destes pontos, decrementando o valor da nota para 6.5. Os
           aspectos avaliados foram:

             1) A aplicação não executou corretamente em meu computador. O
           sistema operacional utilizado foi o Fedora 12 64 bits com interface
           gráfica baseada em Gnome. Tive o JDK 6.20 na máquina com
           JavaFX 1.3. Mesmo executando passo a passo as instruções
           fornecidas pelo documento, ocorre um erro no programa ao abrir a
           tela principal, dizendo que um arquivo não foi encontrado. Neste
           caso, questões como testes em ambientes diversos foram
           ignorados: A impressão é que o candidato testou o aplicativo
6.25       apenas no sistema operacional Windows. Como o aplicativo é
           baseado em arquitetura FatClient, haveria de se fazer necessário
           mais testes em ambientes como 3.0 pontos.

             2) O código do programa apresenta pouco controle de instâncias
           de objetos quanto as suas referências. Erros do tipo
           NullPointerException são considerados básicos demais para uma
           aplicação que está sendo distribuida e deverá ser usado em larga
           escala. Não consegui avaliar se o programa dispara algum erro
           desta natureza, mas pelo código fonte dá pra perceber que
           'potencialmente' isso ocorrerá, o que me estimula a retirar 0.75
           pontos do resultado final. Quando um projeto é mantido apenas por
           um programador, falhas como essa tendem a ser contornadas ou
           inibidas. Mas em um projeto onde vários programadores atuam no
           código fonte, este tipo de controle de código deve ser obrigatório.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 63
Profissionais

Nota                                      Avaliação
           Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB
           Meus critérios de avaliação:
           a) Facilidade de instalação e execução

           Ruim. Não tenho o Java FX instalado e não consegui fazer funcionar
           em 30 mins (tempo que dediquei para tentar montar o ambiente
           para executar o projeto).
           O manual permitiu que eu avaliasse o projeto,

           b) Qualidade do manual e material de documentação

           Razoável. No entanto há erros de português na documentação.

           c) Qualidade do código produzido (código e design do projeto)

 5         Ruim.

           A lógica da estrutura de dados, algoritmo de inserção, etc. está
           misturada com as classes JavaFX da interface. O projeto é uma
           excelente oportunidade de implementar o padrão MVC para isolar a
           exibição JavaFX do algoritmo da árvore B+.
           As mensagens da classe "Mensagem.java" poderiam estar
           guardadas em um arquivo de propriedades.
           Presença de números mágicos. (Vide classe "Util.java")

           d) Inovação do projeto

           Baixa. Há vários simuladores de árvores B+ por aí, inúmeras
           implementações da estrutura de dados, etc. No entanto o projeto é
           bem bacana pois oferece uma interface legal para mostrar a
           estrutura de dados. Certamente foi um ótimo exercício tanto para
           usar JavaFX quanto para implementar a árvore B+.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 64
Alunos

Nota                                      Avaliação
           Carlos Albercio - aluno UNIFOR
           A idéia do trabalho é interessante, mas falta algumas mensagens
           de alerta/erro ao usuário, como quando tenta adicionar um nó já
           existente na árvore, poderia avisar que o mesmo já existe, ao invés
           de apenas contornar de vermelho onde o mesmo esta. Outra coisa
           é quando após gerarmos alguma árvore que a organizamos de um
           jeito como colocando um grupo de nós em uma determinada
           posição, ao adicionarmos outro nó, ele alinha toda a árvore
6.5        novamente.

           Ao testar o programa encontrei um erro que em um determinado
           ponto ele não encontrou um determinado na árvore, mesmo ele já
           tendo sido inserido anteriormente. Fora isso o trabalho foi bem
           documentado facilitando o entendimento do código e uma futura
           manutenção, mas no código também foi encontrado alguns
           “comentários” em algumas funcionalidades que acredito que tinham
           sido utilizadas anteriormente e ao serem desativadas não foram
           deletadas, apenas tiveram a linha comentada.

           Daniel Valente - aluno UNIFOR
           Trabalho está muito bem elaborado, e com documentação auxiliar
           bem elaborada e explicativa. A parte visual está bem atraente,
8.5
           porém algumas coisas no código como por exemplo a parte de
           mensagens da aplicação poderia ter sido melhorada com a utilização
           de um arquivo .properties para deixar mais generico.

           Diego Aguiar - aluno UFC/Sobral
 4         Tentei executar o programa de várias maneiras, tanto no sistema
           Linux quanto no Windows, mas não obtive êxito. Contudo, o
           programa possui uma boa documentação e um bom tutorial de uso.

           Francisco José de Lima - aluno FA7
           Bom manual de instruções. O aplicativo é de fácil inicialização.
           Boa interface gráfica, porém precisa de alguns ajustes para poder
           rodar em ambiente GNU/Linux.
 7
           Métodos comentados. O programa não esta funcionando
           corretamente em ambiente linux. Porém em ambiente windows esta
           funcionando sem problemas.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 65
Alunos

Nota                                      Avaliação
           Germano Duarte - aluno UNIFOR
           Trabalho interessante mas falta algumas mensagens de erro ao
           Usuário. Quando tenta adicionar um nó já existente na árvore,
           poderia avisar que o mesmo já existe, ao invés de apenas contornar
           de vermelho onde o mesmo esta. Outra coisa é quando após
           gerarmos alguma árvore que a organizamos de um jeito como
           colocando um grupo de nós em uma determinada posição, ao
5.5        adicionarmos outro nó, ele alinha toda a árvore novamente. O
           programa apresenta um erro que em um determinado ponto não
           encontra um determinado no na árvore, mesmo ele já tendo sido
           inserido anteriormente. O trabalho está bem documentado
           facilitando o entendimento do código e uma futura manutenção. O
           código fonte tem alguns “comentários” em algumas funcionalidades
           que acredito que tinham sido utilizadas anteriormente e ao serem
           desativadas não foram deletadas, apenas tiveram a linha
           comentada.

           Marcos Paulo - aluno UNIFOR
           Considerações Positivas: Ótima idéia, trabalho difícil de se
           implementar, não adianta elogiar a interface porque é difícil fazer
           algo em JavaFX e não ficar bonito mas ficou muito bom, o programa
 8         faz o que se propõe. É um programa bem didático bem elaborado e
           pode muito bem ser usado para explicar a matéria. Ponto positivo
           para a documentação que ficou bem organizada..

           Considerações Negativas: Dificuldade para executá-lo no Mac e no
           Linux, que executou somente importando o projeto no Eclipse.

           Rafael Sales - aluno UFC
           Não entregou a avaliação.



                       7º - Rafael de Castro Dantas Sales
                       Faculdade: UFC
                       Professor: Vânia Maria Ponte Vidal
                       Média aritmética: 5,81
                       Link p/ o trabalho: http://tiny.cc/ro37d



                             Profissionais
Nota                                      Avaliação



Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 66
Profissionais

Nota                                      Avaliação
           Adriano Almeida - Caelum - SP
           Bom uso de design patterns, como o DAO encapsulando o trabalho
           com o banco de dados. No entanto, atualmente alguns design
           patterns como o Singleton são desencorajados, pois eles levam a
           uma programação procedural e não existe mais tanto ganho no
           consumo de recursos devido a otimizações da JVM (vale a pena
 7         estudar sobre a JVM e JIT - Just in time compiler).

           Muito bom uso do arquivo de configuração para o banco de dados.
           No entanto, poderia-se utilizar um HSQLDB embutido na aplicação
           ao invés de obrigar o cliente a ter um MySQL instalado. Vale a pena
           também estudar Hibernate e JPA para melhorar o código dos DAOs
           e remover essa dependencia de SQLs de diversos bancos
           diferentes.

           Alexandre Gomes - SEA Tecnologia - InfoQ - DF
           O projeto resume-se a um CRUD de 3 tabelas, sem grandes
           desafios técnicos ou teóricos. Sem dúvida, existe o mérito
           mercadológico, mas a instância de problema tratada poderia ser de
           complexidade um pouco superior para se equilibrar às demais
           propostas enviadas.

           O projeto executa corretamente todas as rotinas a que se propõe,
 6         mas ainda necessita de algumas horas de trabalho para atingir um
           nível de completude funcional satisfatório. Das três entidades
           básicas do sistema, apenas o cadastro de Frete é completo. Ao que
           parece, Clientes e Cidades são ainda modelos manipulados apenas
           em banco de dados, não possuindo meios gráficos para sua
           administração.

           Por fim, a documentação do projeto não descreve o propósito do
           sistema e tampouco explica como o usa.

           Cláudio Rocha - IVIA - CE
           O Rafael exibiu uma app com acesso a banco de dados.
           O código estava bem colocado e suas classes apresentavam uma boa
9.1        disposição. As responsabilidades também estavam bem divididas.
           Como ponto negativo vejo a documentação que poderia ter tido uma maior
           atenção.




Prêmio Universitário Felipe Gaúcho 2009                    CEJUG, Página 67
Profissionais

Nota                                      Avaliação
           Fabiane Nardon - Zilics - JavaTools Community - SP
           A documentação não é suficiente. Não existe uma descrição de qual
           o objetivo do sistema nem de sua arquitetura. O código possui
           pouco JavaDoc.

           As instruções para execução foram razoavelmente claras.

           Existe uma separação clara entre as camadas (persistência, lógica
           e apresentação), o que é elogiável. O código é claro e fácil de
           entender.

 6
           A interface é pobre em vários aspectos. Por exemplo, não há
           indicação da unidade esperada para o peso no frete.

           A maior crítica a este trabalho é que ele é pouco inovador e de
           baixo grau de dificuldade. A abordagem adotada para solucionar o
           problema é simplista. Poderia ser utilizado algum framework de
           persistência, por exemplo, para ter mais escalabilidade.

           Uma documentação mais detalhada também ajudaria a
           contextualizar a aplicação e entender porque esta arquitetura foi
           escolhida.

           Hebert Aquino - BRQ - CE
 8         Javadoc - Faltou o Javadoc e n„o comentou todas as classes
           deixando a documentaÁ„o pobre.




Prêmio Universitário Felipe Gaúcho 2009                CEJUG, Página 68
Profissionais

Nota                                      Avaliação
           João Victor - USIX - CE
           Justificativa para a nota: O sistema apresentado é usual e atende
           ao que se propõe. Tem um visual fácil de utilizar, porém o projeto
           parece incompleto, pois utiliza-se de informações que não podem
           ser cadastradas, como exemplo, cadastro de clientes.

           Possui pouca documentação e a documentação que existe é para
           colocar a aplicação para funcionar. Um ponto importante que vale
           ressaltar é o fato de ser necessário um banco de dados para a
           utilização do aplicativo.
 7
           Sobre o valor do projeto em relação ao mercado: O aplicativo pode
           ser comercializado e se transforma em uma aplicação comercial e
           completa. Além disso, precisaria de controle de autenticação,
           auditorias e etc.

           Sobre os critérios de qualidade: A aplicação deixa a desejar no
           quesito documentação. Com os testes feitos a mesma não travou
           em nenhum momento. Porém, não se utilizou de PMD e Findbugs,
           apesar de existir warning no aplicativo.

           Julio Viegas - SPC Brasil - Globalcode - SP
           Apesar de deixar de fora uma série de fatores relacionados ao
7.8        cálculo real de frete, apresenta um potencial comercial forte, pois
           todo sistema de venda depende de um módulo de entrega. O setup
           foi muito difícil. Potencial de vendas alto e qualidade média.

           Loiane Groner - IBM - ESJUG - SP
           Aplicação intuitiva, bom uso de Swing. Arquivo de instrução claro e
           objetivo, mas poderia ter caprichado um pouco mais! Fez bom uso
           das tecnologias utilizadas. Fez uso de documentação em algumas
           classes e alguns métodos.

           Fez uso correto do padrão de projeto utilizado.O FindBugs achou
           algumas linhas de código com Bad Practice, mas nada muito sério.
 9         O mais relevante que achei foi concatenação de Strings em loop
           com operador + - dê preferência a StringBuffer (só uma dica para
           melhorar a performance). Encontrado comandos vazios (apenas ;
           no código).

           Encontrado comparação de objectos com == em vez de .equals
           (má prática e não é correto: operador == entre objetos compara a
           referência e não o conteúdo/valores do objeto). Encontrado blocos
           catch vazios (muito feio!) – ao menos faça uso de impressão de
           stack trace, ignorar uma exception é uma péssima prática!



Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 69
Profissionais

Nota                                      Avaliação
           Ricardo Ferreira - Red Hat / JBoss - SP
            Considerando que o trabalho do aluno começou com 10.0 pontos,
           houveram certos aspectos do trabalho que me fizeram destacar
           alguns destes pontos, decrementando o valor da nota para 7.25. Os
           aspectos avaliados foram:

             1) O código do programa apresenta pouco controle de instâncias
           de objetos quanto as suas referências. Erros do tipo
           NullPointerException são considerados básicos demais para uma
           aplicação que está sendo distribuida e deverá ser usado em larga
7.25
           escala. Não consegui avaliar se o programa dispara algum erro
           desta natureza, mas pelo código fonte dá pra perceber que
           'potencialmente' isso ocorrerá, o que me estimula a retirar 0.75
           pontos do resultado final. Quando um projeto é mantido apenas por
           um programador, falhas como essa tendem a ser contornadas ou
           inibidas. Mas em um projeto onde vários programadores atuam no
           código fonte, este tipo de controle de código deve ser obrigatório.

             2) Scripts de DDL e DCL com erros. Tive que consertar alguns
           scripts para fazer funcionar. 2 Pontos foram descontados.

           Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB
           Meus critérios de avaliação:
           a) Facilidade de instalação e execução

           É preciso instalar o MySQL. (Isso não afetou a avaliação do projeto. Apenas
           não consegui executar o sistema.)


           b) Qualidade do manual e material de documentação

           Ruim
           Não há manual.
           Não há tutorial.
 3         Não é possível saber do que se trata o projeto sem executá-lo.

           c) Qualidade do código produzido (código e design do projeto)

           Implementou bem o DAO
           Código legível e bem estruturado.
           Foi bom rever código SQL dentro de classes Java novamente. No entanto a
           equipe deve considerar o uso de outras ferramentas, para projetos de maior
           escala, como Hibernate, por exemplo.
           Projeto simples.

           d) Inovação do projeto

           Nenhuma


Prêmio Universitário Felipe Gaúcho 2009                        CEJUG, Página 70
Alunos

Nota                                      Avaliação
           Anderson Severo - aluno IFCE
           Interface gráfica fraca. O programa cumpre o que promete, mas não introduz
6.5        nada de inovador. Possui também uma classe inteira pronta de outro autor.
           Porém, trabalha com atenção o assunto da disciplina para o qual foi
           produzido.

           Carlos Albercio - aluno UNIFOR
           Trabalho com pouca funcionalidade e bastante limitado, sendo
 6         possível apenas cadastrar o frente, seria interessante poder
           cadastrar clientes e cidades, nos campos decimais poderia aceitar a
           vírgula, invés de apenas ponto, ou então informar que deve ser
           utilizado ponto.

           Daniel Valente - aluno UNIFOR
           Trabalho bem elaborado e estruturado. Porém, na minha opinão,
 7         mais uma vez faltou algo inovador/diferente do dia a dia comparado
           com outros trabalhos do PUJ.

           Diego Aguiar - aluno UFC/Sobral
           O programa funciona conforme o esperado, contudo não possui uma
 4         interface gráfica amigável, além de podermos inserir o mesmo
           cadastro várias vezes no banco de dados (o que não seria adequado
           para a aplicação). O sistema não possui qualquer tipo de
           documentação, exceto um pobre tutorial de instalação.

           Francisco José de Lima - aluno FA7
           Sem manual de instruções. O aplicativo é de fácil inicialização.
           Boa interface grafica, porém precisa de alguns ajustes. Interface
 5         intuitiva o que facita o entendimento.
           Métodos comentados, porém poderia adicionar mais informações
           sobre o comportamento. Boa divisão dos métodos e das classes. O
           programa atende ao que ele se propõe e não ocorre falhas.

           Germano Duarte - aluno UNIFOR
           Trabalho com pouca funcionalidade e bastante simples com única
 6         opção de cadastro de frente. Seria interessante poder cadastrar
           clientes e cidades. Campos decimais poderiam aceitar a vírgula,
           invés de apenas ponto.




Prêmio Universitário Felipe Gaúcho 2009                     CEJUG, Página 71
Alunos

Nota                                      Avaliação
           Marcos Paulo - aluno IFCE
           Considerações Positivas: Bom JavaDoc. Organização das classes de
           gui bem feitas, podia ter sido melhor mas gostei muito da utilização
           do GridBagLayout para interface, o aluno parecia bem o que tava
           fazendo. No mais o código está OK e o programa funciona.


           Considerações Negativas: Acredito que teria sido melhor ao invés de
 7         mandar os scripts para criar e popular o banco ele ter mandado o
           dump do banco para que a gente só o restaurasse e já pudesse
           usar. Também teria sido mais interessante se ele tivesse usado
           Hibernate ou mesmo JPA com Hibernate para fazer o projeto, já que
           foca banco de dados, teria sido uma ótima forma de criar uma
           aplicação didática com essas tecnologias. Também poderia ter
           utilizado um singleton para fazer a conexão com o banco de dados
           para garantir melhor que em toda aplicação só haverá uma
           conexão.



                       8º - Diego Aguiar Souza
                       Faculdade: UFC/Sobral
                       Professor: Iális Cavalcante de Paula Jr.
                       Média aritmética: 5,75
                       Link p/ o trabalho: http://tiny.cc/h4li5




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 72
Profissionais

Nota                                      Avaliação
           Adriano Almeida - Caelum - SP
           Na hora de subir a aplicação o hibernate lança uma exceção na
           criação dos schemas e a app não sobe.

           Eu simplesmente dei um java -jar no executavel, como diz no
           manual da app. A stack trace está abaixo.

           Exception          in    thread       " AW T- E ve n t Q u e u e - 0 "
           org.hibernate.exception.GenericJDBCException: could not execute
           native bulk manipulation query
                  a                                                             t
           org.hibernate.exception.SQLStateConverter.handledNonSpecificExce
           ption(SQLStateConverter.java:126)
                  at org.hibernate.exception.SQLStateConverter.convert
           (SQLStateConverter.java:114)
                  at org.hibernate.exception.JDBCExceptionHelper.convert
           (JDBCExceptionHelper.java:66)
                  a                                                             t
           org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUp
           date(NativeSQLQueryPlan.java:198)
                  at org.hibernate.impl.SessionImpl.executeNativeUpdate
           (SessionImpl.java:1190)
                  at org.hibernate.impl.SQLQueryImpl.executeUpdate
           (SQLQueryImpl.java:357)
 1                at frame.MainFrame$16.run(MainFrame.java:607)
                  at java.awt.event.InvocationEvent.dispatch
           (InvocationEvent.java:209)
                  at java.awt.EventQueue.dispatchEvent(EventQueue.java:
           633)
                  at java.awt.EventDispatchThread.pumpOneEventForFilters
           (EventDispatchThread.java:296)
                  at java.awt.EventDispatchThread.pumpEventsForFilter
           (EventDispatchThread.java:211)
                  at java.awt.EventDispatchThread.pumpEventsForHierarchy
           (EventDispatchThread.java:201)
                  at java.awt.EventDispatchThread.pumpEvents
           (EventDispatchThread.java:196)
                  at java.awt.EventDispatchThread.pumpEvents
           (EventDispatchThread.java:188)
                  at        java.awt.EventDispatchThread.run
           (EventDispatchThread.java:122)
           Caused by: java.sql.SQLException: invalid schema name in
           statement [CREATE SCHEMA GDGP AUTHORIZATION DBA]
                  at org.hsqldb.jdbc.Util.throwError(Unknown Source)
                  at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate
           (Unknown Source)
                  a                                                             t
           org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUp
           date(NativeSQLQueryPlan.java:189)
                  ... 11 more

Prêmio Universitário Felipe Gaúcho 2009                   CEJUG, Página 73
Profissionais

Nota                                      Avaliação
           Alexandre Gomes - SEA Tecnologia - InfoQ - DF
           O projeto tem uma essência menos acadêmica que os demais
           trabalhos submetidos, o que demonstra a sintonia do aluno com as
           demandas de mercado. A documentação está bastante extensa e
           detalhada mas parece não ter sido o bastante para a execução bem
           sucedida de todos os testes da aplicação.

           Já na primeira inicialização do sistema falhou com uma exceção de
           SQL [1]. Após renomar os arquivos databaseGDGP* para
           databaseGDGP*, o aplicativo pode ser inicializado, mas não
           comprovou o bom funcionamento de todas as suas funcionalidades.
           Todos os cadastros envolvendo data (Aluno e Projeto) não puderam
 2         ser executados. Independente da data informada, uma mensagem
           de 'Data Inválida' foi sempre apresentada. No cadastro da Artigos,
           não funciona a inserção de revista ou evento técnico.

           [1] java.sql.SQLException: invalid schema name in statement
           [CREATE SCHEMA GDGP AUTHORIZATION DBA]
                 at org.hsqldb.jdbc.Util.throwError(Unknown Source)
                 at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate
           (Unknown Source)
                 at
           org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUp
           date(NativeSQLQueryPlan.java:189)
                 ... 11 more

           Cláudio Rocha - IVIA - CE
           O trabalho do Diego aborda aplicações com banco de dados. Apesar
           de estar documentado com JavaDoc acredito que poderia ter um
9.2        nível maior de detalhe nesta documentação.
           A aplicação está visualmente     bem disposta e se mostra bem
           completa quanto às necessidades de controle requerida pelo
           domínio da aplicação.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 74
Profissionais

Nota                                      Avaliação
           Fabiane Nardon - Zilics - JavaTools Community - SP
           A aplicação se liga a um banco de dados, mas não há instruções
           sobre como configurar este banco. Para poder executar a aplicação,
           foi necessário alterar os arquivos de configuração do Hibernate, que
           estavam com o caminho do BD hard coded.

           Algumas mensagens de erro no sistema não são claras. Por
           exemplo, ao incluir um projeto, recebi uma mensagem de erro
           dizendo "Data Inválida", mas sem informação de porque a data era
           inválida. Na verdade, o sistema tem problemas no tratamento de
           datas. Talvez seja em função do Locale utilizado. No meu ambiente,
           todas as datas eram consideradas inválidas, mesmo quando
           informadas corretamente.

 6
           Alguns botões da aplicação estão sem ação. Por exemplo: o botão
           Visualizar Detalhes do Artigo gera uma exceção
           java.lang.NullPointerException e não faz nada. O botão Visualizar
           Dados Detalhados do pesquisador traz uma janela vazia.

           Falta documentação JavaDoc em diversas classes importantes o que
           dificulta o entendimento e manutenção do código.

           A aplicação não faz uma separação clara da camada de
           apresentação com a lógica de negócio, o que não é aconselhável.

           O manual de utilização é claro e completo, embora não tenha sido
           possível avaliar todas as funcionalidades em função dos erros
           citados acima.

           Hebert Aquino - BRQ - CE
8.7        Javadoc - Não comentou todas as classes, ocorreu erros de
           validação quando se deixava as datas em brancos.




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 75
Profissionais

Nota                                      Avaliação
           João Victor - USIX - CE
           Justificativa para a nota: O sistema apresentado parece ser bem
           usual. Esta bem estruturado e possui tecnologias maduras. Porém,
           vale salientar que o .jar não executou e ao testá-lo via IDE só
           funcionou uma única vez.

           Possui uma boa documentação onde explica o funcionamento do
           sistema. Contém também o javadoc do aplicativo, porém
           incompleto e superficial. Não explica como colocar a aplicação para
           funcionar em uma IDE.
 8
           Sobre o valor do projeto em relação ao mercado: O sistema possui
           um apelo comercial e open source no mercado. É uma aplicação
           para controle de documentos e pode ser melhorada e evoluída
           podendo ser comercializada.

           Sobre os critérios de qualidade: A aplicação parece ser bem escrita.
           Porém possui um conjunto de dependências muito grande pelas
           tecnologias utilizadas. Só consegui executá-la uma vez e não houve
           a preocupação e utilizar PMD ou Findbugs.

           Julio Viegas - SPC Brasil - Globalcode - SP
           Interface prática, porém sem nenhum atrativo. Me pareceu um
6.7        pouco simples, sem um diferencial de mercado. Potencial de vendas
           médio e qualidade média.




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 76
Profissionais

Nota                                      Avaliação
           Loiane Groner - IBM - ESJUG - SP
           UI bem intuitiva, bom uso de Swing, ficou bem profissional. Arquivo
           de instrução claro e objetivo. Organizou e separou componentes
           Swing, não colocou tudo em apenas uma classe. Único trabalho que
           participa da competição que fez isso.
           Fez uso de documentação, mas poderia ter colocado alguns
           comentários dentro de métodos para facilitar entendimento de
           bloco de código. Fez bom uso do framework de persistência
           utilizado, com uso de annotations. Bem legal ter juntado o
           conhecimento acadêmico com uso de um dos frameworks de
           persistência mais utilizado no mercado.
9.5        Apesar de ser uma aplicação do tipo clichê, está bem próximo de
           uma aplicação real (até poderia ser realmente uma aplicação em
           produção).

           Poderia ter feito uso de Generics nas coleções. Encontrado blocos
           catch vazios (muito feio!) – ao menos faça uso de impressão de
           stack trace, ignorar uma exception é uma péssima prática! Achei
           alguns blocos de código repetidos, poderia ter criado métodos para
           reuso de código e facilitar uma manutenção futura (caso fosse
           necessário). Encontrado algumas Strings com mesmo conteúdo em
           várias partes do código. Seria interessante criar constante neste
           caso (static String NOME_STRING). Encontrado declaração de
           atributos que não seguem conveção Java.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 77
Profissionais

Nota                                      Avaliação
           Ricardo Ferreira - Red Hat / JBoss - SP
           Considerando que o trabalho do aluno começou com 10.0 pontos,
           houveram certos aspectos do trabalho que me fizeram destacar
           alguns destes pontos, decrementando o valor da nota para 6.5. Os
           aspectos avaliados foram:

             1) A aplicação não executou corretamente em meu computador.
           Ao executar o programa usando uma JVM 6.0, o programa gerou
           um stacktrace de um erro dizendo que o programa não foi capaz de
           acessar a base de dados HSQLDB devido a um problema de
           schemas inválidos no banco de dados fornecido. A mensagem de
           erro completa foi:

                 "java.sql.SQLException: invalid schema name in statement
6.5        [CREATE SCHEMA GDGP AUTHORIZATION DBA]"

           Neste caso, não foi possivel avaliar a aplicação criada. Por este
           motivo, foram retirados 3.0 pontos do candidato, pois acredito que
           faltaram testes sobre deployment e redistribuição do programa em
           vários computadores. A impressão é que o software foi testado
           apenas no sistema operacional Windows.

               2) Não houve nenhuma documentação sobre os requisitos
           mínimos de hardware e software da aplicação, causando problemas
           na hora de tentar rodar o aplicativo. Usando uma JVM versão 5.0, o
           software se recusou a funcionar. Apenas mudando para a versão
           6.0 do mesmo, ele pode tentar carregar o classLoader da aplicação
           e iniciar o bootstrap de execução. Para este item, foi removido 0.5
           ponto do candidato.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 78
Profissionais

Nota                                      Avaliação
           Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB
           Meus critérios de avaliação:
           a) Facilidade de instalação e execução

           Tentei rodar o PUJCE2009.jar e obtive o seguinte erro:

           May 30, 2010 5:10:35 PM org.hibernate.util.JDBCExceptionReporter
           logExceptions
           SEVERE: invalid schema name in statement [CREATE SCHEMA
           GDGP AUTHORIZATION DBA]
           Exception          in    thread     " AW T- E ve n t Q u e u e - 0 "
           org.hibernate.exception.GenericJDBCException: could not execute
           native bulk manipulation query
                  a                                                           t
           org.hibernate.exception.SQLStateConverter.handledNonSpecificExce
           ption(SQLStateConverter.java:126)
                  at org.hibernate.exception.SQLStateConverter.convert
           (SQLStateConverter.java:114)
                  at org.hibernate.exception.JDBCExceptionHelper.convert
           (JDBCExceptionHelper.java:66)
                  a                                                           t
           org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUp
           date(NativeSQLQueryPlan.java:198)
 6                at org.hibernate.impl.SessionImpl.executeNativeUpdate
           (SessionImpl.java:1190)
                  at org.hibernate.impl.SQLQueryImpl.executeUpdate
           Caused by: java.sql.SQLException: invalid schema name in
           statement [CREATE SCHEMA GDGP AUTHORIZATION DBA]


           b) Qualidade do manual e material de documentação

           Tutorial: Muito bom

           c) Qualidade do código produzido (código e design do projeto)

           Razoável.
             Mistura de Lógica de negócio com elementos de interface gráfica.
           Por exemplo, a classe "MainFrame.java" contém código de acesso
           ao banco, através do Hibernate.
            Código difícil de manter


           d) Inovação do projeto

            Baixa.




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 79
Alunos

Nota                                      Avaliação
           Anderson Severo - aluno IFCE
           Software bem simples, construção básica com Swing, e fica
           agradável realmente em tela cheia (diminuindo muito o tamanho, os
 7         panels começam a sumir). Tem um propósito interessante e que
           não exige muito da interface. O manual poderia ser um pouco mais
           fluente, no sentido de facilitar a leitura, separando passos em
           tópicos, por exemplo. Desenvolvedor forneceu javadoc e os
           arquivos .form para edição no NetBeans.

           Carlos Albercio - aluno UNIFOR
           Interface do programa não fica bem dimensionada, na tela que
           adiciona o aluno ao grupo ela aparece pequena, tendo o usuário que
           dimensioná-la manualmente para poder visualizar todos os campos
           necessários para inserção do mesmo, ao tentar inserir sem
           adicionar a data de início e término da bolsa, ele primeiro valida a
 7         data, pra depois verificar se a mesma foi preenchida, assim
           aparecendo duas mensagens de erro para o usuário.

           O sistema poderia usar mais Generics, assim evitaria alguns
           warnings e o mesmo poderia ter sido melhor documentado e não
           em sua maioria o comentário automático que acredito que seja do
           Netbeans.

           Daniel Valente - aluno UNIFOR
           Trabalho bem elaborado e documentação bem explicativa. Porém,
 7         na minha opinão, faltou algo inovador/diferente do dia a dia
           comparado com outros trabalhos do PUJ.

           Francisco José de Lima - aluno FA7
           Bom manual de instruções. O aplicativo é de fácil inicialização.
           Muito boa interface gráfica. Interface intuitiva o que facita o
6.5
           entendimento.
           Métodos comentados. O programa atende ao que ele se propõe e
           não ocorre falhas.

           Germano Duarte - aluno UNIFOR
           Interface mal dimensionada na tela que adiciona o aluno ao Grupo.
           Ela aparece pequena, tendo o usuário que dimensioná-la
 5         manualmente para poder visualizar todos os campos necessários
           para inserção. Validação da data antes de verificar se o campo esta
           nulo. Aparece duas mensagens de erro para o usuário. Mensagens
           de ”warnings” deveriam ser evitadas usando componentes mais
           atuais.




Prêmio Universitário Felipe Gaúcho 2009                  CEJUG, Página 80
Alunos

Nota                                      Avaliação
           Marcos Paulo - aluno IFCE
           Considerações positivas: O programa parece ter uma finalidade de
           ser útil no dia dia, e não apenas um programa didático e tudo mais,
           isso é legal. Legal também o fato de ter usado o Hibernate mas
           achei alguns pontos péssimos no Hibernate, ponto positivo para o
           tutorial também que ficou bem explicado.

           Considerações negativas: Como por exemplo usar variáveis
 5         estáticas final ao invés de enums em algumas entidades, além do
           fato de estar usando o hibernate e colocando annotations na
           propriedade ao invés de por nos getters, no hibernate isso faz
           diferença, também tem o fato de ter posto FetchType.EAGER em
           relacionamentos @ManyToOne onde ele é EAGER por DEFAULT e
           também ter posto FetchType.LAZY nos relacionamentos
           @OneToMany e @ManyToMany onde ele é Lazy por Default. Além
           disso as classes de interfaces estão totalmente desorganizadas, se
           fosse preciso fazer manutenção na interface um dia seria uma
           grande luta.

           Rafael Sales - aluno UFC
 1
           Não entregou a avaliação.




Prêmio Universitário Felipe Gaúcho 2009                 CEJUG, Página 81
Pespectivas para o PUG
              2010

   O PUG 2009 foi a terceira edição do Prêmio Universitário Felipe
Gaúcho no Ceará. Iniciado em 2007, o prêmio continua tendo um
formato experimental com o objetivo de testar na prática as idéias de
competição discutidas por membros da comunidade cearense de
usuários Java, e principalmente com o objetivo de promover o Ceará e o
Java no Ceará.


   Vitrine do potencial acadêmico cearense, o PUG 2009 chamou a
atenção de muitos setores da sociedade brasileira, especialmente a
imprensa especializada em TI, grupos de usuários Java e empresários,
alunos e professores. O CEJUG pretende realizar anualmente
competições acadêmicas, sempre atraindo os melhores alunos e
procurando no mercado as empresas comprometidas com o
desenvolvimento do estado e com a qualidade em produção de software.


   Para 2010, o CEJUG pretende utilizar os aprendizados na
organização do PUG 2007, 2008 e 2009 para oferecer a sociedade
cearense um prêmio melhor e com mais repercussão nacional.


   Desde já o CEJUG agradece o apoio dos patrocinadores e a
contribuição voluntária de todos os avaliadores e professores, além de
dar os parabéns aos alunos que tiveram a disciplina em apresentar
trabalhos de alta qualidade. Para 2010, que vença o melhor.




    Prêmio Universitário Felipe Gaúcho 2009        CEJUG, Página 82
Veracidade do documento

    A coordenação do CEJUG atesta que todo o conteúdo deste
documento é de inteira responsabilidade dos seus respectivos autores,
sendo de autoria e responsabilidade de cada participante (textos do
PUG, avaliações dos profissionais e alunos).




                          Rafael Carneiro
                   Coordenador CEJUG e PUG 2009




Testemunhas:




  Hildeberto Mendonça            Silveira Neto       René Araújo
  Coordenador CEJUG           Coordenador CEJUG   Coordenador CEJUG




    Prêmio Universitário Felipe Gaúcho 2009        CEJUG, Página 83

Pug2009 documento final

  • 1.
    Prêmio Universitário Felipe Gaúcho 2009 Aproximando a academia e o mercado Java do Ceará Fortaleza - Ceará Julho de 2010 Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 1
  • 2.
    "Se eu enxergueilonge, foi por ter subido nos ombros de gigantes.” – Isaac Newton Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 2
  • 3.
    Índice Patrocínio 4 Mudança do nome 5 O que é? 6 O que mudou no PUG 2009? 7 Critérios de avaliação 8 Banca avaliadora 11 Alunos x Instituições 17 Avaliadores x Estados 18 Trabalhos 19 Trabalhos 20 Trabalhos 21 Classificação final do PUG 2009 22 Avaliações 23 Pespectivas para o PUG 2010 82 Veracidade do documento 83 Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 3
  • 4.
    Patrocínio USIX Technology IVIA Empresa cearense que tem como Fundada em 1996, a IVIA é uma foco o mercado de seguradoras, empresa especializada em T.I, atuando com desenvolvimento atuando com software e serviços. de software. Certificada CMMI 2, MPS.BR E. Fortes Informática Atlântico Empresa pertencente ao Grupo É uma instituição de P&D que Fortes, 20 anos de atuação em provê soluções tecnológicas que T.I, desenvolvendo softwares nas geram valor em forma de áreas contábil, RH, etc. inovação. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 4
  • 5.
    Mudança do nome Em virtude do falecimento do Felipe Gaúcho, no dia 06 de março deste ano, a coordenação do CEJUG, em conjunto com seus conselheiros, alterou o nome do PUJ - Prêmio Universitário Java - para PUG - Prêmio Universitário Felipe Gaúcho, a fim de homenagear e imortalizar o criador do programa. Felipe Gaúcho, 1969 - 2010 Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 5
  • 6.
    O que é? Um dos objetivos do PUG é promover a sinergia entre academia e mercado de TI, permitindo que a produção universitária receba a avaliação de experientes profissionais de mercado. Esta avaliação, mais do que premiar um aluno, revela o quão próximo da realidade de mercado estão os cursos de graduação em TI no Ceará. O CEJUG não interfere nas notas e comentários entregues pelos avaliadores. Todas as informações fornecidas pelos avaliadores foram compiladas para facilitar a leitura dos dados e também para preservar os endereços de contato dos avaliadores. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 6
  • 7.
    O que mudouno PUG 2009? ‣ Categoria Mobile - uma categoria especial Java ME (Micro Edition) - a Sagarana está patrocinando uma categoria piloto em tecnologias JME. Esta categoria será avaliada para a inclusão oficial do JME no PUG a partir de sua quarta edição. ‣ Ranking CEJUG - a partir desta edição o PUG terá um ranking por universidades e por professores. ‣ Limite de trabalhos, que agora passa a ser no máximo 25 - para garantir a qualidade das avaliações. Se o número de submissões exceder este limite, uma banca especial escolherá os vinte cinco melhores trabalhos para a competição. ‣ Trabalhos em grupo passam a ser aceitos, mas o prêmio vai apenas para 1 aluno - o professor deve indicar na submissão quem é o autor principal do trabalho. ‣ Um aluno pode competir com apenas um trabalho - o aluno não pode submeter dois trabalhos no mesmo PUG. ‣ Professores não podem avaliar trabalhos das instituições de ensino onde trabalham. ‣ Alunos não podem avaliar trabalhos de alunos da mesma instituição onde estudam (seu colegas de faculdade). ‣ A melhor e a pior nota dos alunos serão eliminadas da competição, que terá a média final calculada por média harmônica com duas casas decimais. A nota mínima dos trabalhos será 1.00 e a nota máxima 10. ‣ As notas submetidas pelos avaliadores serão comparadas com as médias finais dos alunos, revelando quão longe da média cada avaliador ficou para cada trabalho. A idéia é extrair automaticamente dos resultados finais os avaliadores mais regulares da competição - um bom feedback aos avaliadores. ‣ Teremos prêmios para os 5 melhores trabalhos, e 1 prêmio para o professor do trabalho vencedor. Além disso, todos os participantes receberão certificados de participação no PUG 2009 (PDF assinado pelo Footprint). Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 7
  • 8.
    Critérios de avaliação Uma caraterística em jovens estudantes é associar a qualidade do que produzem a critérios individuais, associando a nota que recebem em pequenos detalhes – um ponto para pontualidade, um ponto para apresentação, outra para documentação, etc. Apesar de ser prática comum no ensino fundamental e ainda existir na avaliação de trabalhos em cursos de graduação, esta barganha de qualidade não sobrevive no mercado de software e não é prática comum nas empresas de Tecnologia da Informação. Quando empresas entregam produtos a clientes, o primeiro impacto sempre revela a satisfação do cliente com o produto que ele comprou, de acordo com a expectativa do contrato firmado entre o consumidor e o fornecedor. Se o cliente não ficar satisfeito com o resultado, dificilmente o fornecedor do software irá convencê­lo a mudar de opinião por detalhes internos da aplicação. No mercado de TI, os conceitos de bom e ruim sempre prevalecem sobre o detalhamento do que foi feito, e reconhecer este valor de mercado é um aprendizado duro que o aluno pratica ao competir no PUG. Baseado nesta premissa, o PUG procura renomados profissionais no mercado de TI e concede a estes profissionais o privilégio e a responsabilidade sobre a avaliação dos trabalho apresentados pelos alunos. Acreditamos fielmente que a visão de profissionais com vários anos de experiência no mercado de software é mais do que suficiente para uma avaliação justa de trabalhos acadêmicos. O CEJUG procurou também convidar para o PUG 2008 diversos profisionais de fora do Estado do Ceará, reforçando a imparcialidade na avaliação dos trabalhos – uma vez que a maioria destes profissionais não conhece as universidades e os alunos participantes do prêmio. Além de profissionais, os alunos competidores e seus professores também participam da avaliação ­ processo conhecido como revisão aos pares – pois acreditamos que ao avaliarem seus colegas os alunos amadurecem o senso crítico sobre qualidade de software e reconhecem em seus pares o contexto universitário onde estão inseridos. Os professores, por sua vez, avaliam a qualidade de software sob a ótica acadêmica, identificando o potencial educacional dos enunciados e o aprendizado dos alunos durante a execução dos trabalhos. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 8
  • 9.
    Apesar do PUGconcentrar a qualidade das avaliações na qualidade das pessoas, os avaliadores receberam como sugestão a lista de critérios abaixo. * Nenhum avaliador foi obrigado a seguir estes critérios, foram apenas sugestões, linhas gerais. ‣ Avaliação independente de tecnologias específicas: o avaliador deve evitar ao máximo associar as tecnologias utilizadas para realizar o trabalho à qualidade do trabalho. Trabalhos realizado com Swing/AWT, Servlet/JSP ou EJB3/JPA devem sofrer o mesmo olhar crítico, sem nenhuma qualificação a priori. O que está sendo avaliado é a qualidade do trabalho do aluno e a qualidade do enunciado. O PUG não tem nenhuma intenção de comparar ou avaliar as tecnologias utilizadas nos trabalhos – e o aluno, como futuro profissional, deve entender a qualidade de seu trabalho como algo associado a seu conhecimento e habilidade técnica, e nunca dependente de tecnologias ou ferramentas específicas. ‣ Qualidade acadêmica do trabalho: um ponto importante é o aprendizado do aluno durante a implementação do trabalho e a qualidade do enunciado. O quanto o trabalho permitiu ao aluno aprender é um quesito importante e reflete a qualidade do aluno e do professor. ‣ Forma e conteúdo: trabalhos com visual impressionante mas que dependem muito de frameworks ou bibliotecas devem ser avaliados com cautela e confrontados com trabalhos pobres visualmente mas que baseiam­se em projetos elaborados do ponto de vista de conhecimento emtecnologia da informação (algoritmos, estruturas de dados, técnicas de programação). A qualidade do que o aluno realmente aprendeu e produziu é mais relevante do que a qualidade visual que a tecnologia lhe permitiu – o conteúdo do trabalho é mais relevante que a forma do trabalho, mas ambos tem impacto na qualidade final do produto. ‣ Qualidade de software do mercado de TI: a avaliação deve também considerar o trabalho do aluno como um projeto de software comercial, identificando pontos onde o projeto seria mal avaliado por critérios de qualidade adotados pelas empresas de TI. Dentre os tópicos mais comuns, destacam­se: documentação, artefatos de distribuição (deployment), existência de testes unitários ou funcionais, organização do código fonte, comentários no código, uso correto de estruturas de dados e da API Java, etc. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 9
  • 10.
    ‣ IHC –Interação Humano­Computador: acabamento final e visual do trabalho – internacionalização, uso correto do português, das cores, distribuição dos componentes, etc. Se o trabalho não tiver interface gráfica, ou isso não for o mais importante no trabalho, ignore este quesito. ‣ Desempenho: considerando a função do trabalho, qual o seu desempenho, tamanho e número de dependências? Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 10
  • 11.
    Banca avaliadora Foram convidados 10 profissionais de mercado, além dos 8 alunos e seus professores. Infelizmente, apenas 3 professores puderam avaliar os trabalhos (40%) e apenas 1 aluno não entregou a sua avaliação, perdendo um ponto na média final. Profissionais possuem peso 7 e alunos possuem peso 1. Não foram consideradas as notas dos professores. O mini­currículo dos profissionais que entregaram as avaliações para o PUG 2009 estão enumerados na tabela abaixo: Adriano Almeida - Caelum - SP Página 10 Alexandre Gomes - SEA Tecnologia - InfoQ - DF Página 11 Cláudio Rocha - IVIA - CE Página 11 Fabiane Nardon - Zilics - JavaTools Community - SP Página 12 Hebert Aquino - BRQ - CE Página 12 João Victor - USIX - CE Página 13 Julio Viegas - SPC Brasil - Globalcode - SP Página 13 Loiane Groner - IBM - ESJUG - SP Página 14 Ricardo Ferreira - Red Hat / JBoss - SP Página 14 Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB Página 15 Nome Mini-currículo É bacharel em Sistemas de Informação pela Faculdade de Infor mática e Administração Paulista e possui as certificações SCJP e SCWCD. Desenvolve sistemas desde 2005 e é entusiasta Adriano Almeida práticas agéis de desenvolvimento, como testes unitários, integração contínua, pair programming entre outras. Atualmente é instrutor, desenvolvedor e consultor pela Caelum. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 11
  • 12.
    Nome Mini-currículo Mestre e Bacharel em Ciência da Computação pela Universidade de Brasília (2007, 2001); Diretor Técnico da SEA Tecnologia; Mais de 10 anos de experiência em arquitetura e desenvolvimento de software; Mais de 4 anos de experiência em gestão de projetos e liderança de equipes; Experiência em editorial de revistas e sites de conteúdo técnicos (MundoJava Alexandre Gomes e InfoQ); Instrutor de cursos oficiais da Sun Microsystems, SAP e RedHat/JBoss com centenas de horas ministrando treinamentos para a iniciativa pública e privada; Palestrante em dezenas de eventos tecnológicos nacionais e internacionais; Grande defensor da utilização de modelos colaborativos e ágeis para a gestão empresarial; Atualmente com pesquisas em modelos arquiteturais para a computação ubíqua. Graduado em Administração de Empresas, possui pouco mais de 9 anos de experiência em desenvolvimento de software na tecnologia Java. Trabalha Cláudio Rocha na Ivia desde 2005 tendo participado neste período em projetos Java para diversas instituições de variados portes. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 12
  • 13.
    Nome Mini-currículo Fabiane Bizinella Nardon é Mestre em Ciência da Computação pela UFRGS e Doutora em Sistemas Eletrônicos pela USP. Atuou em diversas instituições de grande porte, em projetos de larga escala e de grande impacto social, como o Sistema SIGA-Saúde, vencedor do Duke’s Choice Award’2005. Atualmente é Diretora de Tecnologia da Zilics, onde é responsável pelas definições tecnológicas em projetos na área de saúde, e líder do grupo de pesquisa de computação na nuvem do LSI/USP. Foi diretora de diversos grupos sem fins lucrativos, como o Capítulo Latino- Fabiane Nardon Americano do CORBAmed e a Sociedade Brasileira de Informática em Saúde, além de ter sido membro do OpenJDK Governance Board, o órgão responsável pela criação da constituição do Java Open Source. Atualmente é líder da JavaTools Community do Java.net, uma comunidade que réune mais de 800 projetos open source do mundo todo e membro do comitê arquitetural da Fundação OpenEHR. Recebeu o Special Jury Award no concurso Simagine’2006, em Barcelona, pela criação da aplicação Virtual Health Pet. Em 2006, foi apontada como Java Champion pela Sun Microsystems. Hebert de Aquino trabalha há 7 anos com desenvolvimento Java, com foco no desenvolvimento Java SE e Java EE. É bacharelado em Ciências da Computação e faz mestrado pela Universadade de Hebert Aquino Fortaleza (UNIFOR). Atualmente, trabalha como Arquiteto de Software na BRq e possui algumas certificações da Sun (SCJP, SCWCD, SCBCD, SCEA e SCMAD). Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 13
  • 14.
    Nome Mini-currículo Graduado em Informática pela Universidade de Fortaleza e Mestre em Administração de Empresas pela Universidade de Fortaleza (2006). Atualmente é o Gerente Técnico da Matriz da USIX Technology onde tem como principal responsabilidade a gestão de todo o Portfólio de Projetos e Operações. Possui certificações Project João Victor Management Professional (PMP) e Information Technology Infrastructure Library (ITIL). Têm experiência em gerenciamento de Prog ramas e Portfólio, atuando principalmente em projetos corporativos de g randes organizações, como Bradesco, SulAmérica Seguros, Brasil Veículos (Seguradora do Banco do Brasil) dentre outras. For mado em Desenvolvimento de Sistemas pela UNISUL, foi instrutor Java certificado pela Sun Microsystems. Possui mais de 10 anos de experiência na área de tecnologia como instrutor(ministra aulas de Java desde 2001), arquiteto, Julio Viegas consultor e desenvolvedor de sistemas de software. Colaborador ativo no RSJUG, XP-RS, CEJUG e outras comunidades. Possui as certificações SCJP 5, SCJA 1, SCEA 1 e 5, SCDJWS 1.4 e 5, SCWCD 1.4, SCBCD 5, Sun Certified Trainer. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 14
  • 15.
    Nome Mini-currículo Bacharel em Ciência da Computação, atua como IT Specialist num projeto internacional na IBM – Hortolândia-SP - voltado para a plataforma Java Web. Atua como embaixadora técnica e de relacionamento do IBM Academic Initiative. Coordenadora do ESJUG (Grupo de Usuários Java do Espírito Santo) e jug leader do CampinasJUG/ Loiane Groner Java Campinas (Grupo de Usuários Java de Campinas-SP e Região). Possui 4 anos de experiência na palataforma Java e experiência 2 anos como Teacher Assistant. Atuou por 2 anos como Delegada Estudantil da SBC (Sociedade Brasileira de Computação) na FAESA. Escreve sobre java e desenvolvimento no blog http://loiane.com e no blog em inglês http://loianegroner.com Ricardo Ferreira trabalha na JBoss, a divisão de Middleware da Red Hat atuando como Solutions Architect e como especialista em SOA e BPM. Possui mais de 12 anos de experiência na área de desenvolvimento de softwares, 8 destes anos dedicados a soluções em Java / JEE de missão crítica. É especialista em soluções de EAI e plataformas de negócios baseadas em BPM. Já esteve em diversos projetos SOA em empresas do governo, telecomunicações e construção civil Ricardo Ferreira liderando equipes em plataformas como Progress (Sonic), webMethods, BizTalk, AquaLogic e JBoss SOA Platform. É colunista da revista Mundo Java onde escreve periodicamente artigos sobre SOA e BPM na coluna "SOA na Prática". Além disso, possui diversas certificações de grandes players da indústria como Sun, IBM, Oracle e Borland, entre elas: SCEA, SCBCD, SCWCD, SCJP, IBM Certified SOA Solution Designer, IBM Certified RUP Solution Designer, Oracle SOA Architect Certified Expert e Borland JBuilder Certified Developer. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 15
  • 16.
    Nome Mini-currículo Possui graduação em Ciência da Computação pela Universidade Federal de Campina Grande (2003) e mestrado em informática pela Universidade Federal de Campina Grande (2005). Tem experiência na área de Ciência da Computação, com ênfase em Gerência de Serviços de TI e Engenharia de Software, atuando principalmente nos Rodrigo Rebouças seguintes temas: gerência de serviços orientada a negócios; gerência de mudanças em TI; ITIL; processos de desenvolvimento de software; engenharia de software; arquitetura de software. Atualmente é Analista de T.I e arquiteto de software da Dataprev, JUG Leader do PBJUG e co-fundador da Melon Tech. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 16
  • 17.
    Alunos x Instituições UFC IFCE FA7 UNIFOR IFCE UFC 2 2 FA7 1 UNIFOR 3 UFC - Universidade Federal do Ceará IFCE - Instituto Federal de Educação, Ciência e Tecnologia do Ceará FA7 - Faculdade 7 de Setembro UNIFOR - Universidade de Fortaleza Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 17
  • 18.
    Avaliadores x Estados CE SP DF PB CE 3 SP PB 5 1 DF 1 Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 18
  • 19.
    Trabalhos Brincadeira de criança IFCE Aluno: Marcos Paulo Professor: Fernando Parente C3U - Chat 3D Unifor UNIFOR Aluno: Daniel Valente Professor: Julio Guido Militão Codificação de Huff man FA7 Aluno: Francisco Jo sé de Lima Professor: Leonard o Holanda Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 19
  • 20.
    Trabalhos Gerenciador de Documentos UFC Aluno: Diego Aguiar Sousa Professor: Iális Cavalcante Indexador Semântico UNIFOR Aluno: Germano Duarte Professor: Raimundo Tales Labirinto Dinâmico c/ grafos UNIFOR Aluno: Carlos Albé rcio Maciel Professor: Rafael B arbosa Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 20
  • 21.
    Trabalhos Simulador de Árvore B+ em Java FX IFCE Aluno: Anderson de Matos Professor: Glauber Cintra Sistema de fretes UFC Aluno: Rafael Sales Professor: Vânia Ponte Vidal Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 21
  • 22.
    Classificação final doPUG 2009 O quadro abaixo apresenta a classificação final do PUG 2009: # Média Aluno Professor Instituição Daniel Valente de 1 8.84 Julio Guido Militão UNIFOR Macedo Francisco José de Leonardo Gomes de 2 7.78 FA7 Lima Holanda Carlos Albercio Maciel Rafael Garcia 3 7.26 UNIFOR Lopes Júnior Barbosa Marcos Paulo Souza 4 7.06 Fernando Parente IFCE Damasceno Germano Machado Raimundo Tales 5 6.8 UNIFOR Duarte Benigno Rocha Anderson Severo de Glauber Ferreira 6 6.7 IFCE Matos Cintra Rafael de Castro Vânia Maria Ponte 7 5.81 UFC Dantas Sales Vidal Iális Cavalcante de 8 5.75 Diego Aguiar Souza UFC/Sobral Paula Júnior Siglas: - 1º lugar - campeão - 2º lugar - 3º lugar - 4º lugar - 5º lugar Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 22
  • 23.
    Avaliações 1º - Daniel Valente de Macedo Campeão PUG 2009 Faculdade: UNIFOR Professor: Julio Guido Militão Média aritmética: 8,84 Link p/ o trabalho: http://tiny.cc/ue6gb Profissionais Nota Avaliação Adriano Almeida - Caelum - SP Excelente manual, muito completo e detalhado. O sistema funcionou sem problema nenhum em um MacOS, parabéns pela compatibilidade entre as diferentes plataformas, pois havia bibliotecas disponíveis. A qualidade da usabilidade do projeto é excepcional, fiquei realmente encantado. Sobre o código, pode-se melhorar alguns tratamentos de exceções, onde em várias lugares elas são perdidas. 9.5 O código está bastante simples e fácil de ler, expressividade no código é um fator que acho muito importante e seu código está expressivo em grande parte do projeto (mesmo usando Swing que é uma API que não favorece código expressivo). Parabéns novamente. A ideia simples de um chat via socket, que é algo que fazemos na Caelum no nosso curso básico de Java foi muito bem aplicada. Com certeza mostrarei esse projeto para meus alunos. Uma pena não ter testes unitarios. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 23
  • 24.
    Profissionais Nota Avaliação Alexandre Gomes - SEA Tecnologia - InfoQ - DF Impressionante resultado visual e com grande potencial de pesquisa e evolução pelas gerações subsequentes de estudantes. O código está simples e muito bem estruturado, o que reflete a clareza e sobriedade de idéias do aluno. Algumas observações, entretanto, se fazem necessárias para aperfeiçoamento deste futuro profissional. Atente-se ao português. Apesar de ter uma mensagem clara na documentação, o excesso de termos coloquiais e falhas constantes de concordância prejudicam a impressão final de um 10 contrante. Em projetos reais, se há alguma opção que não deve ser selecionada, não a disponibilize no projeto, como é o caso do checkbox 'Fullscreen' apresentado na incialização do jogo mas cuja seleção é proibida pela documentação. Em próximas oportunidades, revise a documentação após concluído todo o trabalho de desenvolvimento. Algumas instruções pareceram-me obsoletas (e.g., não existe o arquivo PUJ2009.zip para importação do projeto, as libs não vieram configuradas). Logging com System.out.println não é uma boa prática. O algoritmo de colisão com as coordenadas hard coded não poderia ser melhor flexibilizado? Cláudio Rocha - IVIA - CE O trabalho do Daniel utilizou um componente já recorrente em trabalhos com implementação que é o Chat porém incorporou à ele toda a interatividade da computação gráfica. A proposta ficou bem interessante. 9.4 Este trabalho foi implementado com o lado cliente e lado servidor. No lado cliente estava toda a lógica de apresentação gráfica, e o lado servidor que realizava o controle dos diálogos. Também houve a necessidade de se estabelecer um protocolo de comunicação para que os clientes pudessem reconhecer a ação executada pelo outro cliente. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 24
  • 25.
    Profissionais Nota Avaliação Fabiane Nardon - Zitrics - JavaTools Community - SP Infelizmente a aplicação não fornece um jar pronto para ser executado, o que facilitaria bastante a avaliação da ferramenta. O sistema fornece um arquivo .bat para execução, mas o mesmo não funciona por não existir o jar necessário. Lembre-se: facilitar o uso da aplicação é fundamental para você ter sucesso no seu 9 produto! Após instalar o Eclipse, as instruções estavam claras e precisas e foi muito fácil executar a aplicação. Gostei muito do cuidado com a interface, criando roupas para o PUJ, CEJUG, etc. Existe uma boa quantidade de JavaDoc no código, o que facilita o entendimento. De modo geral, o código está bem organizado e bem formulado. Hebert Aquino - BRQ - CE Excelente projeto com boa documentação porém não gerou o 9.8 Javadoc. Gerou uma vídeo-aula de como configurar a aplicação. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 25
  • 26.
    Profissionais Nota Avaliação João Victor - USIX Technology - CE Justificativa para a nota: O sistema apresentado é muito bom visualmente. Utilizou de um modismo tecnológico (Second Life) para desenvolver a aplicação. Consegue atender o propósito da ferramenta com muita clareza e praticidade e os comandos são bastante conhecidos para quem esta acostumado a jogar no micro. Outro ponto importante é a utilização de tecnologia 3D para aprimorar o aplicativo. Um ponto negativo foi não disponibilizar um “executável” para rodar a aplicação. A documentação do projeto esta excelente. Possui um vídeo explicativo para colocar a aplicação para funcionar, além de um tutorial escrito. A documentação cobre desde a preparação da 9.6 aplicação até o modo de utilização da mesma. Sobre o valor do projeto em relação ao mercado: A aplicação utiliza-se de um modismo tecnológico e pode ser explorado pelo mercado. O Chat pode ser aprimorado e ganhar espaço no mundo da tecnologia. Sendo ousado na opinião, poderemos num futuro próximo ter esse tipo de chat como o padrão de comunicação do mercado em substituição ao MSN, Gtalk e outros. Sobre os critérios de qualidade: A aplicação parece estável, porém não foi testada por múltiplos usuários, sendo assim, não se pôde avaliar a robustez do aplicativo. Provavelmente não se utilizou de ferramentas de PMD ou Findbugs , mas teve preocupação com warnings no código. Julio Viegas - SPC Brasil - Globalcode - SP Faltou melhorar a mobilidade. Pode ser trabalhado para se tornar 8.9 um jogo semelhante ao second life. Projeto com alto potencial de vendas e alta qualidade. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 26
  • 27.
    Profissionais Nota Avaliação Loiane Groner - IBM - ESJUG - SP UI bem finalizada, bom uso de Swing, aplicação bem intuitiva. Arquivo de instrução super claro e objetivo, bem detalhado, qualquer pessoa conseguiria fazer a instalação com um mínimo de conhecimento. Achei a idéia do vídeo-tutorial show de bola! Demonstrou bom uso de Sockets e da bilbioteca OpenGL. 9.5 Encontrado comparação de objetos com == em vez de .equals (má prática e não é correto: operador == entre objetos compara a referência e não o conteúdo/valores do objeto). Encontrado blocos catch vazios (muito feio!) – ao menos faça uso de impressão de stacktrace, ignorar uma exception é uma péssima prática! Pouco uso de interface de coleções. Exemplo: dê preferência para usar List nomeDoObj = new ArrayList(). Ricardo Ferreira - Red Hat / JBoss - SP Considerando que o trabalho do aluno começou com 10.0 pontos, houveram certos aspectos do trabalho que me fizeram destacar alguns destes pontos, decrementando o valor da nota para 9.25. Os aspectos avaliados foram: Faltou a criação de um laucher mais apropriado para executar o programa cliente e o programa servidor. Apesar da correta execução do projeto dentro do ambiente Eclipse, isso torna o aplicativo voltado para conhecedores da plataforma Java, o que compromete o requisito não funcional de usabilidade do software. Para este ponto, foi retirado 0.5 ponto. 9.25 Apesar de excelente aplicação do conceito de sockets Java para comunicação de processos via remoting, faltou alguma preocupação sobre como questõs de Threads e sockets usam recursos visuais do AWT. Nos testes efetuados, o cursor do mouse apresentou intermitências durante a execução, e alguns pequenos e rápidos congelamentos de tela ocorreram, talvez relacionados a como a biblioteca nativa se comporta com diversos threads acessando a API. Talvez o uso de uma lib visual mais "Thread- Safe" como o Swing poderia resolver o caso, mas acredito que a aplicação de AWT possa estar relacionada sobre como a dependência do framework lwjgl requer para funcionar. Para este ponto, foi retirado 0.25 ponto. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 27
  • 28.
    Profissionais Nota Avaliação Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB Meus critérios de avaliação: a) Facilidade de instalação e execução Script para execução do projeto apenas em .bat... (podia ter usado um script ANT, para que funcione no Linux ou MAC OS). Estou usando um MAC OS. Não consegui rodar o projeto. Tentei rodar no Linux. Também sem sucesso. Ter uma IDE como requisito de software para rodar o projeto também não é interessante. b) Qualidade do manual e material de documentação 8 Muito bom. c) Qualidade do código produzido (código e design do projeto) Evite usar System.out.println para imprimir as mensagens do sistema, dentro das classes do sistema. Parametrize a porta. Leia de um arquivo de configuração ou receba por parâmetro, na classe GameServer.java. Eu posso querer mudar esta porta e não quero alterar o código pra isso. ;-) Lógica do jogo muito misturada com elementos de interface. d) Inovação do projeto Muito bom. Alunos Nota Avaliação Anderson Severo de Matos - aluno IFCE O programa roda muito leve e causa excelente impressão. Um ponto muito ruim é a necessidade de utilizar o Eclipse para poder testar a aplicação, porém consegui rodar seguindo os passos do 8.25 tutorial apenas importando o arquivo .ZIP e executando as duas classes indicadas. Não cheguei a ter problema com vídeo, não sei em máquinas mais simples. Código extremamente organizado, provavelmente houve um ótimo trabalho de orientação por parte do professor. Ausência de javadoc. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 28
  • 29.
    Alunos Nota Avaliação Carlos Albercio Maciel - aluno UNIFOR Trabalho com documentação simples, mas objetiva. O trabalho 8 poderia ter ficado mais interessante se tivesse utilizado menos API já existentes que facilitam o trabalho, mas o mesmo ficaria árduo e não daria tempo de fazer devido ao espaço de tempo dado ao desenvolvido. Diego Aguiar Souza - aluno UFC/Sobral Um ótimo sistema, com uma boa interface. Faltou apenas a 9.5 documentação, muito embora o código esteja bem definido no quesito organização. Francisco José Lima - aluno FA7 Não possuo uma placa de aceleração gráfica para poder realizar o 1 teste. A execução do aplicativo deve ser independente do uso de IDE. Germano Machado Duarte - aluno UNIFOR 8 Trabalho com documentação simples, mas objetiva. A grande quantidade de API usada fez com que o trabalho perdesse seu valor, tirando um pouco o mérito do aluno. Marcos Paulo - aluno IFCE Considerações Positivas: Grande trabalho, de dar inveja a qualquer desenvolvedor, o resultado final ficou muito bom. Muito bem documentado, e o video também foi uma ótima idéia para facilitar a execução do programa, rodou perfeitamente no 8 Windows 7, um dos sistemas operacionais que testei. Considerações Negativas: Infelizmente não consegui fazê-lo executar no MacOS X Snow Leopard, nem no Ubuntu 9.10, não achei legal o fato do trabalho utilizar bibliotecas fora do Java, que são diferentes a cada SO. Rafael Sales - aluno UFC 1 Não entregou a avaliação. 2º - Francisco José de Lima vice-campeão PUG 2009 Faculdade: FA7 Professor: Leonardo Gomes de Holanda Média aritmética: 7,78 Link p/ o trabalho: http://tiny.cc/n07n2 Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 29
  • 30.
    Profissionais Nota Avaliação Adriano Almeida - Caelum - SP Muito legal a ideia do projeto. Sistema simples, funcionando e fácil de usar. Excelente. Parabéns por ter usado uma ferramenta (Ant) para facilitar o build do projeto. Muito boa a separação entre 9.2 Model, View e Controller na aplicação. No sistema existe uma classe chamada Referencia que está com código vazio. É isso mesmo? O sistema ficou muito bom, mas como eu garanto que as regras de negócio estão funcionando corretamente? O ideal é que existissem alguns testes unitários pelo menos para as lógicas mais complicadas. Muito bom projeto. Parabéns. Alexandre Gomes - SEA Tecnologia - InfoQ - DF A documentação do projeto está simples e objetiva. O assunto é extremamente enriquecedor para a vida profissional do aluno e um bom uso da tecnologia foi feito. Entretanto, ressalto alguns pontos que podem ser melhorados em novas oportunidades. Ao longo do desenvolvimento de qualquer projeto, é comum o acúmulo de códigos mal feitos e/ou desnecessários criados no 10 calor das emoções. Essas pendências, na linguagem comum, são conhecidas por débitos técnicos e devem ser rotineiramente eliminadas de seu código para o bem de sua clareza e facilidade de manutenção. No projeto submetido, encontra-se, por exemplo, uma classe Referencia que sequer possui conteúdo e, na classe Controle, o método getHuffman está disponível mas nunca foi usado. Ainda, num aparente preciosismo, ou over-engineering, temos a classe Tabela com a única responsabilidade de encapsular um atributo do tipo Map. ão seria excesso de capricho? Cláudio Rocha - IVIA - CE A aplicação disponibilizada pelo Francisco José é relativamente 9.8 pequena, porém seu código mostrou uma divisão de responsabilidades das classes em um nível adequado o que facilita sua leitura promovendo uma fácil manutenção. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 30
  • 31.
    Profissionais Nota Avaliação Fabiane Nardon - Zitrics - JavaTools Community - SP A documentação do projeto foi suficiente para instalar e executar o aplicativo. No código fonte, algumas classes não estão documentadas com JavaDoc. Os textos utilizados na aplicação estão hard coded e não internacionalizados. Seria mais adequado utilizar um resource bundle. Poderia haver um pouco mais de cuidado com a interface, pois em diferentes sistemas operacionais, os elementos da tela não ficam corretamente alinhados. 7 Senti falta de uma funcionalidade simples na interface que permitiria testar melhor o software: uma funcionalidade que permitisse abrir um arquivo já comprimido e pedir que seja feita a descompressão. Da forma como a aplicação foi organizada, a única forma de descomprimir um arquivo é antes comprimi-lo na mesma tela. A classe CodigoHuffman está implementada como um Singleton, mas para que a implementação seja realmente correta, deveria haver uma diretiva synchronized no método getInstance e a implementação de um construtor privado para evitar que exista mais de uma instância da classe criada. Hebert Aquino - BRQ - CE Javadoc - Faltou o Javadoc e não comentou todas as classes deixando a documentação pobre. 6 Aplicação - Criou uma classe Referencia sem necessidade. Deixo referencias do Svn dentro do código-fonte. Interface - Baixa usabilidade deveria ter criado um help colocou apenas um sobre o projeto. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 31
  • 32.
    Profissionais Nota Avaliação João Victor - USIX - CE Justificativa para a nota: Fez um excelente trabalho, porém poderia explorar melhor a interface para deixá-la mais intuitiva. Conseguiu comprovar a compressão e a descompressão dos arquivos o que valida o trabalho em termos práticos. Possui uma documentação bem simples, porém funcional. A forma de execução do aplicativo é bem fácil e rodou “out of the box”. Não possui javadoc do aplicativo. 7.3 Sobre o valor do projeto em relação ao mercado: O aplicativo implementa um algoritmo conhecido de compressão de dados. Sendo assim, possui pouco apelo no mercado. Caso o aplicativo implementasse um algoritmo inovador teria um enorme apelo, principalmente para grandes infra-estruturas onda o volume de dados armazenados são enormes. Sobre os critérios de qualidade: A aplicação parece ter sido escrita sem utilização de nenhuma IDE, utilizou-se apenas de um ant build para compilação. Diante disso, possui vários problemas de imports dentre outros e com certeza não passou PMD ou Findbugs. Julio Viegas - SPC Brasil - Globalcode - SP Já existem uma série de códigos disponíveis para tal, tornando a 5.2 exploração comercial inviável. Porém possui uma boa interface, na minha opinião. Possui um potencial de vendas baixo e uma qualidade média. Loiane Groner - IBM - ESJUG - SP Aplicação bem intuitiva, bom uso de Swing, arquivo de instrução claro e objetivo. Projeto é espelho do que se propõe a fazer. Fez uso correto do padrão de projeto utilizado. Uso correto de interfaces de coleções. 8.5 Projeto não possui documentação e não possui comentários ao longo do código. Achei alguns blocos de código repetidos, poderia ter criado métodos para reuso de código e facilitar uma manutenção futura (caso fosse necessário). Exemplo: métodos fromByteArray da classe Util (poderia ter feito cast do object e chamado o outro método). Quase todos os atributos das classes são public ou default. Não fez uso de encapsulamento. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 32
  • 33.
    Profissionais Nota Avaliação Ricardo Ferreira - Red Hat / JBoss - SP Considerando que o trabalho do aluno começou com 10.0 pontos, houveram certos aspectos do trabalho que me fizeram destacar alguns destes pontos, decrementando o valor da nota para 9.0. Os aspectos avaliados foram: O código do programa apresenta pouco controle de instâncias de objetos quanto as suas referências. Erros do tipo NullPointerException são considerados básicos demais para uma aplicação que está sendo distribuida e deverá ser usado em larga escala. No consegui avaliar se o programa dispara algum erro 9 desta natureza, mas pelo código fonte dá pra perceber que 'potencialmente' isso ocorrerá, o que me estimula a retirar 0.75 pontos do resultado final. Quando um projeto é mantido apenas por um programador, falhas como essa tendem a ser contornadas ou inibidas. Mas em um projeto onde vários programadores atuam no código fonte, este tipo de controle de código deve ser obrigatório. Documentação apresenta poucas instruções sobre questões de ambiente do programa. Não fala por exemplo que para executar o mesmo é necessário usar uma JVM versão 6.0 ou superior. Para este ponto, foi descontado 0.25 ponto. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 33
  • 34.
    Profissionais Nota Avaliação Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB Meus critérios de avaliação: a) Facilidade de instalação e execução Excelente. 1 click no codificacaohuffman.jar e voilá! b) Qualidade do manual e material de documentação Muito bom c) Qualidade do código produzido (código e design do projeto) Classe "Referencia.java" vazia. A classe "CodigoHuffman" era para ser um Singleton? private static CodigoHuffman instance = null; public static CodigoHuffman getInstance(){ if(instance == null) instance = new CodigoHuffman(); return instance; } 9 Tá faltando o construtor privado. Os métodos "main" e "getHuffman()" da classe "Controle" não estão sendo usados. Acertou na trave na implementação do controlador do MVC. A classe "Controle" deveria receber diretamente o evento do ActionListener. Ela deveria implementar "ActionListener" e ser adicionada como Listener do botão. Assim ela iria traduzir diretamente o evento da interface no evento do "modelo". É uma sugestão para você melhorar sua implementação do MVC. d) Inovação do projeto Baixa Em resumo, o projeto está bem documentado, não é um ótimo exercício de implementação do algoritmo de compressão, foi bem implementado. Só não é inovador por se tratar de um projeto de sala de aula, um exercício sobre a implementação do algoritmo. De fato, inovação não é objetivo da equipe. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 34
  • 35.
    Alunos Nota Avaliação Anderson Severo - aluno IFCE O software apresenta de forma direta a aplicação do algoritmo de 7.3 Huffman e explicita que não deve ser utilizado com propósito comercial ou mais sério. O desenvolvedor não forneceu javadoc. Exemplificação de conteúdo acadêmico incluindo menção do autor, no documento tutorial, de fontes sobre o assunto na Internet. Carlos Albercio - aluno UNIFOR O trabalho poderia ter ficado mais interessante se exibi-se algum percentual de andamento da compressão, pois ao selecionar um 7 arquivo de 28mb o mesmo ficou “travado” até que a compressão fosse concluída, sem contar que o mesmo não fez a compressão, não sei se deu algum erro durante o processo, pois o mesmo não apresentou nenhum resultado, assim imagino que a memória deve ter “estourado” ou algo do tipo. Daniel Valente - aluno UNIFOR Trabalho está bem legal e seu código também, porém a parte visual 7.5 poderia estar um pouco mais didática, como outros trabalhos do PUJ (Ex: o de grafos, árvores e SO). Diego Aguiar - aluno UFC/Sobral 8 Funciona conforme o esperado, contudo, comparado aos demais programas com uma boa GUI, este ficou devendo, além de possuir um botão sem nenhuma funcionalidade. Faltou a documentação. Germano Duarte - aluno UNIFOR 6 Ao selecionar um arquivo maior do que 10mb o sistema fica em espera até que a compressão for concluída. Seria interessante mostrar uma tela de status da compressão. Marcos Paulo - aluno IFCE Considerações Positivas: Bom programa didático, pode ser utilizado para demonstração da codificação de Huffman muito bem. Bom tutorial. 6 Considerações Negativas: Tem classes vazias no src, péssima, péssima, péssima utilização do swing, a interface ficou organizadinha mas o código está horrendo, não curto a filosofia drag and drop e acredito que possa ter sido utilizado nesse programa, pra mim, usar o swing na mão pode ser mais produtivo que o drag and drop se você utilizar bem. Levou nota porque em comparação. Rafael Sales - aluno UFC 1 Não entregou a avaliação. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 35
  • 36.
    3º - CarlosAlbercio Faculdade: UNIFOR Professor: Rafael Garcia Barbosa Média aritmética: 7,26 Link p/ o trabalho: http://tiny.cc/0uhak Profissionais Nota Avaliação Adriano Almeida - Caelum - SP Manual sucinto e direto. Código de algumas classes um pouco extensos e de leitura complicada. Algumas refatorações, como 7 extrações de métodos facilitariam a leitura do código. É preciso também tomar cuidado com os famosos números mágicos no meio do código. Boa usabilidade, mas visualmente poderia ser melhor trabalhado. Sistema simples e objetivo. Parabéns. Alexandre Gomes - SEA Tecnologia - InfoQ - DF Desde já, é importante que nossos futuros profissionais atentem-se aos detalhes estáticos de seus trabalhos. Apesar de completa e clara, a documentação poderia ter sido mais bem acabada. Infelizmente, nossa cultura ainda preconiza a forma sobre o conteúdo. Portanto, é importante que, ao se entregar qualquer produto final a clientes ou parceiros, atente-se aos ajustes finos que podem fazer a diferença para a primeira impressão (aquela que fica). 8 O projeto está funcional e desenvolve-se sobre a curiosa teoria dos grafos cuja complexidade no necessariamente precisa ser refletiva no código. No geral, observa-se métodos de longa extensão, com profundos níveis de aninhamento e carência de documentação não javadoc que dificultam sua compreensão imediata. Ademais, existem algumas dependências entre a lógica (Grafo) e a GUI (JFramePrincipal) que não é bem vista pela comunidade desenvolvedora. Cláudio Rocha - IVIA - CE Achei que a código poderia ter sido quebrado em um maior número 8.4 de classes de forma a facilitar a leitura e manutenção. De qualquer forma a proposta era muito boa e o Labirinto Dinâmico do Carlos Albércio estava muito fácil de instalar e possuía boa documentação. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 36
  • 37.
    Profissionais Nota Avaliação Fabiane Nardon - Zilics - JavaTools Community - SP A documentação estava concisa, mas suficiente para entender o sistema e utilizá-lo. A execução do sistema ocorreu sem problemas. A interface é simples, mas bem elaborada. 8 Nem todos os métodos possuem JavaDoc adequados, o que dificulta um pouco a compreensão do código. Algumas partes do código poderiam ter sido fatoradas em métodos para que o código ficasse mais organizado e sua manutenção mais fácil. Exemplo: no método Grafo.moverBoneco, o mesmo pedaço de código é repetido várias vezes, com pouca variação. Hebert Aquino - BRQ - CE Javadoc - Javadoc não foi gerado e não respeitou alguns code 8.5 conventions. Algumas classes não foram comentadas. Instruções foram simples deixando falhas. Bom Trabalho mas faltou alguns pequenos detalhes. João Victor - USIX - CE Justificativa para a nota: A aplicação parece bem interessante e fácil de usar. Não tem um visual muito agradável, mas para o jogo que se propõe ser atende ao nível mínimo de aparência. Vale salientar que a aplicação utilizou-se de swing com leiaute estático. Foi fácil colocar a aplicação para funcionar. Executou de forma “out of the box”, sem muita complicação. Possui dois manuais bem funcionais, porém ambos muito pobres em qualidade visual o que deixa transparecer que não houve cuidado ao criar os manuais. A aplicação não possui Javadoc para 7.3 deixa o código legível. Sobre o valor do projeto em relação ao mercado: É uma aplicação que pode ser comercializada como jogo para crianças. Bem fácil de ser entendida. Se refinada poderia ser mais um joginho no mercado. Porém, vale salientar que já existem joginhos dessa natureza. Sobre os critérios de qualidade: A aplicação utilizou-se de recursos de programação não muito recomendáveis, como java.util.Vector e muitos resources. Provavelmente não se utilizou de ferramentas de PMD ou Findbugs, porém nos teste a aplicação não travou. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 37
  • 38.
    Profissionais Nota Avaliação Julio Viegas - SPC Brasil - Globalcode - SP Faltaram alguns ajustes de interface. Pode ser comercializado como 7.5 biblioteca em algum engine de jogo. Possui um potencial de vendas médio e alta qualidade. Loiane Groner - IBM - ESJUG - SP Aplicação bem intuitiva, bom uso de Swing, arquivo de instrução claro e objetivo. Deixou o aprendizado sobre Grafos mais atrativo. Fez uso de documentação, mas poderia ter colocado alguns comentários dentro de métodos para facilitar entendimento de bloco de código. 8 Achei alguns blocos de código repetidos, poderia ter criado métodos para reuso de código e facilitar uma manutenção futura (caso fosse necessário). O FindBugs achou algumas linhas de código com Bad Practice, mas nada muito sério. O mais relevante que achei foi concatenação de Strings em loop com operador + - dê preferência a StringBuffer (só uma dica para melhorar a performance). Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 38
  • 39.
    Profissionais Nota Avaliação Ricardo Ferreira - Red Hat / JBoss - SP Considerando que o trabalho do aluno começou com 10.0 pontos, houveram certos aspectos do trabalho que me fizeram destacar alguns destes pontos, decrementando o valor da nota para 7.75. Os aspectos avaliados foram: 1) Documentação não cobre detalhes de execução e ambiente do programa. Um ponto por exemplo era explicitar que o programa necessita de uma JVM versão 6.0 ou superior. Ao tentar executar o programa de acordo com as instruções (Usando um JVM 5.0), tive um problema de classVersion logo de cara. Por conhecer Java, solucionei o problema, mas considerando uma pessoa que não é técnica, ela não consequiria executar o programa corretamente. Para este ponto, descontei 0.50 ponto. 2) O código do programa não oferece uma boa separação de camadas entre os componentes da camada de apresentação e os componentes do modelo. Como foi adotado um modelo baseado em 7.75 MVC, uma separação das dependências por meio de factories, interfaces e/ou Dependency Injection se faria necessário. Existem classes do modelo que possuem imports diretos para classes da camada de apresentação (Ex: import javax.swing.*) o que torna o código mais acoplado em dificil de manter. Para este ponto, descontei 1.0 ponto. 3) O código do programa apresenta pouco controle de instâncias de objetos quanto as suas referências. Erros do tipo NullPointerException são considerados básicos demais parauma aplicação que está sendo distribuida e deverá ser usado em larga escala. Não consegui avaliar se o programa dispara algum erro desta natureza, mas pelo código fonte dá pra perceber que 'potencialmente' isso ocorrerá, o que me estimula a retirar 0.75 pontos do resultado final. Quando um projeto é mantido apenas por um programador, falhas como essa tendem a ser contornadas ou inibidas. Mas em um projeto onde vários programadores atuam no código fonte, este tipo de controle de código deve ser obrigatório. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 39
  • 40.
    Profissionais Nota Avaliação Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB Meus critérios de avaliação: a) Facilidade de instalação e execução Excelente. Basta executar o JAR. 1 click. b) Qualidade do manual e material de documentação Não há documentação c) Qualidade do código produzido (código e design do projeto) 4 Ruim. JFramePrincipal é uma "GOD Class". O código que constrói e manipula a interface está todo misturado com o código da estrutura de dados. d) Inovação do projeto Baixa. Alunos Nota Avaliação Anderson Severo - aluno IFCE O software assim como o arquivo com as instruções são bem 8 simples, porém, claros e objetivos. Consegui executar sem problemas e o gerador de labirintos funcionou corretamente no que se propôs. O código me pareceu organizado e minimamente comentado. Ausência de javadoc. Daniel Valente - aluno UNIFOR Trabalho bem divertido de se usar e bem explicativo visualmente em relação ao objetivo do trabalho. Porém na parte do codigo acho 7.5 que poderia ter tido um menor acoplamento da estrutura de dados Grafo em relação a interface gráfica, podendo deixando ela independente da interface e possibilitanto o uso da mesma para outros objetivos. Diego Aguiar - aluno UFC/Sobral 9 O programa executou conforme o esperado, e possui um GUI muito amigável. Contudo, o autor ficou devendo na parte de documentação. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 40
  • 41.
    Alunos Nota Avaliação Francisco José de Lima - aluno FA7 Bom manual de instruções, pois é objetivo e claro. O aplicativo é de fácil inicialização. Boa interface gráfica, porém precisa de alguns ajustes para poder rodar em ambiente GNU/Linux. Interface intuitiva o que facita o entendimento. 7 Métodos comentados, porém poderia adicionar mais informações sobre o comportamento. Alguns métodos precisam de um "refactoring", pois estão muito grandes ou agregam funcionalidades que poderiam ser desacopladas. O programa atende ao que ele se propõe e não ocorre falhas. Boa escolha do tema, pois o aplicativo exige boa capacidade de raciocínio e criatividade. Germano Duarte - aluno UNIFOR 8 Trabalho bem estruturado com boa padronização e documentação do código. Interface simples e de fácil entendimento. Marcos Paulo - aluno IFCE Considerações Positivas: O Programa realmente faz o que propõe, bastante didático, bastante intuitivo, consegui fazê-lo funcionar sem precisar ler o manual. Javadoc bom se comparado ao dos outros ou ao meu mesmo. Considerações Negativas: Praticamente toda a lógica ficou em apenas uma classe com várias linhas, não achei que isso ficou legal. Além disso, a interface pareceu que ele fez sim a mão o que é bem legal, mas o código ficou horrível, colocou toda a interface 6 em apenas uma classe, podia ter extendido o FramePrincipal de Jframe e ter feito um sigleton utilizado ele na classe Grafo e separado alguns componentes que fossem ficar mais complexo em outras classes ou em até metódos, ao inves de sair inicializando-os e setando suas propriedades de uma formada jogada no código, também poderia ter feito uma classe interna para poder usar o ActionListener ao inves de inicializalo e implementar o método action performed como parametro do metodo addActionListener. Também podia ter feito uma classe de carregamento das imagens. Acredito que teria sido uma melhor prática e não precisava ser um mestre do swing para isso, são conceitos de OO que senti muita falta no software. Rafael Sales - aluno UFC Não entregou a avaliação. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 41
  • 42.
    4º - MarcosPaulo Souza Damasceno Faculdade: IFCE Professor: Fernando Parente Média aritmética: 7,06 Link p/ o trabalho: http://tiny.cc/auxz3 Profissionais Nota Avaliação Adriano Almeida - Caelum - SP Bem direto a execução do programa e a ideia de mostrar as Threads em execução com um exemplo bastante didático foi excelente. No entanto, o projeto pecou na usabilidade, por exemplo, após finalizar a definição da quantidade de usuários e do tempo e clicando em "Definir" a janela não é fechada. Com relação ao código, a API Swing é bastante poluída e nem sempre herdar dos componentes Swing são a melhor saída para conseguir um código 6.7 legível. Muitas vezes utilizar composição no lugar pode tornar o código mais simples. As variáves declaradas no programa são bem claras e o código está bem organizado. Outro ponto crítico é o tratamento das exceções. É imprescindível indicar ao usuário que algo está dando errado na sua aplicação. No entanto, com o tratamento através do System.out.println o usuário não sabe que a aplicação está com problemas, a não ser que ele tenha conhecimento suficiente para verificar o log da aplicação. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 42
  • 43.
    Profissionais Nota Avaliação Alexandre Gomes - SEA Tecnologia - InfoQ - DF A documentação está recheada de argumentos contra possíveis decepções da avaliação. A submissão do projeto nas vésperas do prazo, a pouca idade do estudante à época do desenvolvimento, a ausência de IDE e outros poréns não devem ser motivos para se tecer justificativas precipitadas do trabalho proposto. Nenhum desses argumentos aliviam o rigor da avaliação. Desculpar-se antes de se apresentar é uma tremenda gafe que deve ser evitada em todas as situações de nossas vidas. Um palestrante que começa uma palestra dizendo estar nervoso e que não conhece a fundo o assunto tem mil vezes mais chances de fracasso do que se tivesse administrado internamente suas fraquezas e tentado se superar silenciosamente. Mesmo no mercado de trabalho, por exemplo, é mais transparente e honroso assumir o não alcance dos objetivos iniciais e estabelecer novos prazos para sua realização do que tentar disfarçar uma produção aquém de seu potencial. Portanto, estudantes, desde já, ergam a cabeça, assumam o ônus de suas decisões e sigam adiante. 6 O funcionamento geral do sistema é adequado ao tema proposto, mas é importante observar regras básicas do desenvolvimento Java. Está fora do bom costume, por exemplo, a criação de classes com nomes iniciando por letras minúsculas (e.g. InterfacePrincipal.telaDefinicoes) e variáveis com nomes iniciando em letras maiúsculas (TelaInicia.Comeco). Também faz parte das boas práticas de projeto o desacoplamento máximo entre as camadas arquiteturais. No sistema entregue, entretanto, a classe Crianca, que representa a lógica do jogo, possui profundos laços de dependência com os painéis da camada de apresentação. A documentação parece ter sido concebida às pressas, pecando no português (e.g. durmindo) e com excesso de coloquialismos (e.g. 'Pronto, temos uma thread para cada criancÃßa e elas estarão ali brincando e tudo mais'). Durante a execução de uma amostragem com 5 crianças, 3 com bolas e 1 bola no cesto, os sistema parou com StackOverflowError. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 43
  • 44.
    Profissionais Nota Avaliação Cláudio Rocha - IVIA - CE O Marcos apresentou uma aplicação que aborda a utilização e controle de Threads. Sua app se mostrou fácil de instalar, com uma 10 boa granularidade na definição das classes exibindo uma boa divisão de responsabilidades. A forma/disposição na tela com que abordou o assunto também facilitou bastante o entendimento dos conceitos propostos. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 44
  • 45.
    Profissionais Nota Avaliação Fabiane Nardon - Zilics - JavaTools Community - SP Embora o autor tenha se preocupado em fazer uma documentação completa, sugiro um pouco mais de atenção ao texto, tanto no que se refere a erros de português quanto ao estilo da documentação. Sendo uma documentação de um software ou produto, deveria ser um pouco mais formal. Aparentemente a aplicação requer Java 6 para executar corretamente (apresentou erros em Java 1.5), mas esta informação não está presente da documentação. Em algumas situações, a aplicação apresentou java.lan g.NullPointerException durante a execução. Em termos de usabilidade, o fato de as definições serem zeradas a cada simulação é bastante inconveniente, pois obriga o usuário a refazer as definições a cada nova simulação. Nas minhas simulações, nem sempre o programa se comportou como descrito na documentação. Por exemplo, simulando 5 crianças, 2 crianças com bolas e 1 bola no cesto, com tempos de 5 segundos para brincar e 5 para descansar para todos, as crianças 6 nunca descansam. Parece que a aplicação fica paralizada em um certo ponto. Os textos utilizados na aplicação estão hard coded e não internacionalizados, o que não é adequado. Seria mais adequado que estes textos estivessem em bundles. O código está muito pouco documentado. Seria importante incluir javadocs nas classes. Nem todas as variáveis obedecem os padrões de nomenclatura. Existem variáveis com primeira letra maiúscula, por exemplo. Da mesma forma, nem todos os nomes de métodos obedecem estes padrões. O tratamento de exceções também não é adequado. Existem exceções que são escondidas por um try...catch sem log. Exemplo: veja método "Brincar". Como são usadas diversas variáveis estáticas, é necessário avaliar onde colocar a diretiva synchronized para evitar conflitos. Um ponto a destacar é que a lógica está separada da camada de apresentação, o que é um bom princípio. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 45
  • 46.
    Profissionais Nota Avaliação Hebert Aquino - BRQ - CE Javadoc - Documentação Pobre, não informa o que faz cada classe e método, baixa legibilidade do código fonte não respeita alguns java code convetions. 7 Interface pouco intuitiva o botão começar veio antes das definições. Na criação da criança já deveria ser informada o intervalo de tempo. João Victor - USIX - CE Justificativa para a nota: O sistema apresentado é relativamente usual. O layout não deixa claro alguns detalhes do funcionamento do aplicativo. A aplicação fez o que se propõe a fazer, porém o funcionamento é bem simplista. A documentação é bem pobre e deixa muito a desejar. O javadoc só possui casca, não possui comentários. Aparentemente gerou o javadoc sem a preocupação de fazê-lo entendível. 6.5 Sobre o valor do projeto em relação ao mercado: A aplicação tem pouquíssimo apelo no mercado, pelo fato de ser um simulador e possuir algoritmos clássicos de produtor consumidor. Sobre os critérios de qualidade: A aplicação não parou de funcionar em nenhum teste e suportou vários cenários. Não se utilizou de PMD e FindBugs além de não se preocupar em documentar as classes métodos e etc. Julio Viegas - SPC Brasil - Globalcode - SP Única aplicação comercial se for usado como suporte ao 6.5 aprendizado. Qualidade gráfica boa. O programa funcionou bem. Baixo potencial de vendas e qualidade média. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 46
  • 47.
    Profissionais Nota Avaliação Loiane Groner - IBM - ESJUG - SP Aplicação bem intuitiva, UI com alertas e validação, bom uso de Swing, arquivo de instrução claro e objetivo. Deixou o aprendizado de Threads bem divertido. Projeto não possui documentação e não possui comentários ao longo do código. Encontrado comparação de Strings com == em vez de .equals (má prática e não é correto: operador == entre objetos compara a referência e não o conteúdo/valores do objeto). Encontrado variáveis e atributos iniciadas com letra maiúscula (não é erro, mas 8.5 não está dentro do padrão de convenção do java).Encontrado alguns atributos com modificador default. Poderia ter declarado como private para o uso de encapsulamento, como utilizado em atributos de outras classes. Encontrado comandos vazios (apenas ; no código) - ocorreu muito após bloco catch. Chamada do método getFrame da classe TelaInicial - seria interessante fazer o uso do pattern singleton adequadamente nesse caso, já que o atributo Comeco é private static. Encontrado blocos catch vazios (muito feio!) – ao menos faça uso de impressão de stack trace, ignorar uma exception é uma péssima prática! Ricardo Ferreira - Red Hat / JBoss - SP Considerando que o trabalho do aluno começou com 10.0 pontos, houveram certos aspectos do trabalho que me fizeram destacar alguns destes pontos, decrementando o valor da nota para 8.25. Os aspectos avaliados foram: 1) O código do programa apresenta pouco controle de instâncias de objetos quanto as suas referências. Erros do tipo NullPointerException são considerados básicos demais para uma aplicação que está sendo distribuida e deverá ser usado em larga escala. Não consegui avaliar se o programa dispara algum erro 8.25 desta natureza, mas pelo código fonte dá pra perceber que 'potencialmente' isso ocorrerá, o que me estimula a retirar 0.75 pontos do resultado final. Quando um projeto é mantido apenas por um programador, falhas como essa tendem a ser contornadas ou inibidas. Mas em um projeto onde vários programadores atuam no código fonte, este tipo de controle de código deve ser obrigatório. 2) Código com pouca organização de camadas e excesso de dependências entre os componentes. Para este quesito, foi descontado 1.0 ponto. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 47
  • 48.
    Profissionais Nota Avaliação Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB Meus critérios de avaliação: a) Facilidade de instalação e execução Excelente. 1 click no jar. b) Qualidade do manual e material de documentação Ruim c) Qualidade do código produzido (código e design do projeto) Algumas variáveis com letra maiúscula, classes com letra minúscula. 8 A classe "teste" em "PBrincadeiraDeCrianca.java" não tem um bom nome. As variáveis com uma letra dificultam a leitura do código, como "c", "b", "a". A classe "Crianca" acessa a classe "PLogCesto", criando acoplamento entre lógica e elemento de interface. Apesar destes pequenos detalhes, o código está bem estruturado, no geral. d) Inovação do projeto Bom Alunos Nota Avaliação Anderson Severo - aluno IFCE O programa tinha grande potencial de apresentar uma interface gráfica mais rica e/ou intuitiva. O código está imaturo em relação aos outros trabalhos 7.5 apresentados (nomes de métodos, atributos, classes internas), mas a simulação corre sem problemas. Com tempo e um pouco de atenção é possível observar o comportamento das imagens(segundo definido) e entendê-las como Threads. Javadoc apresentado. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 48
  • 49.
    Alunos Nota Avaliação Carlos Albercio - aluno UNIFOR A tela ficou meio deformada, não dando pra ver todos os componentes do sistema e a parte do log poderia ter uma auto- rolagem” para que o usuário não tivesse que ficar baixando o log manualmente para poder entender o que esta acontecendo no sistema. Algumas mensagens de erro poderia explicar melhor o que 6.5 aconteceu para que ela fosse exibida, como por exemplo quando aperta o botão começar sem ter criado alguma criança, diz algo como “que as crianças podem ter sido criadas, mas os tempo não terem sido definidos e que tem que certificar-se de criar as crianças e definir seus tempos”, invés disso poderia simplesmente informar que nenhuma criança foi criada. Alguns padrões de criação de variáveis e métodos não foram seguidos, alguns começam com letra maiúscula e o código está pouco documentado. Daniel Valente - aluno UNIFOR Poderia ter tido um pouco mais de trabalho na estruturação do 8 código, porém já foi justificado no próprio documento auxiliar um dos motivos. Mas o objetivo final foi bem realizado com uma representação visual de uma forma bem intuitiva e didática. Diego Aguiar - aluno UFC/Sobral Funcionou conforme o esperado, exceto pelo fato de as threads 7 entrarem em deadlock em alguns testes e o programa não fazer um tratamento adequado, ou exibir alguma mensagem. Não possui documentação, embora possua um bom tutorial. Francisco José - aluno FA7 Pouca documentação. O aplicativo é de fácil inicialização. Boa interface gráfica, porém apresentando uma falha na renderização do cesto. Interface intuitiva o que facita o 4 entendimento. Métodos sem comentáros. O programa não esta funcionando como informado no manual de instruções, após as bolas serem guardadas no cesto a criança que ficou esperando não pegou a bola no cesto. Germano Duarte - aluno UNIFOR Dificuldade para ver todos os componentes do sistema e a parte do 5.5 log poderia ter uma auto- rolagem”. Mensagens de erro com textos de difícil entendimento. Alguns padrões de criação de variáveis e métodos não foram seguidos, alguns começam com letra maiúscula e o código está pouco documentado. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 49
  • 50.
    Alunos Nota Avaliação Rafael Sales - aluno UFC 1 Não entregou a avaliação. 5º - Germano Machado Duarte Faculdade: UNIFOR Professor: Raimundo Tales Benigno Média aritmética: 6,8 Link p/ o trabalho: http://tiny.cc/n1g7f Profissionais Nota Avaliação Adriano Almeida - Caelum - SP Muito bom tema. O aluno fez bom uso do JSF e de CSS. Código enxuto e simples de ler. Ajustes como conditional comments para usuários de internet explorer são sempre bem vindos (vale estudar graceful degradation). 8.5 O Lucene hoje em dia é uma das ferramentas mais utilizadas nas empreas para fazer buscas textuais. Muitos (eu inclusive) reclamam da complexidade de sua API e configurações que devem ser feitas quando se precisa de um ajuste mais fino. Nesse caso, existem ferramentas que te auxiliam, como o Hibernate Search ou o Solr, que eu recomendo ao aluno estudar. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 50
  • 51.
    Profissionais Nota Avaliação Alexandre Gomes - SEA Tecnologia - InfoQ - DF Trata-se de um dos conteúdos submetidos mais avançados e cujo domínio teórico e prático tem grandes potenciais de distinção profissional. A documentação está bem escrita, mas carece de instruções sobre o uso da interface Web (como indexar, como pesquisar). No aplicativo, nenhuma URL pode ser indexada, por ausência da biblioteca ICU [1]. Ao se realizar o download manual da citada lib, outra dependência insatisfeita é revelada [2]. Se nenhuma URL é informada, uma StringIndexOutOfBoundsException é lançada. Infelizmente, com todos esses problemas, tornou-se inviável a 1 avaliação de tão promissor trabalho. [1] javax.servlet.ServletException: #{servidorBean.indexarPagina}: java.lang.NoClassDefFoundError: com/ibm/icu/text/ StringPrepParseException javax.faces.webapp.FacesServlet.service(FacesServlet.java: 277) [2] javax.servlet.ServletException: #{servidorBean.indexarPagina}: java.lang.NoClassDefFoundError: Could not initialize class com.hp.hpl.jena.iri.IRIFactory j ava x . f a c e s . w e b a p p. Fa c e s S e r v l e t . s e r v i c e (FacesServlet.java:277) Cláudio Rocha - IVIA - CE Instalei a app no Tomcat 6.0.26 (que acabara de baixar da Apache) conforme as instruções e acessei-a no endereço indicado. Quando fui interagir com a funcionalidade de indexação o browser acusou uma 7.7 java.lang.NoClassDefFoundError: com/ibm/icu/text/ StringPrepParseException. Em outro momento apareceu um outro stacktrace na página acusando o erro java.lang.NoClassDefFoundError: Could not initialize class com.hp.hpl.jena.iri.IRIFactory. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 51
  • 52.
    Profissionais Nota Avaliação Fabiane Nardon - Zilics - JavaTools Community - SP A execução do programa falhou por falta da biblioteca icu4j-3.4.4.jar e só foi possível testar a aplicação depois de depurar o código e descobrir o que estava faltando. Cuidado ao distribuir suas aplicações! Um usuário normal provavelmente teria desistido de testar sua aplicação no primeiro erro. Os testes foram realizados em um Tomcat 6, sem nenhuma configuração adicional, conforme instruções de instalação. Cuidado na utilização de marcas. Você provavelmente não poderia usar o nome "Google" na sua aplicação (a menos que você tenha tido autorização do Google para isso). As classes precisam ser melhor documentadas: falta Javadoc em muitas delas. Tome cuidado com alguns elementos que podem prejudicar muito a 8.5 performance da sua aplicação. A aplicação criada pode manipular uma grande quantidade de dados e performance neste caso é muito importante. Um exemplo: tente não criar objetos que poderiam ser reaproveitados dentro de laços. No método OntologyClass.createIndex, um DecimalFormat é criado com a mesma definição a cada iteração do laço. Tente fazer este tipo de criação de objetos fora do laço e você terá ganhos significativos de performance. Na aplicação, o botão Listar Primeiros está sem ação. A aplicação faz uma boa separação entre camadas, implementando o modelo MVC. A escolha do tema do trabalho é interessante e apresenta um bom nível de complexidade, trabalhando com diversas tecnologias diferentes e algumas delas não usuais. Hebert Aquino - BRQ - CE Javadoc - Faltou o Javadoc e não comentou todas as classes 8 deixando a documentação pobre. Apenas criou um documento do que estava sendo feito. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 52
  • 53.
    Profissionais Nota Avaliação João Victor - USIX - CE Justificativa para a nota: Infelizmente não rodou, sendo assim, não consegui comprovar a utilização e a veracidade da aplicação. Apesar de não conseguir executar a aplicação a mesma parece esta bem escrita. O WAR estava faltando uma dependência que foi necessária baixar: http://dev.eclipse.org/viewsvn/index.cgi/org.eclipse.sdk- feature/plugins/com.ibm.icu/ Possui pouca documentação, mas parece esta bem estruturada. Possui descrição do Javadoc incompleta. 6 Sobre o valor do projeto em relação ao mercado: É uma aplicação de grande valor de mercado, pois a medida que a tecnologia se desenvolve, cada vez mais arquivos são compartilhados no mundo e a dificuldade e encontrá-los passa a ser crítica já que o tempo esta cada vez mais concorrido. Sobre os critérios de qualidade: A aplicação pecou por não funcionar e por faltar biblioteca no war. Possui javadoc incompleto, mas ap arent ement e o cód i g o p rod uz i d o é b em p rofi ssi onal . Aparentemente não utilizou-se de PMD e Findbugs. Julio Viegas - SPC Brasil - Globalcode - SP Tive problemas de setup não explicados na documentação. Sem 6.9 diferenciais que poderiam ser atrativos na comercialização, porém poderia ser utilizado como uma máquina de busca de um site. Potencial de vendas médio e qualidade média. Loiane Groner - IBM - ESJUG - SP UI bem limpa, JSPs com código limpo e bem organizado. Arquivo de instrução claro e objetivo. Trabalho bem interessante e interessante o fato de ter juntado conhecimento acadêmico com framework 9 utilizado pelo mercado. Fez bom uso do framework. Fez uso de documentação em algumas classes e alguns métodos. Alguns em português e outros em inglês (é bom seguir um padrão). Poderia ter adicionado mais comentários ao longo do código. Foram encontradas algumas Bad Practices, mas nada assustador. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 53
  • 54.
    Profissionais Nota Avaliação Ricardo Ferreira - Red Hat / JBoss - SP Considerando que o trabalho do aluno começou com 10.0 pontos, houveram certos aspectos do trabalho que me fizeram destacar alguns destes pontos, decrementando o valor da nota para 7.25. Os aspectos avaliados foram: 1) Apesar da aplicação não apresentar problemas na hora do deployment, durante a execução do programa, ocorreu um erro grave na hora de realizar uma indexação de uma URL. Ao entrar com a URL a clicar no botão "Indexar", ocorreu o seguinte erro: javax.faces.FacesException: #{servidorBean.indexarPagina}: java.lang.NoClassDefFoundError: com/ibm/icu/text/ StringPrepParseException Como o problema está relacionado a uma questão básica de 7.25 dependências de arquivos JAR, foi decontado 2.0 do candidato principalmente por se tratar de uma funcionalidade que é principal para a solução. 2) O código do programa apresenta pouco controle de instâncias de objetos quanto as suas referências. Erros do tipo NullPointerException são considerados básicos demais para uma aplicação que está sendo distribuida e deverá ser usado em larga escala. Não consegui avaliar se o programa dispara algum erro desta natureza, mas pelo código fonte dá pra perceber que 'potencialmente' isso ocorrerá, o que me estimula a retirar 0.75 pontos do resultado final. Quando um projeto é mantido apenas por um programador, falhas como essa tendem a ser contornadas ou inibidas. Mas em um projeto onde vários programadores atuam no código fonte, este tipo de controle de código deve ser obrigatório. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 54
  • 55.
    Profissionais Nota Avaliação Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB Meus critérios de avaliação: a) Facilidade de instalação e execução Estava indo tudo perfeito. Copiei o .war para meu diretório webapps. O Tomcat fez o deployment da aplicação. Acessei, vi a interface. Cliquei no link "server" e mandei indexar minha página. Inseri a URL da minha página, OK e então veio o erro. Por acaso faltou alguma biblioteca JSF no lib de dentro do WAR? 9 b) Qualidade do manual e material de documentação Muito bom c) Qualidade do código produzido (código e design do projeto) Muito boa. Sugestão: Use o logger do container para imprimir as mensagens de erro das exceções. Evite o clássico "printStackTrace()". Use o método "log()" do ServletContext. d) Inovação do projeto MUITO BOM Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 55
  • 56.
    Alunos Notas Avaliação Anderson Severo - aluno IFCE Não consegui usar o software. Para as tentativas de busca, sempre resultados vazios e para as tentativas de indexação, sempre ocorreu javax.servlet.ServletException: # 1 {servidorBean.indexarPagina}:java.lang.NullPointerExcepti on O manual não foi suficiente para iniciar o uso com sucesso. Não há como dar nota. Carlos Albercio - aluno UNIFOR Trabalho bem implementado com bom nível de complexidade, 8.5 mesmo que utilizando o Lucene para a implementação do trabalho, porém a organização do código poderia ter ficado melhor, tendo uma melhor distribuição dos arquivos nos pacotes. Daniel Valente - aluno UNIFOR Trabalho bem interessante e bem elaborado. PorÈm durante meus 8 testes ocorreram alguns erros, mas como nao sei se foi problema de ambiente, julguei pelo cÛdigo e objetivo do trabalho. Diego Aguiar - aluno UFC/Sobral 5 Não consegui executar o programa, mesmo com as instruções fornecidas. Possui uma boa documentação e um bom tutorial. Francisco José de Lima - aluno FA7 O programa não se comportou como descrito no manual do usuário. 1 A instação do software ocorreu com sucesso, porém a pesquisa não funcionou e ao clicar em servidor e depois em indexar ocorreu uma falha no sistema. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 56
  • 57.
    Alunos Notas Avaliação Marcos Paulo - aluno IFCE Considerações positivas: Bom assunto, interessante, pareceu que o aluno teve que fazer uma boa pesquisa sobre para poder desenvolver a aplicação o que é bem legal. Considerações negativas: O programa rodou mas não fez seu papel, pelo menos não no meu computador, pode ser algum problema de configuração... não sei... to mandando o printscreen pra ver como é verdade... 7 ! Rafael Sales - aluno UFC 1 Não entregou a avaliação. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 57
  • 58.
    6º - AndersonSevero de Matos Faculdade: IFCE Professor: Glauber Ferreira Cintra Média aritmética: 6,7 Link p/ o trabalho: http://tiny.cc/8j3yt Profissionais Nota Avaliação Adriano Almeida - Caelum - SP Ao executar o jnlp lança uma exceção indicando que nao foi possível baixar um arquivo: com.sun.deploy.net.FailedDownloadException: Impossible de charger la ressource : file:SimuladorArvoreBeMaisFX.jnlp at com.sun.deploy.net.DownloadEngine.actionDownload (DownloadEngine.java:1347) at com.sun.deploy.net.DownloadEngine.getCacheEntry (DownloadEngine.java:1487) at com.sun.deploy.net.DownloadEngine.getCacheEntry (DownloadEngine.java:1465) a t com.sun.deploy.net.DownloadEngine.getResourceCacheEntry (DownloadEngine.java:1568) a t 1 com.sun.deploy.net.DownloadEngine.getResourceCacheEntry (DownloadEngine.java:1496) at com.sun.deploy.net.DownloadEngine.getResource (DownloadEngine.java:217) at com.sun.deploy.net.DownloadEngine.getResource (DownloadEngine.java:201) at com.sun.javaws.Launcher.updateFinalLaunchDesc (Launcher.java:447) at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java: 232) at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java: 211) at com.sun.javaws.Launcher.launch(Launcher.java:104) at com.sun.javaws.Main.launchApp(Main.java:405) at com.sun.javaws.Main.continueInSecureThread(Main.java: 252) at com.sun.javaws.Main$1.run(Main.java:111) at java.lang.Thread.run(Thread.java:613) Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 58
  • 59.
    Profissionais Nota Avaliação Alexandre Gomes - SEA Tecnologia - InfoQ - DF Trabalho muito bem acabado com ótima apresentação final e organização dos deliverables. Muito boa a seleção do tema de trabalho. Apesar de ignorados por grande parte dos alunos, conceitos como esses são utilizados nos mais modernos sistemas de arquivos e nos principais SGBDs de mercado e a bagagem teórica adquirida tem o potencial para ser o diferencial competitivo do futuro profissional. 10 A tecnologia utilizada teve papel papel fundamental para a realização visual da proposta. Entretanto, alguns de seus recursos poderiam ter sido melhor explorados. Por exemplo, Resource Bundles poderiam ter sido utilizados no lugar da classe Mensagens.java e excesso de indireções evitados, como no método Util.converterNumero, que cria um nível extra de projeto sem qualquer agregação de valor. Cláudio Rocha - IVIA - CE O Projeto do Anderson estava muito bem documentado. Inclusive 9.2 foi o único projeto que enviou diagramas de classe para expor em alto nível como estava organizada a aplicação. O tema do trabalho também foi muito importante para a nota dada. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 59
  • 60.
    Profissionais Nota Avaliação Fabiane Nardon - Zilics - JavaTools Community - SP Houve dificuldade para executar a aplicação, sendo que só foi possível executá-la corretamente depois de fazer alguns ajustes no arquivo jnlp. Talvez os erros gerados sejam resultantes do fato de que os testes foram feitos em um MacOSX e não em um computador Windows, onde a aplicação foi originalmente desenvolvida. As strings do projeto estão "hard coded" e não armazenadas em bundles externos, o que não é recomendável. Inclusive, a compilação do projeto falhou porque o compilador não reconhecia alguns caracteres acentuados (note que o teste foi realizado em um MacOSX que usa um encoding diferente do Windows). O código teve que ser modificado para que pudesse ser compilado. 8 Ao executar a aplicação, as imagens no formato PNG não eram carregadas por algum motivo (ocorria uma exceção ao carregá-las). Para contornar o problema, as imagens foram transformadas em GIF e só então foi possível executar a aplicação. Em geral, o código está bem organizado e fácil de entender. As classes Java possuem boa documentação, mas senti falta de um pouco mais de documentação nos arquivos JavaFx. O manual do sistema está bem escrito e fácil de entender. Uma sugestão que tornaria o código melhor seria uma separação entre a camada de apresentação e a camada de lógica e armazenamento de dados. Da forma como a aplicação foi organizada, os dados e a lógica estão misturados com a camada de apresentação, o que, em grandes aplicações, é problemático. Hebert Aquino - BRQ - CE Javadoc - Não tinha informações sobre o que cada método fazia, boa documentação mas faltou essa informação. Bug - Aplicação não diferencia valor em branco de campo numérico. 8 Erro - Ao iniciar a aplicação, rodei a primeira vez mas a segunda vez deu erro ao iniciar a aplicação. Se for clicado no Atalho do JavaWeb Start só funciona quando é clicado no arquivo .jnlp Os erros e acertos não foram colocados no painel de Erros e Log. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 60
  • 61.
    Profissionais Nota Avaliação João Victor - USIX - CE Justificativa para a nota: O Sistema apresentado é bem usual. Consegue deixar claro a simulação dos conceitos da árvore B+. Tem um visual agradável, porém como foi desenvolvido em javafx não deve ter despendido muito esforço de programação. Outro ponto importante que vale ser ressaltando é a utilização do Java Webstart , onde para colocar a aplicação para funcionar foi muito fácil. Possui uma boa documentação onde explica o funcionamento da aplicação e como fazê-la funcionar. Além disso, as classes estão com o javadoc feitos, porém o mesmo não foi gerado. Gerou o 8.5 Javadoc com estilo Javafx. Sobre o valor do projeto em relação ao mercado: Infelizmente a aplicação não tem valor de mercado, pois esse algoritmo já é implementado em sistemas de banco de dados e aplicações comerciais utilizam esse recurso através dos bancos. Porém, academicamente é uma excelente ferramenta de estudo. Sobre os critérios de qualidade: A aplicação parece bem escrita e possui dois diagramas da UML na documentação. Nos testes realizados a aplicação não travou ou parou de funcionar. Provavelmente não se utilizou de ferramentas de PMD ou Findbugs , mas teve preocupação com warnings no código. Julio Viegas - SPC Brasil - Globalcode - SP Interface um pouco confusa e baixo potencial comercial. Talvez 4.5 pudesse ser vendido como aplicativo de suporte ao aprendizado. Potencial de vendas baixo e qualidade média. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 61
  • 62.
    Profissionais Nota Avaliação Loiane Groner - IBM - ESJUG - SP UI bem finalizada, uso de FX, arquivo de instrução claro e objetivo. Precisei ler o arquivo de instrução para executar a aplicação. Não sei se é a minha máquina, mas quando tentava inserir ou buscar algum nó na árvore, demora bastante (uns 5 segundos). Aplicação demonstra o uso de Árvore B+ como proposto. 8.5 Fez uso de documentação, código FX bem comentado – ficou intuitivo para quem não conhece a tecnologia e for olhar o código. Achei bem interessante a idéia de usar FX, pois pode relacionar o conhecimento adquirido em sala de aula com uma tecnologia recente do mercado. A Bad Practice mais relevante que achei foi concatenação de Strings em loop com operador + - dê preferência a StringBuffer (só uma dica para melhorar a performance). Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 62
  • 63.
    Profissionais Nota Avaliação Ricardo Ferreira - Red Hat / JBoss - SP Considerando que o trabalho do aluno começou com 10.0 pontos, houveram certos aspectos do trabalho que me fizeram destacar alguns destes pontos, decrementando o valor da nota para 6.5. Os aspectos avaliados foram: 1) A aplicação não executou corretamente em meu computador. O sistema operacional utilizado foi o Fedora 12 64 bits com interface gráfica baseada em Gnome. Tive o JDK 6.20 na máquina com JavaFX 1.3. Mesmo executando passo a passo as instruções fornecidas pelo documento, ocorre um erro no programa ao abrir a tela principal, dizendo que um arquivo não foi encontrado. Neste caso, questões como testes em ambientes diversos foram ignorados: A impressão é que o candidato testou o aplicativo 6.25 apenas no sistema operacional Windows. Como o aplicativo é baseado em arquitetura FatClient, haveria de se fazer necessário mais testes em ambientes como 3.0 pontos. 2) O código do programa apresenta pouco controle de instâncias de objetos quanto as suas referências. Erros do tipo NullPointerException são considerados básicos demais para uma aplicação que está sendo distribuida e deverá ser usado em larga escala. Não consegui avaliar se o programa dispara algum erro desta natureza, mas pelo código fonte dá pra perceber que 'potencialmente' isso ocorrerá, o que me estimula a retirar 0.75 pontos do resultado final. Quando um projeto é mantido apenas por um programador, falhas como essa tendem a ser contornadas ou inibidas. Mas em um projeto onde vários programadores atuam no código fonte, este tipo de controle de código deve ser obrigatório. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 63
  • 64.
    Profissionais Nota Avaliação Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB Meus critérios de avaliação: a) Facilidade de instalação e execução Ruim. Não tenho o Java FX instalado e não consegui fazer funcionar em 30 mins (tempo que dediquei para tentar montar o ambiente para executar o projeto). O manual permitiu que eu avaliasse o projeto, b) Qualidade do manual e material de documentação Razoável. No entanto há erros de português na documentação. c) Qualidade do código produzido (código e design do projeto) 5 Ruim. A lógica da estrutura de dados, algoritmo de inserção, etc. está misturada com as classes JavaFX da interface. O projeto é uma excelente oportunidade de implementar o padrão MVC para isolar a exibição JavaFX do algoritmo da árvore B+. As mensagens da classe "Mensagem.java" poderiam estar guardadas em um arquivo de propriedades. Presença de números mágicos. (Vide classe "Util.java") d) Inovação do projeto Baixa. Há vários simuladores de árvores B+ por aí, inúmeras implementações da estrutura de dados, etc. No entanto o projeto é bem bacana pois oferece uma interface legal para mostrar a estrutura de dados. Certamente foi um ótimo exercício tanto para usar JavaFX quanto para implementar a árvore B+. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 64
  • 65.
    Alunos Nota Avaliação Carlos Albercio - aluno UNIFOR A idéia do trabalho é interessante, mas falta algumas mensagens de alerta/erro ao usuário, como quando tenta adicionar um nó já existente na árvore, poderia avisar que o mesmo já existe, ao invés de apenas contornar de vermelho onde o mesmo esta. Outra coisa é quando após gerarmos alguma árvore que a organizamos de um jeito como colocando um grupo de nós em uma determinada posição, ao adicionarmos outro nó, ele alinha toda a árvore 6.5 novamente. Ao testar o programa encontrei um erro que em um determinado ponto ele não encontrou um determinado na árvore, mesmo ele já tendo sido inserido anteriormente. Fora isso o trabalho foi bem documentado facilitando o entendimento do código e uma futura manutenção, mas no código também foi encontrado alguns “comentários” em algumas funcionalidades que acredito que tinham sido utilizadas anteriormente e ao serem desativadas não foram deletadas, apenas tiveram a linha comentada. Daniel Valente - aluno UNIFOR Trabalho está muito bem elaborado, e com documentação auxiliar bem elaborada e explicativa. A parte visual está bem atraente, 8.5 porém algumas coisas no código como por exemplo a parte de mensagens da aplicação poderia ter sido melhorada com a utilização de um arquivo .properties para deixar mais generico. Diego Aguiar - aluno UFC/Sobral 4 Tentei executar o programa de várias maneiras, tanto no sistema Linux quanto no Windows, mas não obtive êxito. Contudo, o programa possui uma boa documentação e um bom tutorial de uso. Francisco José de Lima - aluno FA7 Bom manual de instruções. O aplicativo é de fácil inicialização. Boa interface gráfica, porém precisa de alguns ajustes para poder rodar em ambiente GNU/Linux. 7 Métodos comentados. O programa não esta funcionando corretamente em ambiente linux. Porém em ambiente windows esta funcionando sem problemas. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 65
  • 66.
    Alunos Nota Avaliação Germano Duarte - aluno UNIFOR Trabalho interessante mas falta algumas mensagens de erro ao Usuário. Quando tenta adicionar um nó já existente na árvore, poderia avisar que o mesmo já existe, ao invés de apenas contornar de vermelho onde o mesmo esta. Outra coisa é quando após gerarmos alguma árvore que a organizamos de um jeito como colocando um grupo de nós em uma determinada posição, ao 5.5 adicionarmos outro nó, ele alinha toda a árvore novamente. O programa apresenta um erro que em um determinado ponto não encontra um determinado no na árvore, mesmo ele já tendo sido inserido anteriormente. O trabalho está bem documentado facilitando o entendimento do código e uma futura manutenção. O código fonte tem alguns “comentários” em algumas funcionalidades que acredito que tinham sido utilizadas anteriormente e ao serem desativadas não foram deletadas, apenas tiveram a linha comentada. Marcos Paulo - aluno UNIFOR Considerações Positivas: Ótima idéia, trabalho difícil de se implementar, não adianta elogiar a interface porque é difícil fazer algo em JavaFX e não ficar bonito mas ficou muito bom, o programa 8 faz o que se propõe. É um programa bem didático bem elaborado e pode muito bem ser usado para explicar a matéria. Ponto positivo para a documentação que ficou bem organizada.. Considerações Negativas: Dificuldade para executá-lo no Mac e no Linux, que executou somente importando o projeto no Eclipse. Rafael Sales - aluno UFC Não entregou a avaliação. 7º - Rafael de Castro Dantas Sales Faculdade: UFC Professor: Vânia Maria Ponte Vidal Média aritmética: 5,81 Link p/ o trabalho: http://tiny.cc/ro37d Profissionais Nota Avaliação Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 66
  • 67.
    Profissionais Nota Avaliação Adriano Almeida - Caelum - SP Bom uso de design patterns, como o DAO encapsulando o trabalho com o banco de dados. No entanto, atualmente alguns design patterns como o Singleton são desencorajados, pois eles levam a uma programação procedural e não existe mais tanto ganho no consumo de recursos devido a otimizações da JVM (vale a pena 7 estudar sobre a JVM e JIT - Just in time compiler). Muito bom uso do arquivo de configuração para o banco de dados. No entanto, poderia-se utilizar um HSQLDB embutido na aplicação ao invés de obrigar o cliente a ter um MySQL instalado. Vale a pena também estudar Hibernate e JPA para melhorar o código dos DAOs e remover essa dependencia de SQLs de diversos bancos diferentes. Alexandre Gomes - SEA Tecnologia - InfoQ - DF O projeto resume-se a um CRUD de 3 tabelas, sem grandes desafios técnicos ou teóricos. Sem dúvida, existe o mérito mercadológico, mas a instância de problema tratada poderia ser de complexidade um pouco superior para se equilibrar às demais propostas enviadas. O projeto executa corretamente todas as rotinas a que se propõe, 6 mas ainda necessita de algumas horas de trabalho para atingir um nível de completude funcional satisfatório. Das três entidades básicas do sistema, apenas o cadastro de Frete é completo. Ao que parece, Clientes e Cidades são ainda modelos manipulados apenas em banco de dados, não possuindo meios gráficos para sua administração. Por fim, a documentação do projeto não descreve o propósito do sistema e tampouco explica como o usa. Cláudio Rocha - IVIA - CE O Rafael exibiu uma app com acesso a banco de dados. O código estava bem colocado e suas classes apresentavam uma boa 9.1 disposição. As responsabilidades também estavam bem divididas. Como ponto negativo vejo a documentação que poderia ter tido uma maior atenção. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 67
  • 68.
    Profissionais Nota Avaliação Fabiane Nardon - Zilics - JavaTools Community - SP A documentação não é suficiente. Não existe uma descrição de qual o objetivo do sistema nem de sua arquitetura. O código possui pouco JavaDoc. As instruções para execução foram razoavelmente claras. Existe uma separação clara entre as camadas (persistência, lógica e apresentação), o que é elogiável. O código é claro e fácil de entender. 6 A interface é pobre em vários aspectos. Por exemplo, não há indicação da unidade esperada para o peso no frete. A maior crítica a este trabalho é que ele é pouco inovador e de baixo grau de dificuldade. A abordagem adotada para solucionar o problema é simplista. Poderia ser utilizado algum framework de persistência, por exemplo, para ter mais escalabilidade. Uma documentação mais detalhada também ajudaria a contextualizar a aplicação e entender porque esta arquitetura foi escolhida. Hebert Aquino - BRQ - CE 8 Javadoc - Faltou o Javadoc e n„o comentou todas as classes deixando a documentaÁ„o pobre. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 68
  • 69.
    Profissionais Nota Avaliação João Victor - USIX - CE Justificativa para a nota: O sistema apresentado é usual e atende ao que se propõe. Tem um visual fácil de utilizar, porém o projeto parece incompleto, pois utiliza-se de informações que não podem ser cadastradas, como exemplo, cadastro de clientes. Possui pouca documentação e a documentação que existe é para colocar a aplicação para funcionar. Um ponto importante que vale ressaltar é o fato de ser necessário um banco de dados para a utilização do aplicativo. 7 Sobre o valor do projeto em relação ao mercado: O aplicativo pode ser comercializado e se transforma em uma aplicação comercial e completa. Além disso, precisaria de controle de autenticação, auditorias e etc. Sobre os critérios de qualidade: A aplicação deixa a desejar no quesito documentação. Com os testes feitos a mesma não travou em nenhum momento. Porém, não se utilizou de PMD e Findbugs, apesar de existir warning no aplicativo. Julio Viegas - SPC Brasil - Globalcode - SP Apesar de deixar de fora uma série de fatores relacionados ao 7.8 cálculo real de frete, apresenta um potencial comercial forte, pois todo sistema de venda depende de um módulo de entrega. O setup foi muito difícil. Potencial de vendas alto e qualidade média. Loiane Groner - IBM - ESJUG - SP Aplicação intuitiva, bom uso de Swing. Arquivo de instrução claro e objetivo, mas poderia ter caprichado um pouco mais! Fez bom uso das tecnologias utilizadas. Fez uso de documentação em algumas classes e alguns métodos. Fez uso correto do padrão de projeto utilizado.O FindBugs achou algumas linhas de código com Bad Practice, mas nada muito sério. 9 O mais relevante que achei foi concatenação de Strings em loop com operador + - dê preferência a StringBuffer (só uma dica para melhorar a performance). Encontrado comandos vazios (apenas ; no código). Encontrado comparação de objectos com == em vez de .equals (má prática e não é correto: operador == entre objetos compara a referência e não o conteúdo/valores do objeto). Encontrado blocos catch vazios (muito feio!) – ao menos faça uso de impressão de stack trace, ignorar uma exception é uma péssima prática! Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 69
  • 70.
    Profissionais Nota Avaliação Ricardo Ferreira - Red Hat / JBoss - SP Considerando que o trabalho do aluno começou com 10.0 pontos, houveram certos aspectos do trabalho que me fizeram destacar alguns destes pontos, decrementando o valor da nota para 7.25. Os aspectos avaliados foram: 1) O código do programa apresenta pouco controle de instâncias de objetos quanto as suas referências. Erros do tipo NullPointerException são considerados básicos demais para uma aplicação que está sendo distribuida e deverá ser usado em larga 7.25 escala. Não consegui avaliar se o programa dispara algum erro desta natureza, mas pelo código fonte dá pra perceber que 'potencialmente' isso ocorrerá, o que me estimula a retirar 0.75 pontos do resultado final. Quando um projeto é mantido apenas por um programador, falhas como essa tendem a ser contornadas ou inibidas. Mas em um projeto onde vários programadores atuam no código fonte, este tipo de controle de código deve ser obrigatório. 2) Scripts de DDL e DCL com erros. Tive que consertar alguns scripts para fazer funcionar. 2 Pontos foram descontados. Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB Meus critérios de avaliação: a) Facilidade de instalação e execução É preciso instalar o MySQL. (Isso não afetou a avaliação do projeto. Apenas não consegui executar o sistema.) b) Qualidade do manual e material de documentação Ruim Não há manual. Não há tutorial. 3 Não é possível saber do que se trata o projeto sem executá-lo. c) Qualidade do código produzido (código e design do projeto) Implementou bem o DAO Código legível e bem estruturado. Foi bom rever código SQL dentro de classes Java novamente. No entanto a equipe deve considerar o uso de outras ferramentas, para projetos de maior escala, como Hibernate, por exemplo. Projeto simples. d) Inovação do projeto Nenhuma Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 70
  • 71.
    Alunos Nota Avaliação Anderson Severo - aluno IFCE Interface gráfica fraca. O programa cumpre o que promete, mas não introduz 6.5 nada de inovador. Possui também uma classe inteira pronta de outro autor. Porém, trabalha com atenção o assunto da disciplina para o qual foi produzido. Carlos Albercio - aluno UNIFOR Trabalho com pouca funcionalidade e bastante limitado, sendo 6 possível apenas cadastrar o frente, seria interessante poder cadastrar clientes e cidades, nos campos decimais poderia aceitar a vírgula, invés de apenas ponto, ou então informar que deve ser utilizado ponto. Daniel Valente - aluno UNIFOR Trabalho bem elaborado e estruturado. Porém, na minha opinão, 7 mais uma vez faltou algo inovador/diferente do dia a dia comparado com outros trabalhos do PUJ. Diego Aguiar - aluno UFC/Sobral O programa funciona conforme o esperado, contudo não possui uma 4 interface gráfica amigável, além de podermos inserir o mesmo cadastro várias vezes no banco de dados (o que não seria adequado para a aplicação). O sistema não possui qualquer tipo de documentação, exceto um pobre tutorial de instalação. Francisco José de Lima - aluno FA7 Sem manual de instruções. O aplicativo é de fácil inicialização. Boa interface grafica, porém precisa de alguns ajustes. Interface 5 intuitiva o que facita o entendimento. Métodos comentados, porém poderia adicionar mais informações sobre o comportamento. Boa divisão dos métodos e das classes. O programa atende ao que ele se propõe e não ocorre falhas. Germano Duarte - aluno UNIFOR Trabalho com pouca funcionalidade e bastante simples com única 6 opção de cadastro de frente. Seria interessante poder cadastrar clientes e cidades. Campos decimais poderiam aceitar a vírgula, invés de apenas ponto. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 71
  • 72.
    Alunos Nota Avaliação Marcos Paulo - aluno IFCE Considerações Positivas: Bom JavaDoc. Organização das classes de gui bem feitas, podia ter sido melhor mas gostei muito da utilização do GridBagLayout para interface, o aluno parecia bem o que tava fazendo. No mais o código está OK e o programa funciona. Considerações Negativas: Acredito que teria sido melhor ao invés de 7 mandar os scripts para criar e popular o banco ele ter mandado o dump do banco para que a gente só o restaurasse e já pudesse usar. Também teria sido mais interessante se ele tivesse usado Hibernate ou mesmo JPA com Hibernate para fazer o projeto, já que foca banco de dados, teria sido uma ótima forma de criar uma aplicação didática com essas tecnologias. Também poderia ter utilizado um singleton para fazer a conexão com o banco de dados para garantir melhor que em toda aplicação só haverá uma conexão. 8º - Diego Aguiar Souza Faculdade: UFC/Sobral Professor: Iális Cavalcante de Paula Jr. Média aritmética: 5,75 Link p/ o trabalho: http://tiny.cc/h4li5 Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 72
  • 73.
    Profissionais Nota Avaliação Adriano Almeida - Caelum - SP Na hora de subir a aplicação o hibernate lança uma exceção na criação dos schemas e a app não sobe. Eu simplesmente dei um java -jar no executavel, como diz no manual da app. A stack trace está abaixo. Exception in thread " AW T- E ve n t Q u e u e - 0 " org.hibernate.exception.GenericJDBCException: could not execute native bulk manipulation query a t org.hibernate.exception.SQLStateConverter.handledNonSpecificExce ption(SQLStateConverter.java:126) at org.hibernate.exception.SQLStateConverter.convert (SQLStateConverter.java:114) at org.hibernate.exception.JDBCExceptionHelper.convert (JDBCExceptionHelper.java:66) a t org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUp date(NativeSQLQueryPlan.java:198) at org.hibernate.impl.SessionImpl.executeNativeUpdate (SessionImpl.java:1190) at org.hibernate.impl.SQLQueryImpl.executeUpdate (SQLQueryImpl.java:357) 1 at frame.MainFrame$16.run(MainFrame.java:607) at java.awt.event.InvocationEvent.dispatch (InvocationEvent.java:209) at java.awt.EventQueue.dispatchEvent(EventQueue.java: 633) at java.awt.EventDispatchThread.pumpOneEventForFilters (EventDispatchThread.java:296) at java.awt.EventDispatchThread.pumpEventsForFilter (EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForHierarchy (EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:196) at java.awt.EventDispatchThread.pumpEvents (EventDispatchThread.java:188) at java.awt.EventDispatchThread.run (EventDispatchThread.java:122) Caused by: java.sql.SQLException: invalid schema name in statement [CREATE SCHEMA GDGP AUTHORIZATION DBA] at org.hsqldb.jdbc.Util.throwError(Unknown Source) at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate (Unknown Source) a t org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUp date(NativeSQLQueryPlan.java:189) ... 11 more Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 73
  • 74.
    Profissionais Nota Avaliação Alexandre Gomes - SEA Tecnologia - InfoQ - DF O projeto tem uma essência menos acadêmica que os demais trabalhos submetidos, o que demonstra a sintonia do aluno com as demandas de mercado. A documentação está bastante extensa e detalhada mas parece não ter sido o bastante para a execução bem sucedida de todos os testes da aplicação. Já na primeira inicialização do sistema falhou com uma exceção de SQL [1]. Após renomar os arquivos databaseGDGP* para databaseGDGP*, o aplicativo pode ser inicializado, mas não comprovou o bom funcionamento de todas as suas funcionalidades. Todos os cadastros envolvendo data (Aluno e Projeto) não puderam 2 ser executados. Independente da data informada, uma mensagem de 'Data Inválida' foi sempre apresentada. No cadastro da Artigos, não funciona a inserção de revista ou evento técnico. [1] java.sql.SQLException: invalid schema name in statement [CREATE SCHEMA GDGP AUTHORIZATION DBA] at org.hsqldb.jdbc.Util.throwError(Unknown Source) at org.hsqldb.jdbc.jdbcPreparedStatement.executeUpdate (Unknown Source) at org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUp date(NativeSQLQueryPlan.java:189) ... 11 more Cláudio Rocha - IVIA - CE O trabalho do Diego aborda aplicações com banco de dados. Apesar de estar documentado com JavaDoc acredito que poderia ter um 9.2 nível maior de detalhe nesta documentação. A aplicação está visualmente bem disposta e se mostra bem completa quanto às necessidades de controle requerida pelo domínio da aplicação. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 74
  • 75.
    Profissionais Nota Avaliação Fabiane Nardon - Zilics - JavaTools Community - SP A aplicação se liga a um banco de dados, mas não há instruções sobre como configurar este banco. Para poder executar a aplicação, foi necessário alterar os arquivos de configuração do Hibernate, que estavam com o caminho do BD hard coded. Algumas mensagens de erro no sistema não são claras. Por exemplo, ao incluir um projeto, recebi uma mensagem de erro dizendo "Data Inválida", mas sem informação de porque a data era inválida. Na verdade, o sistema tem problemas no tratamento de datas. Talvez seja em função do Locale utilizado. No meu ambiente, todas as datas eram consideradas inválidas, mesmo quando informadas corretamente. 6 Alguns botões da aplicação estão sem ação. Por exemplo: o botão Visualizar Detalhes do Artigo gera uma exceção java.lang.NullPointerException e não faz nada. O botão Visualizar Dados Detalhados do pesquisador traz uma janela vazia. Falta documentação JavaDoc em diversas classes importantes o que dificulta o entendimento e manutenção do código. A aplicação não faz uma separação clara da camada de apresentação com a lógica de negócio, o que não é aconselhável. O manual de utilização é claro e completo, embora não tenha sido possível avaliar todas as funcionalidades em função dos erros citados acima. Hebert Aquino - BRQ - CE 8.7 Javadoc - Não comentou todas as classes, ocorreu erros de validação quando se deixava as datas em brancos. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 75
  • 76.
    Profissionais Nota Avaliação João Victor - USIX - CE Justificativa para a nota: O sistema apresentado parece ser bem usual. Esta bem estruturado e possui tecnologias maduras. Porém, vale salientar que o .jar não executou e ao testá-lo via IDE só funcionou uma única vez. Possui uma boa documentação onde explica o funcionamento do sistema. Contém também o javadoc do aplicativo, porém incompleto e superficial. Não explica como colocar a aplicação para funcionar em uma IDE. 8 Sobre o valor do projeto em relação ao mercado: O sistema possui um apelo comercial e open source no mercado. É uma aplicação para controle de documentos e pode ser melhorada e evoluída podendo ser comercializada. Sobre os critérios de qualidade: A aplicação parece ser bem escrita. Porém possui um conjunto de dependências muito grande pelas tecnologias utilizadas. Só consegui executá-la uma vez e não houve a preocupação e utilizar PMD ou Findbugs. Julio Viegas - SPC Brasil - Globalcode - SP Interface prática, porém sem nenhum atrativo. Me pareceu um 6.7 pouco simples, sem um diferencial de mercado. Potencial de vendas médio e qualidade média. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 76
  • 77.
    Profissionais Nota Avaliação Loiane Groner - IBM - ESJUG - SP UI bem intuitiva, bom uso de Swing, ficou bem profissional. Arquivo de instrução claro e objetivo. Organizou e separou componentes Swing, não colocou tudo em apenas uma classe. Único trabalho que participa da competição que fez isso. Fez uso de documentação, mas poderia ter colocado alguns comentários dentro de métodos para facilitar entendimento de bloco de código. Fez bom uso do framework de persistência utilizado, com uso de annotations. Bem legal ter juntado o conhecimento acadêmico com uso de um dos frameworks de persistência mais utilizado no mercado. 9.5 Apesar de ser uma aplicação do tipo clichê, está bem próximo de uma aplicação real (até poderia ser realmente uma aplicação em produção). Poderia ter feito uso de Generics nas coleções. Encontrado blocos catch vazios (muito feio!) – ao menos faça uso de impressão de stack trace, ignorar uma exception é uma péssima prática! Achei alguns blocos de código repetidos, poderia ter criado métodos para reuso de código e facilitar uma manutenção futura (caso fosse necessário). Encontrado algumas Strings com mesmo conteúdo em várias partes do código. Seria interessante criar constante neste caso (static String NOME_STRING). Encontrado declaração de atributos que não seguem conveção Java. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 77
  • 78.
    Profissionais Nota Avaliação Ricardo Ferreira - Red Hat / JBoss - SP Considerando que o trabalho do aluno começou com 10.0 pontos, houveram certos aspectos do trabalho que me fizeram destacar alguns destes pontos, decrementando o valor da nota para 6.5. Os aspectos avaliados foram: 1) A aplicação não executou corretamente em meu computador. Ao executar o programa usando uma JVM 6.0, o programa gerou um stacktrace de um erro dizendo que o programa não foi capaz de acessar a base de dados HSQLDB devido a um problema de schemas inválidos no banco de dados fornecido. A mensagem de erro completa foi: "java.sql.SQLException: invalid schema name in statement 6.5 [CREATE SCHEMA GDGP AUTHORIZATION DBA]" Neste caso, não foi possivel avaliar a aplicação criada. Por este motivo, foram retirados 3.0 pontos do candidato, pois acredito que faltaram testes sobre deployment e redistribuição do programa em vários computadores. A impressão é que o software foi testado apenas no sistema operacional Windows. 2) Não houve nenhuma documentação sobre os requisitos mínimos de hardware e software da aplicação, causando problemas na hora de tentar rodar o aplicativo. Usando uma JVM versão 5.0, o software se recusou a funcionar. Apenas mudando para a versão 6.0 do mesmo, ele pode tentar carregar o classLoader da aplicação e iniciar o bootstrap de execução. Para este item, foi removido 0.5 ponto do candidato. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 78
  • 79.
    Profissionais Nota Avaliação Rodrigo Rebouças - Dataprev - iDEZ - PBJUG - PB Meus critérios de avaliação: a) Facilidade de instalação e execução Tentei rodar o PUJCE2009.jar e obtive o seguinte erro: May 30, 2010 5:10:35 PM org.hibernate.util.JDBCExceptionReporter logExceptions SEVERE: invalid schema name in statement [CREATE SCHEMA GDGP AUTHORIZATION DBA] Exception in thread " AW T- E ve n t Q u e u e - 0 " org.hibernate.exception.GenericJDBCException: could not execute native bulk manipulation query a t org.hibernate.exception.SQLStateConverter.handledNonSpecificExce ption(SQLStateConverter.java:126) at org.hibernate.exception.SQLStateConverter.convert (SQLStateConverter.java:114) at org.hibernate.exception.JDBCExceptionHelper.convert (JDBCExceptionHelper.java:66) a t org.hibernate.engine.query.NativeSQLQueryPlan.performExecuteUp date(NativeSQLQueryPlan.java:198) 6 at org.hibernate.impl.SessionImpl.executeNativeUpdate (SessionImpl.java:1190) at org.hibernate.impl.SQLQueryImpl.executeUpdate Caused by: java.sql.SQLException: invalid schema name in statement [CREATE SCHEMA GDGP AUTHORIZATION DBA] b) Qualidade do manual e material de documentação Tutorial: Muito bom c) Qualidade do código produzido (código e design do projeto) Razoável. Mistura de Lógica de negócio com elementos de interface gráfica. Por exemplo, a classe "MainFrame.java" contém código de acesso ao banco, através do Hibernate. Código difícil de manter d) Inovação do projeto Baixa. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 79
  • 80.
    Alunos Nota Avaliação Anderson Severo - aluno IFCE Software bem simples, construção básica com Swing, e fica agradável realmente em tela cheia (diminuindo muito o tamanho, os 7 panels começam a sumir). Tem um propósito interessante e que não exige muito da interface. O manual poderia ser um pouco mais fluente, no sentido de facilitar a leitura, separando passos em tópicos, por exemplo. Desenvolvedor forneceu javadoc e os arquivos .form para edição no NetBeans. Carlos Albercio - aluno UNIFOR Interface do programa não fica bem dimensionada, na tela que adiciona o aluno ao grupo ela aparece pequena, tendo o usuário que dimensioná-la manualmente para poder visualizar todos os campos necessários para inserção do mesmo, ao tentar inserir sem adicionar a data de início e término da bolsa, ele primeiro valida a 7 data, pra depois verificar se a mesma foi preenchida, assim aparecendo duas mensagens de erro para o usuário. O sistema poderia usar mais Generics, assim evitaria alguns warnings e o mesmo poderia ter sido melhor documentado e não em sua maioria o comentário automático que acredito que seja do Netbeans. Daniel Valente - aluno UNIFOR Trabalho bem elaborado e documentação bem explicativa. Porém, 7 na minha opinão, faltou algo inovador/diferente do dia a dia comparado com outros trabalhos do PUJ. Francisco José de Lima - aluno FA7 Bom manual de instruções. O aplicativo é de fácil inicialização. Muito boa interface gráfica. Interface intuitiva o que facita o 6.5 entendimento. Métodos comentados. O programa atende ao que ele se propõe e não ocorre falhas. Germano Duarte - aluno UNIFOR Interface mal dimensionada na tela que adiciona o aluno ao Grupo. Ela aparece pequena, tendo o usuário que dimensioná-la 5 manualmente para poder visualizar todos os campos necessários para inserção. Validação da data antes de verificar se o campo esta nulo. Aparece duas mensagens de erro para o usuário. Mensagens de ”warnings” deveriam ser evitadas usando componentes mais atuais. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 80
  • 81.
    Alunos Nota Avaliação Marcos Paulo - aluno IFCE Considerações positivas: O programa parece ter uma finalidade de ser útil no dia dia, e não apenas um programa didático e tudo mais, isso é legal. Legal também o fato de ter usado o Hibernate mas achei alguns pontos péssimos no Hibernate, ponto positivo para o tutorial também que ficou bem explicado. Considerações negativas: Como por exemplo usar variáveis 5 estáticas final ao invés de enums em algumas entidades, além do fato de estar usando o hibernate e colocando annotations na propriedade ao invés de por nos getters, no hibernate isso faz diferença, também tem o fato de ter posto FetchType.EAGER em relacionamentos @ManyToOne onde ele é EAGER por DEFAULT e também ter posto FetchType.LAZY nos relacionamentos @OneToMany e @ManyToMany onde ele é Lazy por Default. Além disso as classes de interfaces estão totalmente desorganizadas, se fosse preciso fazer manutenção na interface um dia seria uma grande luta. Rafael Sales - aluno UFC 1 Não entregou a avaliação. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 81
  • 82.
    Pespectivas para oPUG 2010 O PUG 2009 foi a terceira edição do Prêmio Universitário Felipe Gaúcho no Ceará. Iniciado em 2007, o prêmio continua tendo um formato experimental com o objetivo de testar na prática as idéias de competição discutidas por membros da comunidade cearense de usuários Java, e principalmente com o objetivo de promover o Ceará e o Java no Ceará. Vitrine do potencial acadêmico cearense, o PUG 2009 chamou a atenção de muitos setores da sociedade brasileira, especialmente a imprensa especializada em TI, grupos de usuários Java e empresários, alunos e professores. O CEJUG pretende realizar anualmente competições acadêmicas, sempre atraindo os melhores alunos e procurando no mercado as empresas comprometidas com o desenvolvimento do estado e com a qualidade em produção de software. Para 2010, o CEJUG pretende utilizar os aprendizados na organização do PUG 2007, 2008 e 2009 para oferecer a sociedade cearense um prêmio melhor e com mais repercussão nacional. Desde já o CEJUG agradece o apoio dos patrocinadores e a contribuição voluntária de todos os avaliadores e professores, além de dar os parabéns aos alunos que tiveram a disciplina em apresentar trabalhos de alta qualidade. Para 2010, que vença o melhor. Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 82
  • 83.
    Veracidade do documento A coordenação do CEJUG atesta que todo o conteúdo deste documento é de inteira responsabilidade dos seus respectivos autores, sendo de autoria e responsabilidade de cada participante (textos do PUG, avaliações dos profissionais e alunos). Rafael Carneiro Coordenador CEJUG e PUG 2009 Testemunhas: Hildeberto Mendonça Silveira Neto René Araújo Coordenador CEJUG Coordenador CEJUG Coordenador CEJUG Prêmio Universitário Felipe Gaúcho 2009 CEJUG, Página 83