|Tutorial at AOSD'06, Bonn, Germany.|
|Date/Time:||Monday, March 20, 2006|
|Title:||Programming with Views and Collaborations in ObjectTeams/Java|
|Presenters:||Dr. Stephan Herrmann, Christine Hundt; |
Technische Universität Berlin
Aspect-oriented programming promises to significantly improve modularity for a specific class of aspects, that cut across the system structure as defined by classes and packages. The TOPPrax project systematically investigates the practical applicability of new programming languages and assesses the benefits for commercial software development.
This tutorial applies the second generation aspect language ObjectTeams/Java. By the collaboration-based approach of ObjectTeams/Java it is possible to structure the design and even the implementation according to the use-cases of an application. This greatly improves the traceability from requirements down to code and significantly reduces the efforts needed for software maintenance and evolution.
In this tutorial participants will learn how to develop reusable collaboration modules in the vein of collaboration-based design methods. The powerful integration mechanisms of ObjectTeams/Java will be used to demonstrate a-posteriori integration of modules cleanly separating functionality from integration. This is the basis for fundamentally improved modularity yielding easily adaptable architectures and facilitating future evolution.
Participants will also learn, how framework technology can be taken one step further by applying inheritance to a whole collaboration module. They will furthermore learn how to use collaboration instances to dynamically activate/deactivate aspects at runtime, yielding a more dynamic structure of the application including client-specific contexts and software modes. Various examples demonstrate, how aspects can be generalized to views, yielding an improved module structure for a wide range of typical situations in software.
The tutorial has been successfully taught at our industrial partner and at Net.ObjectDays 2005. Practical examples will be shown using the comprehensive, Eclipse based IDE for ObjectTeams/Java, which is freely available at our web site. Participants are expected to have good knowledge of object-oriented programming and Java in particular, and should be interested in high-quality software designs.