Fechar

@InProceedings{PintoGuer:2016:SoReCo,
               author = "Pinto, Gabriel Amboss and Guerra, Eduardo Martins",
          affiliation = "{Instituto Tecnol{\'o}gico de Aeron{\'a}utica (ITA)} and 
                         {Instituto Nacional de Pesquisas Espaciais (INPE)}",
                title = "Solu{\c{c}}{\~a}o reutiliz{\'a}vel para consumo de 
                         anota{\c{c}}{\~o}es de c{\'o}digo",
                 year = "2016",
         organization = "Semin{\'a}rio de Inicia{\c{c}}{\~a}o Cient{\'{\i}}fica e 
                         Inicia{\c{c}}{\~a}o em Desenvolvimento Tecnol{\'o}gico e 
                         Inova{\c{c}}{\~a}o (SICINPE)",
            publisher = "Instituto Nacional de Pesquisas Espaciais",
              address = "S{\~a}o Jos{\'e} dos Campos, SP",
                 note = "{Bolsa PIBIC/INPE/CNPq}",
             abstract = "Existem situa{\c{c}}{\~o}es em que se deseja modificar o 
                         comportamento de um software durante runtime, seja para fazer algo 
                         que orienta{\c{c}}{\~a}o {\`a} objeto n{\~a}o {\'e} capaz, 
                         seja para simplesmente reduzir a quantidade de c{\'o}digo similar 
                         que teria que ser replicado diversas vezes para atingir uma 
                         funcionalidade espec{\'{\i}}fica. Nesses casos {\'e} 
                         necess{\'a}rio o uso de reflex{\~a}o de c{\'o}digo, que 
                         essencialmente {\'e} a capacidade de um software poder se 
                         observar e modificar seu comportamento atrav{\'e}s de 
                         introspec{\c{c}}{\~a}o. Utilizando anota{\c{c}}{\~o}es {\'e} 
                         poss{\'{\i}}vel manipular inst{\^a}ncias de objetos e interagir 
                         com classes que n{\~a}o possuem uma estrutura previamente 
                         conhecida. Para utilizar reflex{\~a}o em JAVA, utiliza-se a API 
                         Reflection, do pacote java.lang.reflect. No entanto, essa 
                         biblioteca n{\~a}o possui ferramentas adequadas para consumo e 
                         armazenamento de anota{\c{c}}{\~o}es, dificultando a 
                         programa{\c{c}}{\~a}o reflexiva simples e eficiente. O objetivo 
                         da Inicia{\c{c}}{\~a}o Cient{\'{\i}}fica {\'e}, ent{\~a}o, 
                         construir um container de metadados para consumir, armazenar e 
                         processar anota{\c{c}}{\~o}es feitas pelos programadores. Isso 
                         facilitar{\'a} o uso customis{\'a}vel de uma framework (baseada 
                         em metadados) feita especificamente para as necessidades 
                         espec{\'{\i}}ficas do sistema sendo desenvolvido. Tal container 
                         ser{\'a} capaz, em seu estado final, de analisar estruturas em um 
                         c{\'o}digo dado (sejam elas metadados, como 
                         anota{\c{c}}{\~o}es, ou conceitos mais tradicionais como 
                         m{\'e}todos e par{\^a}metros) e tratar do funcionamento de 
                         par{\^a}metros e m{\'e}todos anotados segundo a l{\'o}gica 
                         especificada por quem est{\'a} utilizando essa API de 
                         meta-framework. Resultados do projeto ser{\~a}o adicionados 
                         {\`a} Framework Esfinge 
                         (http://esfinge.sourceforge.net/Oprojeto.html) sob a categoria 
                         Metadata. As ferramentas desenvolvidas ser{\~a}o ultimamente 
                         utilizadas em outros grupos, como o Gamification, para o 
                         desenvolvimento de dados como trof{\'e}us ou moedas que 
                         ser{\~a}o concedidas {\`a} programadores por realizarem certas 
                         tarefas como refatora{\c{c}}{\~a}o ou confec{\c{c}}{\~a}o de 
                         testes. {\'E} importante o uso de metadados para essa atividade 
                         para separar o c{\'o}digo do programa sendo feito e o c{\'o}digo 
                         referente {\`a}s atividades de gamification, evitando assim 
                         c{\'o}digo confuso e de baixa qualidade.",
  conference-location = "S{\~a}o Jos{\'e} dos Campos, SP",
      conference-year = "25-26 jul.",
             language = "pt",
                  ibi = "8JMKD3MGP3W34P/3N5E6A2",
                  url = "http://urlib.net/ibi/8JMKD3MGP3W34P/3N5E6A2",
           targetfile = "Pinto_solucao.pdf",
        urlaccessdate = "25 abr. 2024"
}


Fechar