Uma linguagem específica de domínio para consulta em código orientado a aspectos

Detalhes bibliográficos
Ano de defesa: 2013
Autor(a) principal: Faveri, Cristiano de
Orientador(a): Piveta, Eduardo Kessler lattes
Banca de defesa: Vizzotto, Juliana Kaizer lattes, Nunes, Ingrid Oliveira de lattes
Tipo de documento: Dissertação
Tipo de acesso: Acesso aberto
Idioma: por
Instituição de defesa: Universidade Federal de Santa Maria
Programa de Pós-Graduação: Programa de Pós-Graduação em Informática
Departamento: Ciência da Computação
País: BR
Palavras-chave em Português:
Palavras-chave em Inglês:
Área do conhecimento CNPq:
Link de acesso: http://repositorio.ufsm.br/handle/1/5435
Resumo: Ensuring code quality is crucial in software development. Not seldom, developers resort to static analysis tools to assist them in both understanding pieces of code and identifying defects or refactoring opportunities during development activities. A critical issue when defining such tools is their ability to obtain information about code. Static analysis tools depend, in general, of an intermediate program representation to identify locations that meet the conditions described in their algorithms. This perspective can be enlarged when techniques of crosscutting concerns modularization, such as aspect-oriented programming (AOP) is applied. In AOP applications, a piece of code can be systematically affected, using both static and dynamic combinations. The main goal of this dissertation is the specification and the implementation of AQL, a domain-specific language (DSL) designed to search aspect-oriented code bases. AQL is a declarative language, based on object query language (OQL), which enables the task of querying elements, relationships and program metrics to support the construction of static analysis and code searching tools for aspect oriented programs. The language was designed in two steps. First, we built a framework (AOPJungle), responsible to extract data from aspect-oriented programs. AOPJungle performs the computation of metrics, inferences and connections between the elements of the program. In the second step, we built an AQL compiler as a reference implementation. We adopted a source-to-source transformation for this step, in which an AQL query is transformed into HQL statements before being executed. In order to evaluate the reference implementation, we developed a static analysis tool for identifying refactoring opportunities in aspect-oriented programs. This tool receives a set of AQL queries to identify potential scenarios where refactoring could be applied.
id UFSM-20_d7e5150bb0065f6712a528d97512afee
oai_identifier_str oai:repositorio.ufsm.br:1/5435
network_acronym_str UFSM-20
network_name_str Manancial - Repositório Digital da UFSM
repository_id_str
spelling 2014-12-152014-12-152013-08-28FAVERI, Cristiano de. A DOMAIN SPECIFIC LANGUAGE FOR ASPECT-ORIENTED CODE QUERY. 2013. 142 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Santa Maria, Santa Maria, 2013.http://repositorio.ufsm.br/handle/1/5435Ensuring code quality is crucial in software development. Not seldom, developers resort to static analysis tools to assist them in both understanding pieces of code and identifying defects or refactoring opportunities during development activities. A critical issue when defining such tools is their ability to obtain information about code. Static analysis tools depend, in general, of an intermediate program representation to identify locations that meet the conditions described in their algorithms. This perspective can be enlarged when techniques of crosscutting concerns modularization, such as aspect-oriented programming (AOP) is applied. In AOP applications, a piece of code can be systematically affected, using both static and dynamic combinations. The main goal of this dissertation is the specification and the implementation of AQL, a domain-specific language (DSL) designed to search aspect-oriented code bases. AQL is a declarative language, based on object query language (OQL), which enables the task of querying elements, relationships and program metrics to support the construction of static analysis and code searching tools for aspect oriented programs. The language was designed in two steps. First, we built a framework (AOPJungle), responsible to extract data from aspect-oriented programs. AOPJungle performs the computation of metrics, inferences and connections between the elements of the program. In the second step, we built an AQL compiler as a reference implementation. We adopted a source-to-source transformation for this step, in which an AQL query is transformed into HQL statements before being executed. In order to evaluate the reference implementation, we developed a static analysis tool for identifying refactoring opportunities in aspect-oriented programs. This tool receives a set of AQL queries to identify potential scenarios where refactoring could be applied.Assegurar a qualidade de código é um ponto crucial durante o desenvolvimento de software. Frequentemente, os desenvolvedores recorrem às ferramentas de análise estática para auxiliá-los tanto na compreensão de código, quanto na identificação de defeitos ou de oportunidades de refatoração durante o ciclo de desenvolvimento de aplicações. Um dos pontos críticos na definição de tais ferramentas está na sua capacidade de obter informações a respeito de código. As ferramentas de análise estática dependem, em geral, de uma representação intermediária de um programa para identificar situações que atendam às condições necessárias descritas em seus algoritmos. Esse panorama se amplia com o uso de técnicas de modularização de interesses transversais, tais como a programação orientada a aspectos (POA), na qual um código pode ser afetado de forma sistêmica, por meio de combinações estáticas e dinâmicas. O principal objetivo desta dissertação é a especificação e implementação de AQL, uma DSL (linguagem específica de domínio) para a realização de busca em código orientado a aspectos. A AQL é uma linguagem declarativa, baseada em linguagem de busca em objetos (OQL) e que permite consultar elementos, relações, derivações e métricas de um programa orientado a aspectos (OA), a fim de apoiar a construção de ferramentas de análise estática e de pesquisa em código. O projeto de implementação da linguagem foi realizado em duas etapas. Primeiro, foi criado um framework (AOPJungle) para a extração de dados de programas OA. O AOPJungle além de extrair dados de programas OA, realiza a computação de métricas, inferências e ligações entre os elementos de um programa. Na segunda etapa, um compilador de referência para AQL foi construído. A abordagem adotada foi a transformação fonte a fonte, sendo uma consulta AQL transformada em uma consulta HQL (Hibernate Query Language) antes de sua execução. A fim de avaliar a implementação proposta, uma ferramenta de análise estática para identificação de oportunidades de refatoração em programas AO foi elaborada, usando a AQL para a busca de dados sobre esses programas.application/pdfporUniversidade Federal de Santa MariaPrograma de Pós-Graduação em InformáticaUFSMBRCiência da ComputaçãoProgramação orientada a aspectosLinguagem de consultaLinguagem de programaçãoLinguagem específica de domínioAspect oriented programmingQuery languageProgramming languageDomain specific languageCNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAOUma linguagem específica de domínio para consulta em código orientado a aspectosA domain specific language for aspect-oriented code queryinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisPiveta, Eduardo Kesslerhttp://lattes.cnpq.br/8687196768910831Vizzotto, Juliana Kaizerhttp://lattes.cnpq.br/4384914116033913Nunes, Ingrid Oliveira dehttp://lattes.cnpq.br/1272997735344283Faveri, Cristiano de1003000000074003003003003001cfb7530-fa3a-4c24-bc53-2e9457c38de69b11f381-63fd-4294-991b-72a8accebc5da28a3f9d-068c-4165-b538-7bab497c78dc7ce340ae-13ae-4685-8e80-cb16dcb0550einfo:eu-repo/semantics/openAccessreponame:Manancial - Repositório Digital da UFSMinstname:Universidade Federal de Santa Maria (UFSM)instacron:UFSMORIGINALDE FAVERI, CRISTIANO.pdfapplication/pdf3197271http://repositorio.ufsm.br/bitstream/1/5435/1/DE%20FAVERI%2c%20CRISTIANO.pdf4ed59472f5f4d1c2892b29e9af879dd2MD51TEXTDE FAVERI, CRISTIANO.pdf.txtDE FAVERI, CRISTIANO.pdf.txtExtracted texttext/plain241904http://repositorio.ufsm.br/bitstream/1/5435/2/DE%20FAVERI%2c%20CRISTIANO.pdf.txt5871824ed742bff841564f9e6798a068MD52THUMBNAILDE FAVERI, CRISTIANO.pdf.jpgDE FAVERI, CRISTIANO.pdf.jpgIM Thumbnailimage/jpeg4517http://repositorio.ufsm.br/bitstream/1/5435/3/DE%20FAVERI%2c%20CRISTIANO.pdf.jpg1aee69ad47b3e2a37ea91d801f53a14bMD531/54352022-06-28 10:56:12.545oai:repositorio.ufsm.br:1/5435Repositório Institucionalhttp://repositorio.ufsm.br/PUBhttp://repositorio.ufsm.br/oai/requestopendoar:39132022-06-28T13:56:12Manancial - Repositório Digital da UFSM - Universidade Federal de Santa Maria (UFSM)false
dc.title.por.fl_str_mv Uma linguagem específica de domínio para consulta em código orientado a aspectos
dc.title.alternative.eng.fl_str_mv A domain specific language for aspect-oriented code query
title Uma linguagem específica de domínio para consulta em código orientado a aspectos
spellingShingle Uma linguagem específica de domínio para consulta em código orientado a aspectos
Faveri, Cristiano de
Programação orientada a aspectos
Linguagem de consulta
Linguagem de programação
Linguagem específica de domínio
Aspect oriented programming
Query language
Programming language
Domain specific language
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
title_short Uma linguagem específica de domínio para consulta em código orientado a aspectos
title_full Uma linguagem específica de domínio para consulta em código orientado a aspectos
title_fullStr Uma linguagem específica de domínio para consulta em código orientado a aspectos
title_full_unstemmed Uma linguagem específica de domínio para consulta em código orientado a aspectos
title_sort Uma linguagem específica de domínio para consulta em código orientado a aspectos
author Faveri, Cristiano de
author_facet Faveri, Cristiano de
author_role author
dc.contributor.advisor1.fl_str_mv Piveta, Eduardo Kessler
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/8687196768910831
dc.contributor.referee1.fl_str_mv Vizzotto, Juliana Kaizer
dc.contributor.referee1Lattes.fl_str_mv http://lattes.cnpq.br/4384914116033913
dc.contributor.referee2.fl_str_mv Nunes, Ingrid Oliveira de
dc.contributor.referee2Lattes.fl_str_mv http://lattes.cnpq.br/1272997735344283
dc.contributor.author.fl_str_mv Faveri, Cristiano de
contributor_str_mv Piveta, Eduardo Kessler
Vizzotto, Juliana Kaizer
Nunes, Ingrid Oliveira de
dc.subject.por.fl_str_mv Programação orientada a aspectos
Linguagem de consulta
Linguagem de programação
Linguagem específica de domínio
topic Programação orientada a aspectos
Linguagem de consulta
Linguagem de programação
Linguagem específica de domínio
Aspect oriented programming
Query language
Programming language
Domain specific language
CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
dc.subject.eng.fl_str_mv Aspect oriented programming
Query language
Programming language
Domain specific language
dc.subject.cnpq.fl_str_mv CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO
description Ensuring code quality is crucial in software development. Not seldom, developers resort to static analysis tools to assist them in both understanding pieces of code and identifying defects or refactoring opportunities during development activities. A critical issue when defining such tools is their ability to obtain information about code. Static analysis tools depend, in general, of an intermediate program representation to identify locations that meet the conditions described in their algorithms. This perspective can be enlarged when techniques of crosscutting concerns modularization, such as aspect-oriented programming (AOP) is applied. In AOP applications, a piece of code can be systematically affected, using both static and dynamic combinations. The main goal of this dissertation is the specification and the implementation of AQL, a domain-specific language (DSL) designed to search aspect-oriented code bases. AQL is a declarative language, based on object query language (OQL), which enables the task of querying elements, relationships and program metrics to support the construction of static analysis and code searching tools for aspect oriented programs. The language was designed in two steps. First, we built a framework (AOPJungle), responsible to extract data from aspect-oriented programs. AOPJungle performs the computation of metrics, inferences and connections between the elements of the program. In the second step, we built an AQL compiler as a reference implementation. We adopted a source-to-source transformation for this step, in which an AQL query is transformed into HQL statements before being executed. In order to evaluate the reference implementation, we developed a static analysis tool for identifying refactoring opportunities in aspect-oriented programs. This tool receives a set of AQL queries to identify potential scenarios where refactoring could be applied.
publishDate 2013
dc.date.issued.fl_str_mv 2013-08-28
dc.date.accessioned.fl_str_mv 2014-12-15
dc.date.available.fl_str_mv 2014-12-15
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 FAVERI, Cristiano de. A DOMAIN SPECIFIC LANGUAGE FOR ASPECT-ORIENTED CODE QUERY. 2013. 142 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Santa Maria, Santa Maria, 2013.
dc.identifier.uri.fl_str_mv http://repositorio.ufsm.br/handle/1/5435
identifier_str_mv FAVERI, Cristiano de. A DOMAIN SPECIFIC LANGUAGE FOR ASPECT-ORIENTED CODE QUERY. 2013. 142 f. Dissertação (Mestrado em Ciência da Computação) - Universidade Federal de Santa Maria, Santa Maria, 2013.
url http://repositorio.ufsm.br/handle/1/5435
dc.language.iso.fl_str_mv por
language por
dc.relation.cnpq.fl_str_mv 100300000007
dc.relation.confidence.fl_str_mv 400
300
300
300
300
dc.relation.authority.fl_str_mv 1cfb7530-fa3a-4c24-bc53-2e9457c38de6
9b11f381-63fd-4294-991b-72a8accebc5d
a28a3f9d-068c-4165-b538-7bab497c78dc
7ce340ae-13ae-4685-8e80-cb16dcb0550e
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Universidade Federal de Santa Maria
dc.publisher.program.fl_str_mv Programa de Pós-Graduação em Informática
dc.publisher.initials.fl_str_mv UFSM
dc.publisher.country.fl_str_mv BR
dc.publisher.department.fl_str_mv Ciência da Computação
publisher.none.fl_str_mv Universidade Federal de Santa Maria
dc.source.none.fl_str_mv reponame:Manancial - Repositório Digital da UFSM
instname:Universidade Federal de Santa Maria (UFSM)
instacron:UFSM
instname_str Universidade Federal de Santa Maria (UFSM)
instacron_str UFSM
institution UFSM
reponame_str Manancial - Repositório Digital da UFSM
collection Manancial - Repositório Digital da UFSM
bitstream.url.fl_str_mv http://repositorio.ufsm.br/bitstream/1/5435/1/DE%20FAVERI%2c%20CRISTIANO.pdf
http://repositorio.ufsm.br/bitstream/1/5435/2/DE%20FAVERI%2c%20CRISTIANO.pdf.txt
http://repositorio.ufsm.br/bitstream/1/5435/3/DE%20FAVERI%2c%20CRISTIANO.pdf.jpg
bitstream.checksum.fl_str_mv 4ed59472f5f4d1c2892b29e9af879dd2
5871824ed742bff841564f9e6798a068
1aee69ad47b3e2a37ea91d801f53a14b
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
repository.name.fl_str_mv Manancial - Repositório Digital da UFSM - Universidade Federal de Santa Maria (UFSM)
repository.mail.fl_str_mv
_version_ 1794524443159035904