A Model-driven approach to formal refactoring

Detalhes bibliográficos
Ano de defesa: 2008
Autor(a) principal: Lima Massoni, Tiago
Orientador(a): Henrique Monteiro Borba, Paulo
Banca de defesa: Não Informado pela instituição
Tipo de documento: Tese
Tipo de acesso: Acesso aberto
Idioma: eng
Instituição de defesa: Universidade Federal de Pernambuco
Programa de Pós-Graduação: Não Informado pela instituição
Departamento: Não Informado pela instituição
País: Não Informado pela instituição
Palavras-chave em Português:
Link de acesso: https://repositorio.ufpe.br/handle/123456789/1556
Resumo: Como qualquer outra tarefa evolucionária, a aplicação de refatoramentos em software orientado a objetos normalmente afeta código-fonte e seus modelos relacionados, aumentando a dificuldade de manutenção de artefatos corretos e consistentes. Devido à distância de representação entre artefatos de modelagem e programação, o esforço ligado a refatoramentos logo torna-se duplicado e custoso. Neste contexto, suporte de ferramentas utilizado atualmente, em especial ferramentas de Round-Trip Engineering (RTE), falha em automatizar tarefas de evolução. Consequentemente, a maioria dos projetos de software descarta artefatos de modelagem precocemente, adotando abordagens centradas unicamente em código-fonte. Esta tese propõe uma abordagem formal para consistentemente refatorar modelos de objeto e programas orientados a objetos, baseando o refatoramento apenas em modelos de objetos. Refatoramento de modelos é fundamentado com transformações formais primitivas { leis de modelagem { que são garantidamente preservadoras de semântica. Cada refatoramento aplicado a um modelo de objetos é associado a uma sequência semi-automática de aplicações de leis de programação preservadoras de comportamento, chamadas estrategias. Estrategias são aplicadas na dependência de um relacionamento especifico de conformidade entre modelos de objetos e programas, que devem satisfazer também um dado grau de confinamento. Este trabalho formaliza 14 estratregias, duas para cada lei de modelagem que afeta estruturas do programa. Estas estratregias são formalizadas como táticas de refinamento. Desta forma, refatoramento correto de programas pode ser realizado com reduzida intervenção manual do desenvolvedor, baseado apenas nas transformações que o mesmo aplicou ao modelo. Neste cenario, refatoramentos complexos que afetam as principais estruturas do programa podem ser aplicados a um artefato de mais alto nível de abstra ção, deixando a atualização semi-automática dos detalhes de implementação para as estratregias. Além disso, invariantes do modelo podem ser usados para aprimorar ferramentas especializadas em refatoramento, já que modelos de objetos oferecem informação semântica que permite refatoramentos automáticos mais poderosos. Esta tese considera Alloy como linguagem de modelagem formal, além de uma linguagem de programação similar a Java que chamamos BN. Para esta linguagem, introduzimos quatro novos refatoramentos e leis de programação orientada a objetos, com suas provas e derivações correspondentes. Adicionalmente, as leis de programação foram aplicadas em uma semântica de referências, mais próxima de linguages de programação utilizadas na prática. Com o intuito de delimitar a aplicabilidade desta abordagem, formalizamos uma noção de conformidade entre modelos de objetos e programas, a partir de um framework formal para definição de relacionamentos de conformidade; as definições formais relacionadas foram especificadas e checadas quanto ao tipo na ferramenta PVS. Além disso, estabelecemos e provamos manualmente um teorema para a corretude das estratregias, definindo que elas preservam comportamento e conformidade dos programas refatorados. Mesmo sendo uma abordagem formal, temos a preocupação de discutir sua utilização prática, além de aplica-la em três estudos de caso. Os problemas apresentados nesta tese certamente serão enfrentados em qualquer abordagem de desenvolvimento dirigida por modelos, no momento em que se lida com evolução
id UFPE_a93929d6fcc0b83c0d77e6b7987ee1b0
oai_identifier_str oai:repositorio.ufpe.br:123456789/1556
network_acronym_str UFPE
network_name_str Repositório Institucional da UFPE
repository_id_str
spelling Lima Massoni, TiagoHenrique Monteiro Borba, Paulo 2014-06-12T15:51:08Z2014-06-12T15:51:08Z2008-01-31Lima Massoni, Tiago; Henrique Monteiro Borba, Paulo. A Model-driven approach to formal refactoring. 2008. Tese (Doutorado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2008.https://repositorio.ufpe.br/handle/123456789/1556Como qualquer outra tarefa evolucionária, a aplicação de refatoramentos em software orientado a objetos normalmente afeta código-fonte e seus modelos relacionados, aumentando a dificuldade de manutenção de artefatos corretos e consistentes. Devido à distância de representação entre artefatos de modelagem e programação, o esforço ligado a refatoramentos logo torna-se duplicado e custoso. Neste contexto, suporte de ferramentas utilizado atualmente, em especial ferramentas de Round-Trip Engineering (RTE), falha em automatizar tarefas de evolução. Consequentemente, a maioria dos projetos de software descarta artefatos de modelagem precocemente, adotando abordagens centradas unicamente em código-fonte. Esta tese propõe uma abordagem formal para consistentemente refatorar modelos de objeto e programas orientados a objetos, baseando o refatoramento apenas em modelos de objetos. Refatoramento de modelos é fundamentado com transformações formais primitivas { leis de modelagem { que são garantidamente preservadoras de semântica. Cada refatoramento aplicado a um modelo de objetos é associado a uma sequência semi-automática de aplicações de leis de programação preservadoras de comportamento, chamadas estrategias. Estrategias são aplicadas na dependência de um relacionamento especifico de conformidade entre modelos de objetos e programas, que devem satisfazer também um dado grau de confinamento. Este trabalho formaliza 14 estratregias, duas para cada lei de modelagem que afeta estruturas do programa. Estas estratregias são formalizadas como táticas de refinamento. Desta forma, refatoramento correto de programas pode ser realizado com reduzida intervenção manual do desenvolvedor, baseado apenas nas transformações que o mesmo aplicou ao modelo. Neste cenario, refatoramentos complexos que afetam as principais estruturas do programa podem ser aplicados a um artefato de mais alto nível de abstra ção, deixando a atualização semi-automática dos detalhes de implementação para as estratregias. Além disso, invariantes do modelo podem ser usados para aprimorar ferramentas especializadas em refatoramento, já que modelos de objetos oferecem informação semântica que permite refatoramentos automáticos mais poderosos. Esta tese considera Alloy como linguagem de modelagem formal, além de uma linguagem de programação similar a Java que chamamos BN. Para esta linguagem, introduzimos quatro novos refatoramentos e leis de programação orientada a objetos, com suas provas e derivações correspondentes. Adicionalmente, as leis de programação foram aplicadas em uma semântica de referências, mais próxima de linguages de programação utilizadas na prática. Com o intuito de delimitar a aplicabilidade desta abordagem, formalizamos uma noção de conformidade entre modelos de objetos e programas, a partir de um framework formal para definição de relacionamentos de conformidade; as definições formais relacionadas foram especificadas e checadas quanto ao tipo na ferramenta PVS. Além disso, estabelecemos e provamos manualmente um teorema para a corretude das estratregias, definindo que elas preservam comportamento e conformidade dos programas refatorados. Mesmo sendo uma abordagem formal, temos a preocupação de discutir sua utilização prática, além de aplica-la em três estudos de caso. Os problemas apresentados nesta tese certamente serão enfrentados em qualquer abordagem de desenvolvimento dirigida por modelos, no momento em que se lida com evoluçãoCoordenação de Aperfeiçoamento de Pessoal de Nível SuperiorengUniversidade Federal de PernambucoAttribution-NonCommercial-NoDerivs 3.0 Brazilhttp://creativecommons.org/licenses/by-nc-nd/3.0/br/info:eu-repo/semantics/openAccessAlloyRefactoringConnementModel-driven developmentA Model-driven approach to formal refactoringinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisreponame:Repositório Institucional da UFPEinstname:Universidade Federal de Pernambuco (UFPE)instacron:UFPETHUMBNAILarquivo2011_1.pdf.jpgarquivo2011_1.pdf.jpgGenerated Thumbnailimage/jpeg1289https://repositorio.ufpe.br/bitstream/123456789/1556/4/arquivo2011_1.pdf.jpga2cababc5453b05b4c6e25207b56101eMD54ORIGINALarquivo2011_1.pdfapplication/pdf1679074https://repositorio.ufpe.br/bitstream/123456789/1556/1/arquivo2011_1.pdfc82d3e4381d7c70bcfaffe3bf1eddd78MD51LICENSElicense.txttext/plain1748https://repositorio.ufpe.br/bitstream/123456789/1556/2/license.txt8a4605be74aa9ea9d79846c1fba20a33MD52TEXTarquivo2011_1.pdf.txtarquivo2011_1.pdf.txtExtracted texttext/plain456647https://repositorio.ufpe.br/bitstream/123456789/1556/3/arquivo2011_1.pdf.txt5ac0fa4eff478ea8be4e932d87c082f2MD53123456789/15562019-10-25 13:10:02.884oai:repositorio.ufpe.br:123456789/1556Tk9URTogUExBQ0UgWU9VUiBPV04gTElDRU5TRSBIRVJFClRoaXMgc2FtcGxlIGxpY2Vuc2UgaXMgcHJvdmlkZWQgZm9yIGluZm9ybWF0aW9uYWwgcHVycG9zZXMgb25seS4KCk5PTi1FWENMVVNJVkUgRElTVFJJQlVUSU9OIExJQ0VOU0UKCkJ5IHNpZ25pbmcgYW5kIHN1Ym1pdHRpbmcgdGhpcyBsaWNlbnNlLCB5b3UgKHRoZSBhdXRob3Iocykgb3IgY29weXJpZ2h0Cm93bmVyKSBncmFudHMgdG8gRFNwYWNlIFVuaXZlcnNpdHkgKERTVSkgdGhlIG5vbi1leGNsdXNpdmUgcmlnaHQgdG8gcmVwcm9kdWNlLAp0cmFuc2xhdGUgKGFzIGRlZmluZWQgYmVsb3cpLCBhbmQvb3IgZGlzdHJpYnV0ZSB5b3VyIHN1Ym1pc3Npb24gKGluY2x1ZGluZwp0aGUgYWJzdHJhY3QpIHdvcmxkd2lkZSBpbiBwcmludCBhbmQgZWxlY3Ryb25pYyBmb3JtYXQgYW5kIGluIGFueSBtZWRpdW0sCmluY2x1ZGluZyBidXQgbm90IGxpbWl0ZWQgdG8gYXVkaW8gb3IgdmlkZW8uCgpZb3UgYWdyZWUgdGhhdCBEU1UgbWF5LCB3aXRob3V0IGNoYW5naW5nIHRoZSBjb250ZW50LCB0cmFuc2xhdGUgdGhlCnN1Ym1pc3Npb24gdG8gYW55IG1lZGl1bSBvciBmb3JtYXQgZm9yIHRoZSBwdXJwb3NlIG9mIHByZXNlcnZhdGlvbi4KCllvdSBhbHNvIGFncmVlIHRoYXQgRFNVIG1heSBrZWVwIG1vcmUgdGhhbiBvbmUgY29weSBvZiB0aGlzIHN1Ym1pc3Npb24gZm9yCnB1cnBvc2VzIG9mIHNlY3VyaXR5LCBiYWNrLXVwIGFuZCBwcmVzZXJ2YXRpb24uCgpZb3UgcmVwcmVzZW50IHRoYXQgdGhlIHN1Ym1pc3Npb24gaXMgeW91ciBvcmlnaW5hbCB3b3JrLCBhbmQgdGhhdCB5b3UgaGF2ZQp0aGUgcmlnaHQgdG8gZ3JhbnQgdGhlIHJpZ2h0cyBjb250YWluZWQgaW4gdGhpcyBsaWNlbnNlLiBZb3UgYWxzbyByZXByZXNlbnQKdGhhdCB5b3VyIHN1Ym1pc3Npb24gZG9lcyBub3QsIHRvIHRoZSBiZXN0IG9mIHlvdXIga25vd2xlZGdlLCBpbmZyaW5nZSB1cG9uCmFueW9uZSdzIGNvcHlyaWdodC4KCklmIHRoZSBzdWJtaXNzaW9uIGNvbnRhaW5zIG1hdGVyaWFsIGZvciB3aGljaCB5b3UgZG8gbm90IGhvbGQgY29weXJpZ2h0LAp5b3UgcmVwcmVzZW50IHRoYXQgeW91IGhhdmUgb2J0YWluZWQgdGhlIHVucmVzdHJpY3RlZCBwZXJtaXNzaW9uIG9mIHRoZQpjb3B5cmlnaHQgb3duZXIgdG8gZ3JhbnQgRFNVIHRoZSByaWdodHMgcmVxdWlyZWQgYnkgdGhpcyBsaWNlbnNlLCBhbmQgdGhhdApzdWNoIHRoaXJkLXBhcnR5IG93bmVkIG1hdGVyaWFsIGlzIGNsZWFybHkgaWRlbnRpZmllZCBhbmQgYWNrbm93bGVkZ2VkCndpdGhpbiB0aGUgdGV4dCBvciBjb250ZW50IG9mIHRoZSBzdWJtaXNzaW9uLgoKSUYgVEhFIFNVQk1JU1NJT04gSVMgQkFTRUQgVVBPTiBXT1JLIFRIQVQgSEFTIEJFRU4gU1BPTlNPUkVEIE9SIFNVUFBPUlRFRApCWSBBTiBBR0VOQ1kgT1IgT1JHQU5JWkFUSU9OIE9USEVSIFRIQU4gRFNVLCBZT1UgUkVQUkVTRU5UIFRIQVQgWU9VIEhBVkUKRlVMRklMTEVEIEFOWSBSSUdIVCBPRiBSRVZJRVcgT1IgT1RIRVIgT0JMSUdBVElPTlMgUkVRVUlSRUQgQlkgU1VDSApDT05UUkFDVCBPUiBBR1JFRU1FTlQuCgpEU1Ugd2lsbCBjbGVhcmx5IGlkZW50aWZ5IHlvdXIgbmFtZShzKSBhcyB0aGUgYXV0aG9yKHMpIG9yIG93bmVyKHMpIG9mIHRoZQpzdWJtaXNzaW9uLCBhbmQgd2lsbCBub3QgbWFrZSBhbnkgYWx0ZXJhdGlvbiwgb3RoZXIgdGhhbiBhcyBhbGxvd2VkIGJ5IHRoaXMKbGljZW5zZSwgdG8geW91ciBzdWJtaXNzaW9uLgo=Repositório InstitucionalPUBhttps://repositorio.ufpe.br/oai/requestattena@ufpe.bropendoar:22212019-10-25T16:10:02Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)false
dc.title.pt_BR.fl_str_mv A Model-driven approach to formal refactoring
title A Model-driven approach to formal refactoring
spellingShingle A Model-driven approach to formal refactoring
Lima Massoni, Tiago
Alloy
Refactoring
Connement
Model-driven development
title_short A Model-driven approach to formal refactoring
title_full A Model-driven approach to formal refactoring
title_fullStr A Model-driven approach to formal refactoring
title_full_unstemmed A Model-driven approach to formal refactoring
title_sort A Model-driven approach to formal refactoring
author Lima Massoni, Tiago
author_facet Lima Massoni, Tiago
author_role author
dc.contributor.author.fl_str_mv Lima Massoni, Tiago
dc.contributor.advisor1.fl_str_mv Henrique Monteiro Borba, Paulo
contributor_str_mv Henrique Monteiro Borba, Paulo
dc.subject.por.fl_str_mv Alloy
Refactoring
Connement
Model-driven development
topic Alloy
Refactoring
Connement
Model-driven development
description Como qualquer outra tarefa evolucionária, a aplicação de refatoramentos em software orientado a objetos normalmente afeta código-fonte e seus modelos relacionados, aumentando a dificuldade de manutenção de artefatos corretos e consistentes. Devido à distância de representação entre artefatos de modelagem e programação, o esforço ligado a refatoramentos logo torna-se duplicado e custoso. Neste contexto, suporte de ferramentas utilizado atualmente, em especial ferramentas de Round-Trip Engineering (RTE), falha em automatizar tarefas de evolução. Consequentemente, a maioria dos projetos de software descarta artefatos de modelagem precocemente, adotando abordagens centradas unicamente em código-fonte. Esta tese propõe uma abordagem formal para consistentemente refatorar modelos de objeto e programas orientados a objetos, baseando o refatoramento apenas em modelos de objetos. Refatoramento de modelos é fundamentado com transformações formais primitivas { leis de modelagem { que são garantidamente preservadoras de semântica. Cada refatoramento aplicado a um modelo de objetos é associado a uma sequência semi-automática de aplicações de leis de programação preservadoras de comportamento, chamadas estrategias. Estrategias são aplicadas na dependência de um relacionamento especifico de conformidade entre modelos de objetos e programas, que devem satisfazer também um dado grau de confinamento. Este trabalho formaliza 14 estratregias, duas para cada lei de modelagem que afeta estruturas do programa. Estas estratregias são formalizadas como táticas de refinamento. Desta forma, refatoramento correto de programas pode ser realizado com reduzida intervenção manual do desenvolvedor, baseado apenas nas transformações que o mesmo aplicou ao modelo. Neste cenario, refatoramentos complexos que afetam as principais estruturas do programa podem ser aplicados a um artefato de mais alto nível de abstra ção, deixando a atualização semi-automática dos detalhes de implementação para as estratregias. Além disso, invariantes do modelo podem ser usados para aprimorar ferramentas especializadas em refatoramento, já que modelos de objetos oferecem informação semântica que permite refatoramentos automáticos mais poderosos. Esta tese considera Alloy como linguagem de modelagem formal, além de uma linguagem de programação similar a Java que chamamos BN. Para esta linguagem, introduzimos quatro novos refatoramentos e leis de programação orientada a objetos, com suas provas e derivações correspondentes. Adicionalmente, as leis de programação foram aplicadas em uma semântica de referências, mais próxima de linguages de programação utilizadas na prática. Com o intuito de delimitar a aplicabilidade desta abordagem, formalizamos uma noção de conformidade entre modelos de objetos e programas, a partir de um framework formal para definição de relacionamentos de conformidade; as definições formais relacionadas foram especificadas e checadas quanto ao tipo na ferramenta PVS. Além disso, estabelecemos e provamos manualmente um teorema para a corretude das estratregias, definindo que elas preservam comportamento e conformidade dos programas refatorados. Mesmo sendo uma abordagem formal, temos a preocupação de discutir sua utilização prática, além de aplica-la em três estudos de caso. Os problemas apresentados nesta tese certamente serão enfrentados em qualquer abordagem de desenvolvimento dirigida por modelos, no momento em que se lida com evolução
publishDate 2008
dc.date.issued.fl_str_mv 2008-01-31
dc.date.accessioned.fl_str_mv 2014-06-12T15:51:08Z
dc.date.available.fl_str_mv 2014-06-12T15:51:08Z
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.citation.fl_str_mv Lima Massoni, Tiago; Henrique Monteiro Borba, Paulo. A Model-driven approach to formal refactoring. 2008. Tese (Doutorado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2008.
dc.identifier.uri.fl_str_mv https://repositorio.ufpe.br/handle/123456789/1556
identifier_str_mv Lima Massoni, Tiago; Henrique Monteiro Borba, Paulo. A Model-driven approach to formal refactoring. 2008. Tese (Doutorado). Programa de Pós-Graduação em Ciência da Computação, Universidade Federal de Pernambuco, Recife, 2008.
url https://repositorio.ufpe.br/handle/123456789/1556
dc.language.iso.fl_str_mv eng
language eng
dc.rights.driver.fl_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
info:eu-repo/semantics/openAccess
rights_invalid_str_mv Attribution-NonCommercial-NoDerivs 3.0 Brazil
http://creativecommons.org/licenses/by-nc-nd/3.0/br/
eu_rights_str_mv openAccess
dc.publisher.none.fl_str_mv Universidade Federal de Pernambuco
publisher.none.fl_str_mv Universidade Federal de Pernambuco
dc.source.none.fl_str_mv reponame:Repositório Institucional da UFPE
instname:Universidade Federal de Pernambuco (UFPE)
instacron:UFPE
instname_str Universidade Federal de Pernambuco (UFPE)
instacron_str UFPE
institution UFPE
reponame_str Repositório Institucional da UFPE
collection Repositório Institucional da UFPE
bitstream.url.fl_str_mv https://repositorio.ufpe.br/bitstream/123456789/1556/4/arquivo2011_1.pdf.jpg
https://repositorio.ufpe.br/bitstream/123456789/1556/1/arquivo2011_1.pdf
https://repositorio.ufpe.br/bitstream/123456789/1556/2/license.txt
https://repositorio.ufpe.br/bitstream/123456789/1556/3/arquivo2011_1.pdf.txt
bitstream.checksum.fl_str_mv a2cababc5453b05b4c6e25207b56101e
c82d3e4381d7c70bcfaffe3bf1eddd78
8a4605be74aa9ea9d79846c1fba20a33
5ac0fa4eff478ea8be4e932d87c082f2
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Repositório Institucional da UFPE - Universidade Federal de Pernambuco (UFPE)
repository.mail.fl_str_mv attena@ufpe.br
_version_ 1813709047614930944