After a decade of object-oriented programming, many software projects have encountered the limitations of object-orientation as the sole methodology.
It is becoming obvious that it is not possible to map all requirements and concerns for a given problem domain onto a single class hierarchy. There are always concerns (aspects) that can only be described as a cut through a primary decomposition (class hierarchy). These crosscutting concerns cannot be directly implemented with programming languages such as Java™.
As opposed to objects that encapsulate their properties entirely, the properties and behavior of aspects are scattered across many classes in classical Java™ code. Aspect-oriented programming offers the possibility of encapsulating these crosscutting concerns parallel to a class hierarchy and to modularize them as aspects.
Learn more about the possibilities of aspect-oriented development in presentations, trainings or project support.
"Through the Looking Glass", by Grady Booch (from the July 2001 issue of Software Development)
The first time I really grasped the wonderful power of object-oriented abstractions, I thought I'd seen the ultimate model on which all kinds of complex systems could be grown. . . However, I was wrong: There's something deeper, something that's truly beyond objects. Admittedly, this isn't a concept that's easy to explain, because I'm still so steeped in an object-oriented view of the world. However, just as a sailor can sense a changing sea, I note subtle signs that point to a marked transformation, a disruptive technology, on the horizon.Top of page
Have a look at the next level of Java™ development and learn today what will be state-of-the-art by tomorrow. This presentation is designed not only for Java™ developers, but also particularly for software architects and project managers who are familiar with the design and implementation problems of classical Java/OO programming and who want to learn how AOP can help them to see these problems (and their solutions) in a new light.
Presentation language: German or English
Do you want to learn what aspect-oriented programming is and how AOP can help you improve your software design and how it eases the implementation of crosscutting concerns?
In this presentation, you will learn more about the basics of aspect-oriented development and why AOP will become the ideal supplementary for classical OOP.
Then you can decide if the use of AOP makes sense in your (Java) projects and if you want to book a training course in AspectJ.Top of page
In this seminar, software architects and Java developers will learn the basics of aspect-oriented programming with AspectJ™. The emphasis is placed on enabling participants to use the newly learned concepts immediately in their current Java projects. (Development aspects are only used at the development stage of a software project and have no impact on the released productive version)
Seminar language: German or English
This three-day seminar shows how the concepts of the aspect-oriented development in Java projects can be put to practice using AspectJ™. AspectJ has been developed as OpenSource at the XEROX Palo Alto Research Center and is the most common AOP language extension for Java™.
Please contact us for your seminar date, so that you can benefit from the advantages offered by AOP as soon as possible.Top of page
If you want to take advantage of aspect-oriented programming not only during the development stage, but also in the design of a new or existing application, project support throughout all stages (analysis, design and implementation) can help you to recognize problems at an early stage and to take the right (design) decisions. Since every Java™ program is also a valid AspectJ™ program, it is also possible to rework existing projects with the methodology of AOP.
Project language: German or English
Our project support can help you at all stages of your software development to get the most out of the possibilities offered by AOP:
During the analysis of the problem domain, those requirements and concerns that cannot be squeezed into a class hierarchy in classical object-oriented design are identified as aspect candidates.
During the design stage, the crosscutting concerns are modularized as aspects. So they become - just like objects - part of the design model and the software documentation.
Gesellschaft für aspekt-orientierte
c/o confidas Treuhand AG
Phone: +41 76 547 7115
AOSD.net: Information, discussions, conferences and many more useful AOP links
AOSE-SIG: Interest group for aspect-oriented software development
HyperJ: Method developed by IBM to synthesize Java™ classes from individual concerns / requirements in which they are involved.
ComposeJ: Java™-based Composition filter
AspectJ™: the AOP compiler for Java™ as a stand-alone tool or with outstanding IDE integration (Eclipse, JBuilder, NetBeans). It was invented by the XEROX Palo Alto Research Center (just like the Ethernet, the GUI and the mouse).
Aspect Browser: A tool for analyzing existing Java™ source code and to identify aspects.
ThemeUML: Emerging UML support for AOP projects
AspectWorkz: AOP tool for Java™ without language extension. "Weaving" of aspects and classes through bytecode modifications at runtime.Top of page