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 |
| dARK ID: | ark:/26339/00130000138f1 |
| Idioma: | por |
| Instituição de defesa: |
Universidade Federal de Santa Maria
BR Ciência da Computação UFSM Programa de Pós-Graduação em Informática |
| 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: | 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_d7e5150bb0065f6712a528d97512afee |
|---|---|
| oai_identifier_str |
oai:repositorio.ufsm.br:1/5435 |
| network_acronym_str |
UFSM |
| network_name_str |
Manancial - Repositório Digital da UFSM |
| repository_id_str |
|
| spelling |
Uma linguagem específica de domínio para consulta em código orientado a aspectosA domain specific language for aspect-oriented code queryProgramaçã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 COMPUTACAOEnsuring 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.Universidade Federal de Santa MariaBRCiência da ComputaçãoUFSMPrograma de Pós-Graduação em InformáticaPiveta, Eduardo Kesslerhttp://lattes.cnpq.br/8687196768910831Vizzotto, Juliana Kaizerhttp://lattes.cnpq.br/4384914116033913Nunes, Ingrid Oliveira dehttp://lattes.cnpq.br/1272997735344283Faveri, Cristiano de2014-12-152014-12-152013-08-28info:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/masterThesisapplication/pdfapplication/pdfFAVERI, 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/5435ark:/26339/00130000138f1porinfo:eu-repo/semantics/openAccessreponame:Manancial - Repositório Digital da UFSMinstname:Universidade Federal de Santa Maria (UFSM)instacron:UFSM2022-06-28T13:56:12Zoai:repositorio.ufsm.br:1/5435Biblioteca Digital de Teses e Dissertaçõeshttps://repositorio.ufsm.br/PUBhttps://repositorio.ufsm.br/oai/requestatendimento.sib@ufsm.br||tedebc@gmail.com||manancial@ufsm.bropendoar:2022-06-28T13:56:12Manancial - Repositório Digital da UFSM - Universidade Federal de Santa Maria (UFSM)false |
| dc.title.none.fl_str_mv |
Uma linguagem específica de domínio para consulta em código orientado a aspectos 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.none.fl_str_mv |
Piveta, Eduardo Kessler http://lattes.cnpq.br/8687196768910831 Vizzotto, Juliana Kaizer http://lattes.cnpq.br/4384914116033913 Nunes, Ingrid Oliveira de http://lattes.cnpq.br/1272997735344283 |
| dc.contributor.author.fl_str_mv |
Faveri, Cristiano 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 Aspect oriented programming Query language Programming language Domain specific language CNPQ::CIENCIAS EXATAS E DA TERRA::CIENCIA DA COMPUTACAO |
| 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 |
| 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.none.fl_str_mv |
2013-08-28 2014-12-15 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.uri.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. http://repositorio.ufsm.br/handle/1/5435 |
| dc.identifier.dark.fl_str_mv |
ark:/26339/00130000138f1 |
| 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. ark:/26339/00130000138f1 |
| url |
http://repositorio.ufsm.br/handle/1/5435 |
| 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.format.none.fl_str_mv |
application/pdf application/pdf |
| dc.publisher.none.fl_str_mv |
Universidade Federal de Santa Maria BR Ciência da Computação UFSM Programa de Pós-Graduação em Informática |
| publisher.none.fl_str_mv |
Universidade Federal de Santa Maria BR Ciência da Computação UFSM Programa de Pós-Graduação em Informática |
| 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 |
| repository.name.fl_str_mv |
Manancial - Repositório Digital da UFSM - Universidade Federal de Santa Maria (UFSM) |
| repository.mail.fl_str_mv |
atendimento.sib@ufsm.br||tedebc@gmail.com||manancial@ufsm.br |
| _version_ |
1847153486369652736 |