Crosscutting concerns like security, transaction and resource management are inherent to software system. Handling them insufficiently leads to instable and not maintainable systems. New approaches like Aspect-Oriented Software Development (AOSD) are designed to cope with cross-cutting concerns. AOSD addresses the following problems when dealing with cross-cutting concerns:
Modularity: code implementing a crosscutting concern is hard to localize and change consistently
Transparency: code belonging to crosscutting concerns is tangled with various methods of the functional code of a class and gets easily broken when these methods have to be changed
Independent reusability: component implementations are polluted with code of crosscutting concerns and can not be reused in a context where other crosscutting concerns exist; likewise the implementation of the crosscutting concern can not be reused
Plug-ability: a cross-cutting feature somethimes should be easily pluggable into (and un-pluggable from) a system, e.g. personalization
AspectJ modularizes the concern in an aspect and connects the aspect through a point-cut declaration and so-called advices. From a pattern perspective, an aspect-oriented language like AspectJ is designed to resolve forces like modularity, transparence, independent reusability and plug-ability.
Since AspectJ (an AO extension to Java) is the only AO language that is mature enough for the industry yet, its usability is limited for several domains and development languages. Nevertheless we have to address the above mentioned forces with adequate OO designs. We are trying to find the OO patterns that help us solve them.
AOP is one solution to a number of forces. While individual design patterns might only solve some of those, a combination of design patterns might be necessary to solve all forces.
The goal of the focus group is to complete the above mentioned forces and find (existing) design and architectural patterns that address those forces.
Participants should provide short position statements (txt, doc, pdf or included in an email). Possible topics can be but are not restricted to:
Additional forces that result in or are caused by crosscutting concerns
Existing patterns or pattern languages that solve forces related to crosscutting concerns (e.g. component, security and resource management patterns)
Alternative pattern solutions to typical AspectJ implementations
Suggestions for classifying patterns that are related to crosscutting concerns (e.g. according to main problem they solve)
“New” patterns or patterns proposals for solving problems related to crosscutting concerns
We will provide a summary of all position statements for the focus group. We will start a collection and classification of patterns that all address problems leading to or caused by crosscutting concerns. Additionally, by investigating commonalities and differences of pattern solutions it might be possible to identify certain characteristics of these solutions, too.
To participate, please send your short position statement per e-mail to Christa Schwanninger and Egon Wuchner until June 30, 2004.
Christa Schwanninger, Egon Wuchner
Siemens AG, CT SE 2