Java-XML Tools Project
This project is based on and has been cooporating with the Sapid project.
- Jtool-1.2.17 release January 11, 2006
- Jrbx-1.2.9 release January 11, 2006
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:
To demonstrate how developers build software tools by using Sapid/XML platform, we have developed several tools:
- 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.
- 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.
- 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.
- 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.
- A CFG & PDG constructor generating a control flow graph (CFG) and a program dependence graph for a method of interest.
- 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.
- A refactoring browser supporting programmers to improve their deteriorated source code without changing its observable behavior.
- "A CASE Tool Platform Using an XML Representation of Java Source Code",
4th IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'04), pp.158-167, September, 2004 [pdf]
- "Design and Implementation of an Extensible and Modifiable Refactoring Tool",
13th IEEE International Workshop on Program Comprehension(IWPC'05), pp.195-204, May, 2005 [pdf]
- XSDML (our proposed XML representation)
- Access libraries
- Java wrappers
- APIs for CFGs & PDGs
- APIs for cross reference information
- Jtool (Sapid/XML tool platform)
(including the CFG & PDG constructor)
- Jrbx (Java Refactoring Browser with XML)
- Jxview (Java Cross-Reference Viewer) -- under construction
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.
- Akinori Yonezawa, University of Tokyo
- Etsuya Shibayama, Tokyo Institute of Technology
- Kiyoshi Agusa, Nagoya University
- All members who have been engaging the Sapid project
If you have further questions, please feel free to contact:
Department of Computer Science
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 firstname.lastname@example.org.