IPS: um plug-in para templates de códigos associativos
| Autor(a) principal: | |
|---|---|
| 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 |