Stephan Herrmann
In this talk the Object Teams Development Tooling (OTDT) is
presented which extends the full set of the JDT's functionality
for programming in ObjectTeams/Java (OT/J).
OT/J, in turn, extends the Java language with support for role-based
and aspect-oriented development.
The Object Teams Development Tooling.
I will give a comprehensive walk through the JDT showing how
the original functionality is available in the OTDT and how
this functionality is extended to also reflect and support the
new concepts and features of OT/J. Examples include syntax highlighting, eager and incremental compilation, code navigation, structure viewers, search, code assist, refactoring and debugging,
all of which have been extended to reflect the new elements
of OT/J like team and role classes, an enhanced inheritance
relation for teams, and method bindings inducing new kinds
of control flows etc.
See also the OTDT List of Features.
Enabling Technology.
The talk will furthermore present the technology that made
possible this high fidelity extension.
In contrast to other projects that apply an architecture
with loose coupling between a custom compiler and Eclipse,
the OTDT employs deep integration to consistently leverage
the JDT, without being limited by the set of existing API and extension points, which naturally can never accommodate all
potential use cases of all possible extensions.
The obvious problem with such deep integration is the significant effort it costs to adapt the JDT in-place and to maintain such a fork.
The OTDT preserves maintainability by applying OT/J for its own implementation.
Using OT/Equinox as the technical integration, a number of aspect plug-ins host the adaptations we had to apply to existing plug-ins such as the JDT UI.
This allows us to concentrate our adaptations in a single location even without editing the original plug-in.
Thus, our approach combines the maintainability of a loosely
coupled approach with the feature-richness of a deep integration.
@pre
Attendees are not required to have prior knowledge about the
language ObjectTeams/Java since relevant concepts and features
will be explained as we go.
@post
Attendees should walk out from this talk with a comprehensive impression of how the IDE OTDT seamlessly extends the JDT, which implies a comparably low threshold for adopting OT/J.
In particular, developers of tooling for other languages should have an understanding of how the extended component framework OT/Equinox could also facilitate their jobs in building high fidelity IDEs for the growing family of Java-based languages and beyond. Finally, I hope that attendees will get interested in learning more about the advanced programming language OT/J and how it can help them improve and maintain their designs in day-to-day work.
Selected facts about the OTDT.
Stephan Herrmann received his Ph.D.
at Technische Universität Berlin in 2002
for his work on applying new techniques for separation of concerns
to the development of a multi-view software engineering environment.
Since then his focus is on developing the language ObjectTeams/Java
(OT/J) and its tools.
He was the leader of the publically funded TOPPrax project (5 institutions) which developed the tooling for OT/J and conducted real-world case studies with OT/J.
He has been teaching OT/J in class since 2003 and in tutorials at international conferences (NODe'05 and AOSD'06).
Stephan has organized the 2007-edition of the European Conference on Object-Oriented Programming (ECOOP) and several workshops.
He has been a speaker at international conferences like OOPSLA, TOOLS and AOSD.