Today, software engineers must build systems that address an increasingly wide range of technical, business, and performance concerns. Doing so using conventional object-oriented techniques, they often find themselves producing tangled, incorrect, difficult-to-maintain code. Aspect-oriented software development (AOSD) overcomes this problem by enabling them to express non-functional concerns separately, and then weave those modularized expressions into reliable, effective systems.
In this book, four leaders in AOSD development bring together today's most significant advances. Drawing on contributions from the field's leading researchers, they introduce fundamental AOSD concepts, present new technologies for AOSD engineering and programming, and detail early application experiences with AOSD methods. Coverage includes:
- Using AOSD to streamline complex systems development
without sacrificing flexibility or scalability
- How AOSD builds on the object-oriented paradigm -- and
how it's different
- State-of-the-art best practices for the entire AOSD
development process
- Languages and foundations: separating concerns, designing
composition filters, improving modularity, integrating new
features, and more
- Using key AOSD tools, including AspectJ, JMangler, and Java
Aspect Components
- Engineering aspect-oriented systems: UML, concern
modeling and elaboration, dependency management,
and aspect composition
- Developing more secure applications with AOSD techniques
- Applying aspect-oriented programming to database systems
- Building dynamic aspect-oriented infrastructure
Aspect-oriented development has come of age. Ifyou're
an experienced software engineer or architect, this foundation reference is all you need to start applying it in real-world systems.
Part 1 Language and Foundations
2. Aspect-Oriented Programming is Quantification
and Obliviousness
3. N Degress of Separation: Multi-Dimensional Separation
of Concerns.
4. Principles and Design Rationale of Composition Filters.
5. Aspect-Oriented Programming: A Historic Perspective
(What's in a Name?).
Part 2 Software Engineering
17. Engineering Aspect-Oriented Systems.
18.Aspect-Orientation in the Software Life Cycle:
Fact and Fiction.
19. Generic Aspect-Oriented Design with Theme/UML.
20. Expressing Aspects using UML Behavioral and
Structural Diagrams.
Part 3 Applications
27. Developing Secure Applications through
Aspect-Oriented Programming.
28. Structuring Operating System Aspects.
29. Aspect-Oriented Programming for Database Systems.
etc.