A Study on Extensible Integrated Development Environments for Next-Generation Software Development

Takayuki Omori

An IDE (integrated development environment) is a collection of tools or functionalities which are required in daily software development tasks. Unfortunately, all the tools and functionalities in any situation of development are not prepared from the beginning. For this, recent IDEs much emphasize their plug-ability and provide extensible mechanisms for adding new tools and functionalities or removing them.

An Eclipse plug-in mechanism is famous in software development community. By using this mechanism, developers can easily add new components (plug-ins) with functionalities they want or remove already plugged-in components with needless functionalities. However, it is much difficult to construct plug-ins for developers' needs since the construction requires deep knowledge of the extensible mechanism and professional skills for programming the plug-ins.

To solve these problems in a next-generation IDE, this paper proposes the following two methods:

1. An easy-to-use extension mechanism using XML
This method adopts simple XML-based configurations which define functionalities of several extensions. Using our mechanism, a developer can implement new functionalities of the IDE by only writing its configurations and customize existing functionalities by only modifying them. Experimental results with a prototype of the proposed methods show the reduction of efforts to understand proprietary APIs provided by the IDE and demonstrate the feasibility of the easy-to-use extension mechanism.

2. A mechanism of recording editing operations of source code
This method records all editing operations performed by developers on an editor of the IDE. The recorded operations facilitate them to keep track of fine-grained changes of source code they are developing. No popular IDE still provide this information on a history of past operations. Experimental results with a running implementation of the proposed method and a small-scale program substantiate that the method has a practical use from the viewpoint of its feasibility and performance.

Since developers need to use various kinds of tools and functionalities for their development phases or their purposes, it is important to share and exchange of every information by the IDEs. Thus, the proposed IDE utilizes several XML formats for the source code, the configurations, and the editing operations in the above two methods.