Uma abordagem para aumentar a segurança em refatoramentos de programas.

Detalhes bibliográficos
Ano de defesa: 2010
Autor(a) principal: SOARES, Gustavo Araújo. lattes
Orientador(a): GHEYI, Rohit. lattes, GUERRERO, Dalton Dario Serey. lattes
Banca de defesa: MASSONI, Tiago Lima., BORBA, Paulo Henrique Monteiro.
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Campina Grande
Programa de Pós-Graduação: PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
Departamento: Centro de Engenharia Elétrica e Informática - CEEI
País: Brasil
Palavras-chave em Português:
Área do conhecimento CNPq:
Link de acesso: https://dspace.sti.ufcg.edu.br/handle/riufcg/12041
Resumo: Refatoramentos são transformações de programas que preservam o comportamento observável e melhoram a qualidade do código. Cada transformação pode possuir um conjunto de pre-condições que devem ser satisfeitas para que o comportamento seja preservado. Muitas ferramentas como Eclipse e NetBeans automatizam vários desses refatoramentos. Entretanto, essas ferramentas podem realizar transformações errôneas, gerando programas que não compilam (mais simples de serem detectadas) ou com comportamentos diferentes dos originais (mais difíceis de serem detectadas). Isso ocorre porque cada ferramenta implementa os refatoramentos com base em um conhecimento informal do conjunto de precondições que precisam ser checadas. Não existe nenhuma teoria formal estabelecendo todas as pre-condições para cada refatoramento em linguagens como Java. Nesse trabalho, nós propomos uma abordagem e sua implementação (SAFEREFACTOR) para aumentar a segurança em refatoramentos de programas seqüenciais em Java. Nossa técnica pode detectar mudanças comportamentais na aplicação de quaisquer refatoramentos em programas seqüenciais. Avaliamos nossa técnica de três formas. Primeiramente aplicamos nossa técnica em um conjunto de 16 transformações aplicadas por ferramentas de refatoramento, já sabia-se, que elas não preservavam o comportamento. Nossa técnica detectou todas as mudanças comportamentais. Além disso, avaliamos em refatoramentos aplicados a sete sistemas reais em Java (3-100 KLOC). Eles foram realizados por desenvolvedores que asseguraram a corretude dos refatoramentos por meio de ferramentas e testes de unidades. Nossa técnica detectou uma mudança comportamental em um refatoramento aplicado ao JHotDraw (23 KLOC). Por fim, propomos o JDolly, um gerador de programas Java, com o objetivo de gerar entradas para testar implementações de refatoramentos. Utilizamos o SAFEREFACTOR e o JDolly para testar automaticamente 11 refatoramentos implementados pelo Eclipse. O JDolly gerou automaticamente um número de entradas que foram refatoradas utilizando cada implementação. O SAFEREFACTOR identificou 50 bugs (35 mudanças comportamentais e 15 erros de compilação) no Eclipse 3.4.2. Manualmente, identificamos que alguns destes bugs ocorrem também no NetBeans 6.7.
id UFCG_a948dfa025ce56cea65448ff983c4c83
oai_identifier_str oai:dspace.sti.ufcg.edu.br:riufcg/12041
network_acronym_str UFCG
network_name_str Biblioteca Digital de Teses e Dissertações da UFCG
repository_id_str
spelling GHEYI, Rohit.GHEYI, R.http://lattes.cnpq.br/2931270888717344GUERRERO, Dalton Dario Serey.GUERRERO, D. D. S.http://lattes.cnpq.br/2050632960242405MASSONI, Tiago Lima.BORBA, Paulo Henrique Monteiro.http://lattes.cnpq.br/6215732726947926SOARES, Gustavo Araújo.Refatoramentos são transformações de programas que preservam o comportamento observável e melhoram a qualidade do código. Cada transformação pode possuir um conjunto de pre-condições que devem ser satisfeitas para que o comportamento seja preservado. Muitas ferramentas como Eclipse e NetBeans automatizam vários desses refatoramentos. Entretanto, essas ferramentas podem realizar transformações errôneas, gerando programas que não compilam (mais simples de serem detectadas) ou com comportamentos diferentes dos originais (mais difíceis de serem detectadas). Isso ocorre porque cada ferramenta implementa os refatoramentos com base em um conhecimento informal do conjunto de precondições que precisam ser checadas. Não existe nenhuma teoria formal estabelecendo todas as pre-condições para cada refatoramento em linguagens como Java. Nesse trabalho, nós propomos uma abordagem e sua implementação (SAFEREFACTOR) para aumentar a segurança em refatoramentos de programas seqüenciais em Java. Nossa técnica pode detectar mudanças comportamentais na aplicação de quaisquer refatoramentos em programas seqüenciais. Avaliamos nossa técnica de três formas. Primeiramente aplicamos nossa técnica em um conjunto de 16 transformações aplicadas por ferramentas de refatoramento, já sabia-se, que elas não preservavam o comportamento. Nossa técnica detectou todas as mudanças comportamentais. Além disso, avaliamos em refatoramentos aplicados a sete sistemas reais em Java (3-100 KLOC). Eles foram realizados por desenvolvedores que asseguraram a corretude dos refatoramentos por meio de ferramentas e testes de unidades. Nossa técnica detectou uma mudança comportamental em um refatoramento aplicado ao JHotDraw (23 KLOC). Por fim, propomos o JDolly, um gerador de programas Java, com o objetivo de gerar entradas para testar implementações de refatoramentos. Utilizamos o SAFEREFACTOR e o JDolly para testar automaticamente 11 refatoramentos implementados pelo Eclipse. O JDolly gerou automaticamente um número de entradas que foram refatoradas utilizando cada implementação. O SAFEREFACTOR identificou 50 bugs (35 mudanças comportamentais e 15 erros de compilação) no Eclipse 3.4.2. Manualmente, identificamos que alguns destes bugs ocorrem também no NetBeans 6.7.Program Refactorings are behavior-preserving transformations. Each transformation can have a number of preconditions that must be satisfied to assure the behavior reservation. Many IDEs, such as Eclipse and NetBeans, automate a number of refactorings. However, these tools may perform incorrect transformations that introduce compilation errors (simple to be detected) or behavioral changes (very often go undetected). This happens because each tool implements refactorings based on an informal set of refactoring preconditions. In fact, there is no formal theory that establishes all preconditions for each refactoring in Java. In this work, we propose an approach and its implementation (SAFEREFACTOR) for making Java sequential program refactorings safer. Our technique detects behavioral changes in transformations performed on sequential programs. We evaluated it in three experiments. First, our technique was applied against 16 non-behavior-preserving transformations that are not detected by IDEs that implement refactorings. SAFEREFACTOR detected all behavioral changes. Next, we evaluated it on seven refactorings of real Java programs (from 3 to 100 KLOC) performed by developers that used refactoring tools and unit tests to guarantee the behavior preservation. Our technique detected a behavioral change in a refactoring applied to JHotDraw (23 KLOC). Finally, we propose a Java program generator (JDolly) in order to generate program inputs to refactoring implementations. We used SAFEREFACTOR and JDolly to test 11 refactorings implemented by Eclipse 3.4.2. JDolly automatically generated a number of programs to be refactored using Eclipse API. SAFEREFACTOR identified 50 bugs in these transformations (35 behavioral changes and 15 compilation errors). We manually identified that some of these bugs also happen in NetBeans 6.7.Submitted by Maria Medeiros (maria.dilva1@ufcg.edu.br) on 2020-02-18T11:19:56Z No. of bitstreams: 1 GUSTAVO ARAÚJO SOARES - DISSERTAÇÃO (PPGCC) 2010.pdf: 5312301 bytes, checksum: 972ac6d46eaf29379ba6b5e02791e41e (MD5)Made available in DSpace on 2020-02-18T11:19:56Z (GMT). No. of bitstreams: 1 GUSTAVO ARAÚJO SOARES - DISSERTAÇÃO (PPGCC) 2010.pdf: 5312301 bytes, checksum: 972ac6d46eaf29379ba6b5e02791e41e (MD5) Previous issue date: 2010-04-12CNPqUniversidade Federal de Campina GrandePÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃOUFCGBrasilCentro de Engenharia Elétrica e Informática - CEEICiência da ComputaçãoTestes de ProgramasManutenção de ProgramasRefatoramentoProgram TestsMaintenance of ProgramsRefactoringUma abordagem para aumentar a segurança em refatoramentos de programas.An approach to increase security in program refactoring.2010-04-122020-02-18T11:19:56Z2020-02-182020-02-18T11:19:56Zhttps://dspace.sti.ufcg.edu.br/handle/riufcg/12041SOARES, G. A. Uma abordagem para aumentar a segurança em refatoramentos de programas. 2010. 131 f. Dissertação (Mestrado em Ciência da Computação) Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2010. Disponível em: https://dspace.sti.ufcg.edu.br/handle/riufcg/12041info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisporinfo:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da UFCGinstname:Universidade Federal de Campina Grande (UFCG)instacron:UFCGTEXTGUSTAVO ARAÚJO SOARES - DISSERTAÇÃO (PPGCC) 2010.pdf.txtGUSTAVO ARAÚJO SOARES - DISSERTAÇÃO (PPGCC) 2010.pdf.txttext/plain233911https://dspace.sti.ufcg.edu.br/bitstream/riufcg/12041/4/GUSTAVO+ARA%C3%9AJO+SOARES+-+DISSERTA%C3%87%C3%83O+%28PPGCC%29+2010.pdf.txt4274007d2273830970a37074cb5c5a18MD54ORIGINALGUSTAVO ARAÚJO SOARES - DISSERTAÇÃO (PPGCC) 2010.pdfGUSTAVO ARAÚJO SOARES - DISSERTAÇÃO (PPGCC) 2010.pdfapplication/pdf4645081https://dspace.sti.ufcg.edu.br/bitstream/riufcg/12041/3/GUSTAVO+ARA%C3%9AJO+SOARES+-+DISSERTA%C3%87%C3%83O+%28PPGCC%29+2010.pdf3c3983f88a47ec8819405988bce80b4aMD53LICENSElicense.txtlicense.txttext/plain; charset=utf-81748https://dspace.sti.ufcg.edu.br/bitstream/riufcg/12041/2/license.txt8a4605be74aa9ea9d79846c1fba20a33MD52riufcg/120412025-07-24 05:51:03.372oai:dspace.sti.ufcg.edu.br:riufcg/12041Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Biblioteca Digital de Teses e Dissertaçõeshttp://bdtd.ufcg.edu.br/PUBhttp://dspace.sti.ufcg.edu.br:8080/oai/requestbdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.bropendoar:48512025-07-24T08:51:03Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)false
dc.title.pt_BR.fl_str_mv Uma abordagem para aumentar a segurança em refatoramentos de programas.
dc.title.alternative.pt_BR.fl_str_mv An approach to increase security in program refactoring.
title Uma abordagem para aumentar a segurança em refatoramentos de programas.
spellingShingle Uma abordagem para aumentar a segurança em refatoramentos de programas.
SOARES, Gustavo Araújo.
Ciência da Computação
Testes de Programas
Manutenção de Programas
Refatoramento
Program Tests
Maintenance of Programs
Refactoring
title_short Uma abordagem para aumentar a segurança em refatoramentos de programas.
title_full Uma abordagem para aumentar a segurança em refatoramentos de programas.
title_fullStr Uma abordagem para aumentar a segurança em refatoramentos de programas.
title_full_unstemmed Uma abordagem para aumentar a segurança em refatoramentos de programas.
title_sort Uma abordagem para aumentar a segurança em refatoramentos de programas.
author SOARES, Gustavo Araújo.
author_facet SOARES, Gustavo Araújo.
author_role author
dc.contributor.advisor2ID.pt_BR.fl_str_mv GUERRERO, D. D. S.
dc.contributor.advisor1.fl_str_mv GHEYI, Rohit.
dc.contributor.advisor1ID.fl_str_mv GHEYI, R.
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/2931270888717344
dc.contributor.advisor2.fl_str_mv GUERRERO, Dalton Dario Serey.
dc.contributor.advisor2Lattes.fl_str_mv http://lattes.cnpq.br/2050632960242405
dc.contributor.referee1.fl_str_mv MASSONI, Tiago Lima.
dc.contributor.referee2.fl_str_mv BORBA, Paulo Henrique Monteiro.
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/6215732726947926
dc.contributor.author.fl_str_mv SOARES, Gustavo Araújo.
contributor_str_mv GHEYI, Rohit.
GUERRERO, Dalton Dario Serey.
MASSONI, Tiago Lima.
BORBA, Paulo Henrique Monteiro.
dc.subject.cnpq.fl_str_mv Ciência da Computação
topic Ciência da Computação
Testes de Programas
Manutenção de Programas
Refatoramento
Program Tests
Maintenance of Programs
Refactoring
dc.subject.por.fl_str_mv Testes de Programas
Manutenção de Programas
Refatoramento
Program Tests
Maintenance of Programs
Refactoring
description Refatoramentos são transformações de programas que preservam o comportamento observável e melhoram a qualidade do código. Cada transformação pode possuir um conjunto de pre-condições que devem ser satisfeitas para que o comportamento seja preservado. Muitas ferramentas como Eclipse e NetBeans automatizam vários desses refatoramentos. Entretanto, essas ferramentas podem realizar transformações errôneas, gerando programas que não compilam (mais simples de serem detectadas) ou com comportamentos diferentes dos originais (mais difíceis de serem detectadas). Isso ocorre porque cada ferramenta implementa os refatoramentos com base em um conhecimento informal do conjunto de precondições que precisam ser checadas. Não existe nenhuma teoria formal estabelecendo todas as pre-condições para cada refatoramento em linguagens como Java. Nesse trabalho, nós propomos uma abordagem e sua implementação (SAFEREFACTOR) para aumentar a segurança em refatoramentos de programas seqüenciais em Java. Nossa técnica pode detectar mudanças comportamentais na aplicação de quaisquer refatoramentos em programas seqüenciais. Avaliamos nossa técnica de três formas. Primeiramente aplicamos nossa técnica em um conjunto de 16 transformações aplicadas por ferramentas de refatoramento, já sabia-se, que elas não preservavam o comportamento. Nossa técnica detectou todas as mudanças comportamentais. Além disso, avaliamos em refatoramentos aplicados a sete sistemas reais em Java (3-100 KLOC). Eles foram realizados por desenvolvedores que asseguraram a corretude dos refatoramentos por meio de ferramentas e testes de unidades. Nossa técnica detectou uma mudança comportamental em um refatoramento aplicado ao JHotDraw (23 KLOC). Por fim, propomos o JDolly, um gerador de programas Java, com o objetivo de gerar entradas para testar implementações de refatoramentos. Utilizamos o SAFEREFACTOR e o JDolly para testar automaticamente 11 refatoramentos implementados pelo Eclipse. O JDolly gerou automaticamente um número de entradas que foram refatoradas utilizando cada implementação. O SAFEREFACTOR identificou 50 bugs (35 mudanças comportamentais e 15 erros de compilação) no Eclipse 3.4.2. Manualmente, identificamos que alguns destes bugs ocorrem também no NetBeans 6.7.
publishDate 2010
dc.date.issued.fl_str_mv 2010-04-12
dc.date.accessioned.fl_str_mv 2020-02-18T11:19:56Z
dc.date.available.fl_str_mv 2020-02-18
2020-02-18T11:19:56Z
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.uri.fl_str_mv https://dspace.sti.ufcg.edu.br/handle/riufcg/12041
dc.identifier.citation.fl_str_mv SOARES, G. A. Uma abordagem para aumentar a segurança em refatoramentos de programas. 2010. 131 f. Dissertação (Mestrado em Ciência da Computação) Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2010. Disponível em: https://dspace.sti.ufcg.edu.br/handle/riufcg/12041
url https://dspace.sti.ufcg.edu.br/handle/riufcg/12041
identifier_str_mv SOARES, G. A. Uma abordagem para aumentar a segurança em refatoramentos de programas. 2010. 131 f. Dissertação (Mestrado em Ciência da Computação) Pós-Graduação em Ciência da Computação, Centro de Engenharia Elétrica e Informática, Universidade Federal de Campina Grande, Paraíba, Brasil, 2010. Disponível em: https://dspace.sti.ufcg.edu.br/handle/riufcg/12041
dc.language.iso.fl_str_mv por
language por
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 Campina Grande
dc.publisher.program.fl_str_mv PÓS-GRADUAÇÃO EM CIÊNCIA DA COMPUTAÇÃO
dc.publisher.initials.fl_str_mv UFCG
dc.publisher.country.fl_str_mv Brasil
dc.publisher.department.fl_str_mv Centro de Engenharia Elétrica e Informática - CEEI
publisher.none.fl_str_mv Universidade Federal de Campina Grande
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da UFCG
instname:Universidade Federal de Campina Grande (UFCG)
instacron:UFCG
instname_str Universidade Federal de Campina Grande (UFCG)
instacron_str UFCG
institution UFCG
reponame_str Biblioteca Digital de Teses e Dissertações da UFCG
collection Biblioteca Digital de Teses e Dissertações da UFCG
bitstream.url.fl_str_mv https://dspace.sti.ufcg.edu.br/bitstream/riufcg/12041/4/GUSTAVO+ARA%C3%9AJO+SOARES+-+DISSERTA%C3%87%C3%83O+%28PPGCC%29+2010.pdf.txt
https://dspace.sti.ufcg.edu.br/bitstream/riufcg/12041/3/GUSTAVO+ARA%C3%9AJO+SOARES+-+DISSERTA%C3%87%C3%83O+%28PPGCC%29+2010.pdf
https://dspace.sti.ufcg.edu.br/bitstream/riufcg/12041/2/license.txt
bitstream.checksum.fl_str_mv 4274007d2273830970a37074cb5c5a18
3c3983f88a47ec8819405988bce80b4a
8a4605be74aa9ea9d79846c1fba20a33
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da UFCG - Universidade Federal de Campina Grande (UFCG)
repository.mail.fl_str_mv bdtd@setor.ufcg.edu.br || bdtd@setor.ufcg.edu.br
_version_ 1863363469914406912