RefaX A Refactoring Framework Based on XML

RefaX A Refactoring Framework Based on XMLShort Description
Refactoring, i.e., the process of changing a software system to improve its internal quality and preserving its external behavior, is gaining increasing acceptance among software developers. Even though many refactoring tools are now available for a variety of programming languages, most of them are difficult to reuse, extend or even customize, mainly because they provide no uniform way of representing and manipulating source code information. This paper presents a refactoring framework, called RefaX, which relies on open, XML-based source code models and processing standards to facilitate the development, customization and reuse of refactoring tools. In particular, RefaX makes it possible to develop refactoring tools that are independent of source code model, programming language and XML processing technology. The viability of the framework is illustrated through a refactoring prototype for Java.

Website: www.doc.ic.ac.uk | Filesize: 309kb
No of Page(s): 10

Content

The two main languages for querying XML data, both being W3C standards, are XPath [27] and XQuery [28]. Xpath is a simple query language to access parts of an XML document through path expressions. In addition to allow the description of paths over the XML tree, XPath also provides primitives for manipulating strings, numbers, and logical expressions. XPath is most commonly used as part of other more sophisticated technologies, such as XSLT [29], or as an API for extracting or filtering out parts of an XML document for later processing. Its greatest strength – simplicity – is also its main drawback, as the path expression mechanism lacks support for more advanced queries, such as nested, conditional and recursive queries.
XQuery is an extension of XPath. Thus, it also supports the concept of path expressions to access parts of the XML tree. However, unlike XPath, XQuery supports query expressions based on the clauses FOR, LET, WHERE, ORDER BY and RETURN (the so called FLOWR – or “flower” – clauses). These clauses bring extra power and flexibility to the language, as they allow the specification of multiple nested expressions in the same query. Other advanced features added by XQuery include several built-in operators for processing query results, such as sort, count and average; support for conditional queries through the logical operators IF/THEN/ELSE; and support for recursive queries through user-defined functions, which is XQuery’s mechanism for query encapsulation and abstraction. This latter feature is of particular interest for the development of refactoring operations, since many source code models and relationships are recursive in nature.

Get the file Download here

AddThis Social Bookmark Button
Related Books:
  • Analysis and Definition of a Language Independent Refactoring Catalog
  • Introduction to Refactoring
  • An introduction to Software Refactoring
  • Refactoring Code in Visual Studio 2005
  • Refactoring, The Process
  • Refactoring as Meta Programming
  • Binary Refactoring Improving Code Behind the Scenes
  • Refactoring Tactics and Strategies The Refactory Principals

  • Related Searches: , , , ,



    Comments

    Leave a Reply