Uma linguagem específica de domínio para consulta em código orientado a aspectos
Ano de defesa: | 2013 |
---|---|
Autor(a) principal: | |
Orientador(a): | |
Banca de defesa: | , |
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 |