Uma extensão para a linguagem de consulta AQL
Campagnolo, Fernando Quatrin
Software systems are constantly modified and adapted to new features. These modifications usually increase their complexity and decrease their quality. One way to improve these features and keep an updated software system is to apply changes in programs, more specifically, refactoring. To find refactoring opportunities in systems, developers can use source code query languages. However, it is common to find discontinued query languages, which offer few resources and/or are proprietary. The main goal of this dissertation is to extend the AQL language (Aspect Query Language). AQL was designed to provide code search in aspect-oriented and object-oriented programs. To provide new features to the AQL language, a set of improvements was specified and implemented, including: (i) the expansion of the element search set, to improve the search granularity; (ii) the creation of instruction to manipulate program data (inserting, updating, and deleting elements); (iii) improvements in some clauses and language validation; and (iv) the extension of the AOPJungle framework, responsible for extracting data from the analyzed systems to the AQL reference implementation. To show the applicability of the new features, a study of case was conducted using the AQL extension to find refactoring opportunities and to apply refactorings in object-oriented programs.