IPS: um plug-in para templates de códigos associativos

Detalhes bibliográficos
Autor(a) principal: Moraes, Rodrigo Vieira de
Data de Publicação: 2016
Tipo de documento: Dissertação
Idioma: por
Título da fonte: Repositório Institucional da UFSCAR
Texto Completo: https://repositorio.ufscar.br/handle/20.500.14289/8807
Resumo: The APIs are becoming increasingly more popular and they play a important role in software development. However, many APIs are large and complex that makes them hard to learn. Among avaliable resources to learn to use an API, there are the code samples. A code sample can be used to demonstrate to a programmer how to use API’s components together to attain a specific goal. But, code sample are static and they haven’t information about how to adapt the code snippet shown as example to programmer’s context. Tools have been proposed to assist the programmers in finding and adapting code snippets that may be useful for a programming task. A specific type of these tools are the code template tools. Code templates are code snippets manually registered containing integration directives. The integration directives instruct the code template tool on how to adapt a code snippet to programmer’s context. In this work, code snippet tools are investigated and it is proposed a code template tool called IPS. It presents some novelties in relation to other code template tools. In the IPS, a code template can be associated to a Java class and the IPS has a code template recommender that is automatically updated as the source code is edited by the programmer. Also it is proposed the role parameters, a new concept for the parameters of code templates that extends the concept of the parameters associated to a type which is present in current code template tools. The role parameters has the objective of accepting arguments that would at first be incompatible with a specific type, but that obey a expected pattern.
id SCAR_d9fe5a75dcd898df6850a80f0d1fd91b
oai_identifier_str oai:repositorio.ufscar.br:20.500.14289/8807
network_acronym_str SCAR
network_name_str Repositório Institucional da UFSCAR
repository_id_str 4322
spelling Moraes, Rodrigo Vieira deGuimarães, José de Oliveirahttp://lattes.cnpq.br/1861719424612392http://lattes.cnpq.br/7919040444278953f9fcedb5-5272-44f7-b542-b7532d3b18672017-06-01T17:01:09Z2017-06-01T17:01:09Z2016-11-25MORAES, Rodrigo Vieira de. IPS: um plug-in para templates de códigos associativos. 2016. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, Sorocaba, 2016. Disponível em: https://repositorio.ufscar.br/handle/20.500.14289/8807.https://repositorio.ufscar.br/handle/20.500.14289/8807The APIs are becoming increasingly more popular and they play a important role in software development. However, many APIs are large and complex that makes them hard to learn. Among avaliable resources to learn to use an API, there are the code samples. A code sample can be used to demonstrate to a programmer how to use API’s components together to attain a specific goal. But, code sample are static and they haven’t information about how to adapt the code snippet shown as example to programmer’s context. Tools have been proposed to assist the programmers in finding and adapting code snippets that may be useful for a programming task. A specific type of these tools are the code template tools. Code templates are code snippets manually registered containing integration directives. The integration directives instruct the code template tool on how to adapt a code snippet to programmer’s context. In this work, code snippet tools are investigated and it is proposed a code template tool called IPS. It presents some novelties in relation to other code template tools. In the IPS, a code template can be associated to a Java class and the IPS has a code template recommender that is automatically updated as the source code is edited by the programmer. Also it is proposed the role parameters, a new concept for the parameters of code templates that extends the concept of the parameters associated to a type which is present in current code template tools. The role parameters has the objective of accepting arguments that would at first be incompatible with a specific type, but that obey a expected pattern.As APIs têm se tornado cada vez mais populares e elas têm um papel fundamental no desenvolvimento de software. No entanto, muitas APIs são grandes e complexas o que torna a aprendizagem delas difícil. Entre os recursos disponíveis para se aprender a utilizar uma API, há os exemplos de código. Um exemplo de código pode demonstrar a um programador como componentes de uma API podem ser utilizados juntos para atingir um determinado objetivo. Porém, exemplos de código são estáticos e não contêm informações de como adaptar o trecho de código apresentado como exemplo para o contexto do programador. Ferramentas têm sido propostas para auxiliar os programadores a encontrarem e adaptarem trechos de códigos que possam ser úteis para uma tarefa de programação. Um tipo específico dessas ferramentas são as ferramentas de templates de código. Templates de código são trechos de códigos cadastrados manualmente contendo diretivas de integração. As diretivas de integração instruem a ferramenta a como adaptar um trecho de código para o contexto do programador. Neste trabalho, ferramentas de trechos de código são investigadas e é proposta uma ferramenta de template de código denominada IPS. Ela apresenta novidades em relação às outras ferramentas de templates de código. No IPS, um template de código pode ser associado a uma classe Java e o IPS possui um recomendador de templates de código que é automaticamente atualizado conforme o código fonte é editado pelo programador. Também é proposto os parâmetros do tipo role, um novo conceito que estende o conceito dos parâmetros associados a um tipo que está presente nas ferramentas de templates de código atuais. Os parâmetros do tipo role têm como objetivo aceitar argumentos que seriam a princípio incompatíveis com um determinado tipo, porém que sigam um determinado padrão esperado.Não recebi financiamentoporUniversidade Federal de São CarlosCâmpus SorocabaPrograma de Pós-Graduação em Ciência da Computação - PPGCC-SoUFSCarSoftware - reutilizaçãoDocumentação de APIExemplos de códigoTemplates de códigoComputer software - ReusabilityCode templateCode samplesCIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAOIPS: um plug-in para templates de códigos associativosIPS: a plug-in for associative code templatesinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisOnline60060022f707a3-dc98-4346-b548-be854c062742info:eu-repo/semantics/openAccessreponame:Repositório Institucional da UFSCARinstname:Universidade Federal de São Carlos (UFSCAR)instacron:UFSCARORIGINALMORAES_Rodrigo_2016.pdfMORAES_Rodrigo_2016.pdfapplication/pdf42751751https://repositorio.ufscar.br/bitstreams/8594bcdf-a161-4faa-89a9-bdb0075af7f3/download25891a495567a6bce1d41328abf03d12MD51trueAnonymousREADLICENSElicense.txtlicense.txttext/plain; charset=utf-81957https://repositorio.ufscar.br/bitstreams/d1766a8a-f452-4502-9759-ad455cd3e25b/downloadae0398b6f8b235e40ad82cba6c50031dMD52falseAnonymousREADTEXTMORAES_Rodrigo_2016.pdf.txtMORAES_Rodrigo_2016.pdf.txtExtracted texttext/plain147https://repositorio.ufscar.br/bitstreams/46d55e14-97d9-449d-bad3-2a0e982f541a/downloade2a946e1072e8d9eea21d956ec3ec076MD55falseAnonymousREADTHUMBNAILMORAES_Rodrigo_2016.pdf.jpgMORAES_Rodrigo_2016.pdf.jpgIM Thumbnailimage/jpeg2536https://repositorio.ufscar.br/bitstreams/92974a31-9034-4ac6-b6a5-67852004a5c9/download0200dcf5d8f374493a3b5ef69a043a37MD56falseAnonymousREAD20.500.14289/88072025-02-05 17:34:23.779Acesso abertoopen.accessoai:repositorio.ufscar.br:20.500.14289/8807https://repositorio.ufscar.brRepositório InstitucionalPUBhttps://repositorio.ufscar.br/oai/requestrepositorio.sibi@ufscar.bropendoar:43222025-02-05T20:34:23Repositório Institucional da UFSCAR - Universidade Federal de São Carlos (UFSCAR)falseTElDRU7Dh0EgREUgRElTVFJJQlVJw4fDg08gTsODTy1FWENMVVNJVkEKCkNvbSBhIGFwcmVzZW50YcOnw6NvIGRlc3RhIGxpY2Vuw6dhLCB2b2PDqiAobyBhdXRvciAoZXMpIG91IG8gdGl0dWxhciBkb3MgZGlyZWl0b3MgZGUgYXV0b3IpIGNvbmNlZGUgw6AgVW5pdmVyc2lkYWRlCkZlZGVyYWwgZGUgU8OjbyBDYXJsb3MgbyBkaXJlaXRvIG7Do28tZXhjbHVzaXZvIGRlIHJlcHJvZHV6aXIsICB0cmFkdXppciAoY29uZm9ybWUgZGVmaW5pZG8gYWJhaXhvKSwgZS9vdQpkaXN0cmlidWlyIGEgc3VhIHRlc2Ugb3UgZGlzc2VydGHDp8OjbyAoaW5jbHVpbmRvIG8gcmVzdW1vKSBwb3IgdG9kbyBvIG11bmRvIG5vIGZvcm1hdG8gaW1wcmVzc28gZSBlbGV0csO0bmljbyBlCmVtIHF1YWxxdWVyIG1laW8sIGluY2x1aW5kbyBvcyBmb3JtYXRvcyDDoXVkaW8gb3UgdsOtZGVvLgoKVm9jw6ogY29uY29yZGEgcXVlIGEgVUZTQ2FyIHBvZGUsIHNlbSBhbHRlcmFyIG8gY29udGXDumRvLCB0cmFuc3BvciBhIHN1YSB0ZXNlIG91IGRpc3NlcnRhw6fDo28KcGFyYSBxdWFscXVlciBtZWlvIG91IGZvcm1hdG8gcGFyYSBmaW5zIGRlIHByZXNlcnZhw6fDo28uCgpWb2PDqiB0YW1iw6ltIGNvbmNvcmRhIHF1ZSBhIFVGU0NhciBwb2RlIG1hbnRlciBtYWlzIGRlIHVtYSBjw7NwaWEgYSBzdWEgdGVzZSBvdQpkaXNzZXJ0YcOnw6NvIHBhcmEgZmlucyBkZSBzZWd1cmFuw6dhLCBiYWNrLXVwIGUgcHJlc2VydmHDp8Ojby4KClZvY8OqIGRlY2xhcmEgcXVlIGEgc3VhIHRlc2Ugb3UgZGlzc2VydGHDp8OjbyDDqSBvcmlnaW5hbCBlIHF1ZSB2b2PDqiB0ZW0gbyBwb2RlciBkZSBjb25jZWRlciBvcyBkaXJlaXRvcyBjb250aWRvcwpuZXN0YSBsaWNlbsOnYS4gVm9jw6ogdGFtYsOpbSBkZWNsYXJhIHF1ZSBvIGRlcMOzc2l0byBkYSBzdWEgdGVzZSBvdSBkaXNzZXJ0YcOnw6NvIG7Do28sIHF1ZSBzZWphIGRlIHNldQpjb25oZWNpbWVudG8sIGluZnJpbmdlIGRpcmVpdG9zIGF1dG9yYWlzIGRlIG5pbmd1w6ltLgoKQ2FzbyBhIHN1YSB0ZXNlIG91IGRpc3NlcnRhw6fDo28gY29udGVuaGEgbWF0ZXJpYWwgcXVlIHZvY8OqIG7Do28gcG9zc3VpIGEgdGl0dWxhcmlkYWRlIGRvcyBkaXJlaXRvcyBhdXRvcmFpcywgdm9jw6oKZGVjbGFyYSBxdWUgb2J0ZXZlIGEgcGVybWlzc8OjbyBpcnJlc3RyaXRhIGRvIGRldGVudG9yIGRvcyBkaXJlaXRvcyBhdXRvcmFpcyBwYXJhIGNvbmNlZGVyIMOgIFVGU0NhcgpvcyBkaXJlaXRvcyBhcHJlc2VudGFkb3MgbmVzdGEgbGljZW7Dp2EsIGUgcXVlIGVzc2UgbWF0ZXJpYWwgZGUgcHJvcHJpZWRhZGUgZGUgdGVyY2Vpcm9zIGVzdMOhIGNsYXJhbWVudGUKaWRlbnRpZmljYWRvIGUgcmVjb25oZWNpZG8gbm8gdGV4dG8gb3Ugbm8gY29udGXDumRvIGRhIHRlc2Ugb3UgZGlzc2VydGHDp8OjbyBvcmEgZGVwb3NpdGFkYS4KCkNBU08gQSBURVNFIE9VIERJU1NFUlRBw4fDg08gT1JBIERFUE9TSVRBREEgVEVOSEEgU0lETyBSRVNVTFRBRE8gREUgVU0gUEFUUk9Dw41OSU8gT1UKQVBPSU8gREUgVU1BIEFHw4pOQ0lBIERFIEZPTUVOVE8gT1UgT1VUUk8gT1JHQU5JU01PIFFVRSBOw4NPIFNFSkEgQSBVRlNDYXIsClZPQ8OKIERFQ0xBUkEgUVVFIFJFU1BFSVRPVSBUT0RPUyBFIFFVQUlTUVVFUiBESVJFSVRPUyBERSBSRVZJU8ODTyBDT01PClRBTULDiU0gQVMgREVNQUlTIE9CUklHQcOHw5VFUyBFWElHSURBUyBQT1IgQ09OVFJBVE8gT1UgQUNPUkRPLgoKQSBVRlNDYXIgc2UgY29tcHJvbWV0ZSBhIGlkZW50aWZpY2FyIGNsYXJhbWVudGUgbyBzZXUgbm9tZSAocykgb3UgbyhzKSBub21lKHMpIGRvKHMpCmRldGVudG9yKGVzKSBkb3MgZGlyZWl0b3MgYXV0b3JhaXMgZGEgdGVzZSBvdSBkaXNzZXJ0YcOnw6NvLCBlIG7Do28gZmFyw6EgcXVhbHF1ZXIgYWx0ZXJhw6fDo28sIGFsw6ltIGRhcXVlbGFzCmNvbmNlZGlkYXMgcG9yIGVzdGEgbGljZW7Dp2EuCg==
dc.title.por.fl_str_mv IPS: um plug-in para templates de códigos associativos
dc.title.alternative.eng.fl_str_mv IPS: a plug-in for associative code templates
title IPS: um plug-in para templates de códigos associativos
spellingShingle IPS: um plug-in para templates de códigos associativos
Moraes, Rodrigo Vieira de
Software - reutilização
Documentação de API
Exemplos de código
Templates de código
Computer software - Reusability
Code template
Code samples
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO
title_short IPS: um plug-in para templates de códigos associativos
title_full IPS: um plug-in para templates de códigos associativos
title_fullStr IPS: um plug-in para templates de códigos associativos
title_full_unstemmed IPS: um plug-in para templates de códigos associativos
title_sort IPS: um plug-in para templates de códigos associativos
author Moraes, Rodrigo Vieira de
author_facet Moraes, Rodrigo Vieira de
author_role author
dc.contributor.authorlattes.por.fl_str_mv http://lattes.cnpq.br/7919040444278953
dc.contributor.author.fl_str_mv Moraes, Rodrigo Vieira de
dc.contributor.advisor1.fl_str_mv Guimarães, José de Oliveira
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/1861719424612392
dc.contributor.authorID.fl_str_mv f9fcedb5-5272-44f7-b542-b7532d3b1867
contributor_str_mv Guimarães, José de Oliveira
dc.subject.por.fl_str_mv Software - reutilização
Documentação de API
Exemplos de código
Templates de código
topic Software - reutilização
Documentação de API
Exemplos de código
Templates de código
Computer software - Reusability
Code template
Code samples
CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO
dc.subject.eng.fl_str_mv Computer software - Reusability
Code template
Code samples
dc.subject.cnpq.fl_str_mv CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO::METODOLOGIA E TECNICAS DA COMPUTACAO
description The APIs are becoming increasingly more popular and they play a important role in software development. However, many APIs are large and complex that makes them hard to learn. Among avaliable resources to learn to use an API, there are the code samples. A code sample can be used to demonstrate to a programmer how to use API’s components together to attain a specific goal. But, code sample are static and they haven’t information about how to adapt the code snippet shown as example to programmer’s context. Tools have been proposed to assist the programmers in finding and adapting code snippets that may be useful for a programming task. A specific type of these tools are the code template tools. Code templates are code snippets manually registered containing integration directives. The integration directives instruct the code template tool on how to adapt a code snippet to programmer’s context. In this work, code snippet tools are investigated and it is proposed a code template tool called IPS. It presents some novelties in relation to other code template tools. In the IPS, a code template can be associated to a Java class and the IPS has a code template recommender that is automatically updated as the source code is edited by the programmer. Also it is proposed the role parameters, a new concept for the parameters of code templates that extends the concept of the parameters associated to a type which is present in current code template tools. The role parameters has the objective of accepting arguments that would at first be incompatible with a specific type, but that obey a expected pattern.
publishDate 2016
dc.date.issued.fl_str_mv 2016-11-25
dc.date.accessioned.fl_str_mv 2017-06-01T17:01:09Z
dc.date.available.fl_str_mv 2017-06-01T17:01:09Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/masterThesis
format masterThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv MORAES, Rodrigo Vieira de. IPS: um plug-in para templates de códigos associativos. 2016. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, Sorocaba, 2016. Disponível em: https://repositorio.ufscar.br/handle/20.500.14289/8807.
dc.identifier.uri.fl_str_mv https://repositorio.ufscar.br/handle/20.500.14289/8807
identifier_str_mv MORAES, Rodrigo Vieira de. IPS: um plug-in para templates de códigos associativos. 2016. Dissertação (Mestrado em Ciência da Computação) – Universidade Federal de São Carlos, Sorocaba, 2016. Disponível em: https://repositorio.ufscar.br/handle/20.500.14289/8807.
url https://repositorio.ufscar.br/handle/20.500.14289/8807
dc.language.iso.fl_str_mv por
language por
dc.relation.confidence.fl_str_mv 600
600
dc.relation.authority.fl_str_mv 22f707a3-dc98-4346-b548-be854c062742
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de São Carlos
Câmpus Sorocaba
dc.publisher.program.fl_str_mv Programa de Pós-Graduação em Ciência da Computação - PPGCC-So
dc.publisher.initials.fl_str_mv UFSCar
publisher.none.fl_str_mv Universidade Federal de São Carlos
Câmpus Sorocaba
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFSCAR
instname:Universidade Federal de São Carlos (UFSCAR)
instacron:UFSCAR
instname_str Universidade Federal de São Carlos (UFSCAR)
instacron_str UFSCAR
institution UFSCAR
reponame_str Repositório Institucional da UFSCAR
collection Repositório Institucional da UFSCAR
bitstream.url.fl_str_mv https://repositorio.ufscar.br/bitstreams/8594bcdf-a161-4faa-89a9-bdb0075af7f3/download
https://repositorio.ufscar.br/bitstreams/d1766a8a-f452-4502-9759-ad455cd3e25b/download
https://repositorio.ufscar.br/bitstreams/46d55e14-97d9-449d-bad3-2a0e982f541a/download
https://repositorio.ufscar.br/bitstreams/92974a31-9034-4ac6-b6a5-67852004a5c9/download
bitstream.checksum.fl_str_mv 25891a495567a6bce1d41328abf03d12
ae0398b6f8b235e40ad82cba6c50031d
e2a946e1072e8d9eea21d956ec3ec076
0200dcf5d8f374493a3b5ef69a043a37
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFSCAR - Universidade Federal de São Carlos (UFSCAR)
repository.mail.fl_str_mv repositorio.sibi@ufscar.br
_version_ 1834469078085926912