.:The Babylon Tool:.
Babylon is composed of 3 plugins. The babylon.core plugin
implements the model, babylon.developerUI plugin for the
framework developer interface and babylon.userUI for the
framework user interface.
Babylon core
Since our model is language independent the core plugin exposes an
extension point to allow extra language support to be plugged-in.
Providing a new language consists in implementing IFactory and
IReverseFactory to map elements descriptors to physical elements
and vice-versa (see \ref{ahsm1-ahsm2}), and IListener to capture
the creation/deletion/modification in the user code.
The implementation of a few wizards may be required when no
context is available for the creation of a physical element (they
are generally derived from the targeted language support).
Because Babylon is really language independent, no integration
with language specific views is provided, and it is up to the
person providing new languages to do the integration.
jBabylon
jBabylon is the name given to the plugin offering support for the
java language. It extends the extension point previously described
and rely on JDT. It uses a JavaCore listener to capture the java
delta and the java code is manipulated thanks to the JavaCore API.
However because the granularity of java delta was too big, we had
to rely on some internal classes to edit elements like return
type, parameters, etc.
jBabylon is seamlessly integrated with the JDT views by providing
contextual menus to enable the association of elements, start the
verification, etc. It also reuses JDT wizards.
Conclusion and further work
In this communication we presented \Tool{} and \Model, an eclipse
integrated tool and its model providing assistance when developing
with frameworks. We also gave examples of how \Tool{} can help
eclipse in dealing with framework, and more generally structural
dependencies.
We are now envisioning several directions to this work. On a model
aspect, we want to study the relation with the MDA. On a
implementation aspect, we would like to add support for new
languages, study the advantages we could take of EMF and GMT and
try to change some complex Websphere Studio wizards into
"always-running wizards" by using our model. On a usability
aspect, we will carry tests on users and see if the tooling really
helps developers productivity and framework documentation.
previous page
|