We are pleased to present a two day program that includes several interesting experience reports on the application of AOSD technologies in industry projects. You may expect good news as well as criticism.
You will definitely notice that the program also covers, apart from the relatively popular technologies such as AspectJ, the application of AOSD in other, sometimes even legacy programming languages. Furthermore, middleware solutions are represented as well. The result appears to be a healthy mix of topics.
In a closing panel on Thursday, the business value of AOSD for industry will be discussed. This session may highlight some key research topics.
Adopting AOSD in business application engineering, by C. Pohl, A. Charfi, W.
Gilani, S. Göbel, B. Grammel, H. Lochmann, A. Rummler and A. Spriesterbach
(SAP research)
SAP is the world's largest vendor of enterprise software. SAP Research is interested in understanding, evaluating, and applying aspect-oriented techniques in the context of large enterprise systems. This interest is also reected by our involvement several European and national research projectson Aspect-Oriented Software Development (AOSD). We reporton existing aspect-oriented concepts at SAP and presenta case study that illustrates several non-obvious crosscutting concerns in business software. We also discuss the benefits and challenges that arise when applying AOSD to large
scale industrial projects and present a road map to adopting
AOSD at SAP for productive use.
Solving crosscutting concerns – is there something missing in AspectJ?, By U.
Hohenstein (Siemens AG, Germany)
This paper presents some interesting experiences solving
typical crosscutting concerns with AspectJ. In spite of
handling obvious candidates such as persistence, some
language deficits – not only of AspectJ - have been detected.
The problems have a high potential to recur in other contexts
as well and are partially hard to overcome.
All the crosscutting concerns are well motivated and the
problems are discussed in detail.
12:30-14:00 LUNCH
14:00-15:30
AOSD for the Enterprise
Experience of using AOP with SOA and agile process to build an insurance
framework, By U. Banerjee, J. Venkatesh, T. Prasad, J. Raju and N. Kanakalata
(NIIT Technologies, India)
AOP, SOA and Agile process address different aspects of the
challenges of building flexible business application and they
complement each other. We successfully applied the three techniques
together to build a flexible life insurance underwriting
framework, which can be easily customized and implemented in
different enterprises. In this paper we share our experience of
using AOP with SOA and Scrum agile process. We have explained
the reason behind using AOP, how it aided the agile development
process, the synergy that we have noticed between
SOA and AOP and the experience of the team in using AOP.
A tool-based approach to managing crosscutting feature implementations, By I.
Groher, C. Krueger and C. Schwanninger (BigLever Software and Siemens AG)
Software product line engineering aims to reduce development
time, effort, cost and complexity by taking advantage of the commonality
within a portfolio of similar products. The effectiveness
of a software product line approach directly depends on how well
feature variability within the portfolio is managed throughout the
development lifecycle, from early analysis through maintenance
and evolution. Variability of features in a product line often has
widespread impact, crosscutting not only multiple parts of individual
artifacts but also multiple artifacts in multiple stages of the development
lifecycle. This paper presents a tool-based approach for
managing crosscutting feature variability in software product lines
using aspect-oriented principles. The approach makes it possible to
handle multi-artifact crosscutting. For code artifacts is is even independent
of the languages used for feature implementation. We
report on experiences made in industrial settings, including 2006
Software Product Line Hall of Fame inductee, LSI Logic’s Engenio
Storage Group.
Improving the design of a large Jave EE application with AOP, By T. Pijpops and
J. Van Reusel (Cegeka)
The Ventouris project is one of the largest Java EE projects in the
Benelux. Cegeka develops the project for eight social insurance
funds, with a total budget of more than 26,000 persondays and a
team of 60 people.
The project is split up into several modules, implemented by
several teams of approximately 10 persons each, following a
mixed Scrum and XP approach. During the development process,
the agile teams seek to continuously improve themselves, and
gradually migrated from a heavyweight, EJB based, architecture
to a lighter weight architecture based on Plain Old Java Objects
(POJO’s), Spring Framework and Aspect-Oriented Programming
(AOP).
In this paper, we will show how AOP helps to improve the
Object-Oriented (OO) design of a large Java EE application. We
will show how AOP helps to separate crosscutting infrastructure
concerns, like transaction management and auditing, from the
actual business logic. Finally, we will demonstrate how AOP
enables Domain-Driven Design (DDD) principles in a large codebase.
15:30-16:00 COFFEE BREAK
16:00-17:30
Does AOSD Work? Tales from AOSD-Europe, invited talk by Awais Rashid, University of Lancaster, UK
The key question facing any organisation interested in adopting AOSD
techniques is whether they work in non-trivial industrial contexts and if
they can provide the perceived modularity benefits that would yield
productivity and quality gains.
AOSD-Europe is a large-scale
academia-industry collaboration funded by the EC FP6 programme that has been
exploring these questions as part of its activities over the last 4 years.
In this talk I will reflect on these experiences both in medium to large scale
industrial projects as well as empirical studies conducted in controlled
environments. These experiences highlight the value of AOSD in delivering
improved software quality in non-trivial contexts. They also reveal adoption
barriers such as inertia to a new technology in an already over-loaded space
and the need for modular testing techniques to improve the confidence-level
in the deployability of AOSD mechanisms. I will conclude the talk by
discussing some non-conventional contexts in which AOSD is being applied
namely, analysis of historical religious texts and protection of children
against paedophilia in online social networks.
AOSD in Middleware
Architecting JBoss 5 with AOP in the Core, invited talk by Flavia Rainone
This talk will show how the core of the JBoss Application Server version
5 is integrated with JBoss AOP. The JBoss Application Server is one of
the leading Java application servers on the market. It is open-source
and free to use. It has used a microkernel as its core for a long time,
which has allowed it to quickly integrate new technologies into the
stack offered by the application server. The core of the JBoss
Application Server version 5 contains JBoss AOP embedded in the
microcontainer. The power of AOP in combination with the management
capabilities of the microcontainer provides the framework where all
JBoss AS 5 services, like transactionsm security, etc. will be deployed
as beans.
User-friendly aspects with compile-time imperative semantics in .NET, by G.
Fraiteur (PostSharp)
We present PostSharp Laos, an open-source static
aspect weaver for the .NET platform designed with simplicity
in mind. An original contribution of PostSharp Laos to aspectoriented
programming are imperative compile-time semantics of
aspects, thanks to which aspects can define methods that are
invoked at compile time. Compile-time imperative semantics help
in solving complex problems without the burden of a complex
declarative syntax. We give some examples of usage for compiletime
imperative semantics in PostSharp Laos: aspect validation;
aspect initialization; and complex pointcutting.
In the second part of the article, we present other features of
PostSharp Laos and sketch its architecture: PostSharp Laos is
implemented as a plug-in of PostSharp Core, a generic platform
for post-processing of .NET assemblies. New weavers targeting
the .NET framework may be developed on the top of this
platform, which would relieve weaver developers from typical
infrastructure concerns of assembly post-processing applications.
Thursday, April 3rd, 2008
9:00-10:30
Invited Talk by Gul Agha
(University of Illinois at Urbana-Champaign, USA)
“Time, Chance and Change: Aspects, Middleware and Reflection
in Pervasive Cyberspace”
10:30-11:00 COFFEE BREAK
11:00-11:30AOSD Community News
by AOSA Steering Committee
Aquarium: AOP in Ruby, by D. Wampler (Object Mentor Inc.)
Aquarium is an aspect-oriented programming (AOP) toolkit for
the Ruby language. It leverages the powerful metaprogramming
facilities of the language to provide convenient abstractions for
implementing aspects. Even for languages with good metaprogramming
facilities, e.g., most dynamically typed languages,
where it is possible to mimic AOP with the metaprogramming
API itself, the ability to design and implement software using the
same aspect idioms improves productivity and quality, just as it
does for statically typed languages like Java. This paper demonstrates
this advantage with example refactorings, using Aquarium,
of the well-known Ruby on Rails web framework.
Aquarium is designed with several goals in mind: (i) to demonstrate
the value of AOP facilities in languages with strong
metaprogramming facilities, (ii) to provide a powerful, yet intuitive
pointcut language, (iii) to support extensive runtime flexibility,
such as the ability to advise individual objects and to add and
remove aspects dynamically, and (iv) to facilitate the implementation
of powerful Domain-Specific Languages.
An overview of Mirjam and WeaveC: an industrial-strength aspect-oriented
language and weaver for C, by I. Nagy, R. van Engelen and D. van der Ploeg
(ASML, The Netherlands)
In this paper, we elaborate on the design of an industrial-strenght
aspect-oriented programming language and weaver for large-scale
software development. First, we present an analysis on the requirements
of a general purpose aspect-oriented language that can
handle crosscutting concerns in ASML software. We also outline
a strategy on working with aspects in large-scale software development
processes. In our design, we both re-use existing aspectoriented
language abstractions and propose new ones to address
the issues that we identified in our analysis. The quality of the
code ensured by the realized language and weaver has positive
impact both on maintenance effort and lead-time reduction in the
first line software development process. As evidence, we present
a short evaluation of the language and weaver as applied today in
the software development process of ASML.
An aspect-oriented Cobol for the industrial setting, by T Morioka, H. Danno and H.
Shinomi (Hitachi)
Cobol is still a vitally important language for mission-critical
enterprise systems, and so much effort is being spent on system
development projects involving Cobol applications. In order to
ease these tasks with the Aspect-Oriented Programming technology,
we have developed a version of Aspect-Oriented Cobol,
which constitutes the core of a system enhancement service being
offered for real-world customers.
We report on ALCOB, our aspect-description language, and its
weaving semantics. We have also implemented an industrystrength
weaver for ALCOB. We describe the business rationales
in our endeavour which gave rise to a set of clear design principles.