Aspect-Oriented Software Development

Robert E. Filman
Tzilla Elrad
Siobhán Clarke
Mehmet Aksit

Table of Contents

About the Editors xxv
About the Contributors xxvii
Preface xxxix

1 Introduction 1

Part 1 Languages and Foundations 9

2 Aspect-Oriented Programming Is Quantification and Obliviousness 21
Robert E. Filman and Daniel P. Friedman
3 N Degrees of Separation: Multi-Dimensional Separation of Concerns 37
Peri Tarr, Harold Ossher, Stanley M. Sutton, Jr., and William Harrison
4 Principles and Design Rationale of Composition Filters 63
Lodewijk Bergmans and Mehmet Aksit
5 AOP: A Historical Perspective (What's in a Name?) 97
Cristina Videira Lopes
6 AspectJ 123
Adrian Colyer
7 Coupling Aspect-Oriented and Adaptive Programming 145
Karl Lieberherr and David H. Lorenz
8 Untangling Crosscutting Models with CAESAR 165
Mira Mezini and Klaus Ostermann
9 Trace-Based Aspects 201
Remi Douence, Pascal Fradet, and Mario Südholt
10 Using Mixin Technology to Improve Modularity 219
Richard Cardone and Calvin Lin
11 Separating Concerns with First-Class Namespaces 243
Oscar Nierstrasz and Franz Achermann
12 Supporting AOP Using Reflection 261
Noury Bouraqadi and Thomas Ledoux
13 Inserting Ilities by Controlling Communications 283
Robert E. Filman, Stuart Barrett, Diana D. Lee, and Ted Linden
14 Using Bytecode Transformation to Integrate New Features 297
Geoff Cohen
15 JMangler--A Powerful Back-End for Aspect-Oriented Programming 311
Günter Kniesel, Pascal Costanza, and Michael Austermann
16 Aspect-Oriented Software Development with Java Aspect Components 343
Renaud Pawlak, Lionel Seinturier, Laurence Duchien, Laurent Martelli, Fabrice Legond-Aubry, and Gérard Florin

Part 2 Software Engineering 371

17 Engineering Aspect-Oriented Systems 379
Gordon S. Blair, Lynne Blair, Awais Rashid, Ana Moreira, João Araújo, and Ruzanna Chitchyan
18 Aspect-Orientation in the Software Lifecycle: Fact and Fiction 407
Pedro J. Clemente, Juan Hernández, José Luis Herrero, Juan Manuel Murillo, and Fernando Sánchez
19 Generic Aspect-Oriented Design with Theme/UML 425
Siobhán Clarke and Robert J. Walker
20 Expressing Aspects Using UML Behavioral and Structural Diagrams 459
Tzilla Elrad, Omar Aldawud, and Atef Bader
21 Concern Modeling for Aspect-Oriented Software Development 479
Stanley M. Sutton Jr. and Isabelle Rouvellou
22 Design Recommendations for Concern Elaboration Tools 507
Gail C. Murphy, William G. Griswold, Martin P. Robillard, Jan Hannemann, and Wesley Leong
23 An Initial Assessment of Aspect-Oriented Programming 531
Robert J. Walker, Elisa L. A. Baniassad, and Gail C. Murphy
24 Aspect-Oriented Dependency Management 557
Martin E. Nordberg III
25 Developing Software Components with Aspects: Some Issues and Experiences 585
John Grundy and John Hosking
26 Smartweaver: A Knowledge-Driven Approach for Aspect Composition 605
J. Andrés Díaz Pace, Marcelo R. Campo, and Federico U. Trilnik

Part 3 Applications 627

27 Developing Secure Applications Through Aspect-Oriented Programming 633
Bart De Win, Wouter Joosen, and Frank Piessens
28 Structuring Operating System Aspects 651
Yvonne Coady, Gregor Kiczales, Mike Feeley, Norm Hutchinson, and Joon Suan Ong
29 Aspect-Oriented Programming for Database Systems 657
Awais Rashid
30 Two-Level Aspect Weaving to Support Evolution 681 in Model-Driven Synthesis
Jeff Gray, Janos Sztipanovits, Douglas C. Schmidt, Ted Bapty, Sandeep Neema, and Aniruddha Gokhale
31 Dynamic Aspect-Oriented Infrastructure 711
Andrei Popovici, Gustavo Alonso, and Thomas Gross

Index 731