Java-XML Tools Project

This project is based on and has been cooporating with the Sapid project.

What's New

About This Project

Our research is aimed at providing an environment in which tool developers (or application programmers) can easily build useful and practical software tools and their built tools collaborate with each other. For this, we have been developing a tool platform that manages fine-grained information about Java source-code by using XML, which is called Sapid/XML (Sophisticated APIs for CASE tool Development with an XML repository). Sapid/XML has the following advantages:

  1. It makes Java source code more portable and exchangeable since a XML representation exposes the structure and relationship lurking in the code in spite of a text-based representation. Moreover, various XML technologies (e.g., DOM, SAX, and XSLT) and a lot of existing XML processors including Xerces can be used to build new tools.
  2. It allows tool developers to extend the representation by defining new tags and attributes. In addition, information unnecessary to a specific tool can be easily eliminated since every code fragment is explicitly classified. This representation is therefore more acceptable to various CASE tools than the AST.
  3. It preserves all characters of code fragments and stores them in the textual contents of XML elements. This conversion is suitable for implementing tools displaying and manipulating concrete source code. For example, a refactoring tool or a coding checker prefers to use our representation while some tools require abstract representation independent to a specific programming language. Furthermore, it is trivial to recover the original source code by removing all tags and leaving behind the textual contents of elements.
  4. It provides information resulting from semantic analysis in easy-to-understand and easy-to-use format. The authors are convinced that this information enables tool developers to avoid building the same or a similar analyzer from scratch. The provided information must be common and fundamental to all kinds of software tools although it is not enough to build them without supplemental information. Conventional IDEs never make such information open from the beginning.
To demonstrate how developers build software tools by using Sapid/XML platform, we have developed several tools:
  1. A CFG & PDG constructor generating a control flow graph (CFG) and a program dependence graph for a method of interest.
  2. A cross-reference viewer helping programmers understand the structure and behavior of programs being developed. This tool collects links about various references and relationships, e.g., a list of methods that calling a specified method and their positions in source code, or a list of methods that a specified overloads and overrides.
  3. A refactoring browser supporting programmers to improve their deteriorated source code without changing its observable behavior.




Downloads (License)


We would like to thank the following people who gave us helpful suggestions and comments.

This project was sponsored by the Information-technology Promotion Agency (IPA), Japan.

Contact Information

If you have further questions, please feel free to contact:

Katsuhisa Maruyama [][]
Department of Computer Science
Ritsumeikan University
1-1-1 Noji-higashi Kusatsu Shiga 525-8577, Japan
Tel: +81-77-561-4986, Fax: +81-77-561-2669

Copyright © 2003-2006 The Java-XML Tools Project. All rights reserved.
For problems or questions regarding this web, please contact
Last updated: