| | | Copyright |
| | | REPRINTS AND REVISIONS |
| | | | Reprints |
| | | | Revisions |
| | | Acknowledgments |
| | | About the Editors |
| | | About the Contributors |
| | | Preface |
| | | | ABOUT THIS BOOK |
| | | | HOW TO READ THIS BOOK |
| | | Chapter 1. Introduction |
| | | | Section 1.1. BOOK ORGANIZATION |
| | | | Section 1.2. COMMON TERMINOLOGY |
| | | | Section 1.3. HISTORICAL CONTEXT |
| | | Part 1. Languages and Foundations |
| | | | Chapter 2. Aspect-Oriented Programming Is Quantification and Obliviousness |
| | | | Section 2.1. INTRODUCTION |
| | | | Section 2.2. LOCAL AND UNITARY STATEMENTS |
| | | | Section 2.3. OBLIVIOUSNESS |
| | | | Section 2.4. QUANTIFICATION |
| | | | Section 2.5. IMPLEMENTATION ISSUES |
| | | | Section 2.6. ASPECT-ORIENTED LANGUAGES |
| | | | Section 2.7. RELATED WORK |
| | | | Section 2.8. CLOSING REMARKS |
| | | | ACKNOWLEDGMENTS |
| | | | REFERENCES |
| | | | Chapter 3. N Degrees of Separation: Multi-Dimensional Separation of Concerns |
| | | | Section 3.1. INTRODUCTION |
| | | | Section 3.2. MOTIVATION |
| | | | Section 3.3. MULTI-DIMENSIONAL SEPARATION OF CONCERNS |
| | | | Section 3.4. INSTANTIATION |
| | | | Section 3.5. RELATED WORK |
| | | | Section 3.6. CONCLUSIONS AND FUTURE WORK |
| | | | ACKNOWLEDGMENTS |
| | | | REFERENCES |
| | | | Chapter 4. Principles and Design Rationale of Composition Filters |
| | | | Section 4.1. INTRODUCTION |
| | | | Section 4.2. EXAMPLE: SOCIAL SECURITY SERVICES |
| | | | Section 4.3. INTRA-OBJECT CROSSCUTTING WITH COMPOSITION FILTERS |
| | | | Section 4.4. INTER-OBJECT CROSSCUTTING |
| | | | Section 4.5. EVALUATION |
| | | | Section 4.6. CONCLUSION |
| | | | REFERENCES |
| | | | Chapter 5. AOP: A Historical Perspective (What's in a Name?) |
| | | | Section 5.1. A MATTER OF STYLE |
| | | | Section 5.2. RESEARCH TRENDS IN THE EARLY '90S |
| | | | Section 5.3. THE BIRTH OF AOP AT PARC |
| | | | Section 5.4. BUILDING COMMUNITIES |
| | | | Section 5.5. LOOKING BACK |
| | | | Section 5.6. THE ESSENCE OF AOP |
| | | | Section 5.7. FUTURE CHALLENGES |
| | | | ACKNOWLEDGMENTS |
| | | | REFERENCES |
| | | | Chapter 6. AspectJ |
| | | | Section 6.1. ASPECTJ GOALS |
| | | | Section 6.2. THE ASPECTJ LANGUAGE |
| | | | Section 6.3. ASPECTJ TOOLS |
| | | | Section 6.4. FUTURE DIRECTIONS |
| | | | Section 6.5. CONCLUDING REMARKS |
| | | | Acknowledgments |
| | | | References |
| | | | Chapter 7. Coupling Aspect-Oriented and Adaptive Programming |
| | | | Section 7.1. INTRODUCTION |
| | | | Section 7.2. SHYNESS AS A METAPHOR FOR ADAPTIVE BEHAVIOR |
| | | | Section 7.3. REFLECTIVE ADAPTIVE PROGRAMMING WITH DJ |
| | | | Section 7.4. ASPECTUAL ADAPTIVE PROGRAMMING WITH DAJ |
| | | | Section 7.5. RELATED WORK |
| | | | Section 7.6. CONCLUSION |
| | | | REFERENCES |
| | | | Chapter 8. Untangling Crosscutting Models with CAESAR |
| | | | Section 8.1. INTRODUCTION |
| | | | Section 8.2. JOIN POINT INTERCEPTION |
| | | | Section 8.3. THE CAESAR MODEL |
| | | | Section 8.4. EVALUATION |
| | | | Section 8.5. IMPLEMENTATION |
| | | | Section 8.6. RELATED WORK |
| | | | Section 8.7. SUMMARY AND FUTURE WORK |
| | | | REFERENCES |
| | | | Chapter 9. Trace-Based Aspects |
| | | | Section 9.1. INTRODUCTION |
| | | | Section 9.2. CHARACTERISTICS OF TRACE-BASED ASPECTS |
| | | | Section 9.3. EXPRESSIVE ASPECTS AND EQUATIONAL REASONING |
| | | | Section 9.4. DETECTION AND RESOLUTION OF ASPECT INTERACTIONS |
| | | | Section 9.5. STATIC WEAVING OF SAFETY PROPERTIES |
| | | | Section 9.6. CONCLUSION |
| | | | REFERENCES |
| | | | Chapter 10. Using Mixin Technology to Improve Modularity |
| | | | Section 10.1. INTRODUCTION |
| | | | Section 10.2. MIXIN TECHNOLOGY |
| | | | Section 10.3. FIDGET DESIGN |
| | | | Section 10.4. USING FIDGET |
| | | | Section 10.5. MIXIN PROGRAMMING SUPPORT |
| | | | Section 10.6. FUTURE WORK |
| | | | Section 10.7. RELATED WORK |
| | | | Section 10.8. CONCLUSION |
| | | | ACKNOWLEDGMENTS |
| | | | REFERENCES |
| | | | Chapter 11. Separating Concerns with First-Class Namespaces |
| | | | Section 11.1. INTRODUCTION |
| | | | Section 11.2. PICCOLA |
| | | | Section 11.3. EXAMPLE: MIXIN LAYER COMPOSITION |
| | | | Section 11.4. SPECIFYING COMPOSITIONAL STYLES WITH FORMS |
| | | | Section 11.5. CONCLUSION |
| | | | ACKNOWLEDGMENTS |
| | | | REFERENCES |
| | | | Chapter 12. Supporting AOP Using Reflection |
| | | | Section 12.1. WHAT IS REFLECTION? |
| | | | Section 12.2. AOP USING REFLECTION |
| | | | Section 12.3. DISCUSSION |
| | | | Section 12.4. CONCLUSION |
| | | | REFERENCES |
| | | | Chapter 13. Inserting Ilities by Controlling Communications |
| | | | Section 13.1. ACHIEVING ILITIES BY CONTROLLING COMMUNICATION |
| | | | Section 13.2. OBJECT INFRASTRUCTURE FRAMEWORK |
| | | | Section 13.3. APPLIED ILITIES |
| | | | Section 13.4. RELATED WORK |
| | | | Section 13.5. CONCLUSION |
| | | | REFERENCES |
| | | | Chapter 14. Using Bytecode Transformation to Integrate New Features |
| | | | Section 14.1. ASPECTS AND TRANSFORMATION |
| | | | Section 14.2. AN OVERVIEW OF BYTECODE TRANSFORMATION |
| | | | Section 14.3. PROGRAMMING TRANSFORMATION |
| | | | Section 14.4. LESSONS LEARNED |
| | | | Section 14.5. CONCLUSION |
| | | | REFERENCES |
| | | | Chapter 15. JManglerA Powerful Back-End for Aspect-Oriented Programming |
| | | | Section 15.1. INTRODUCTION |
| | | | Section 15.2. GENERIC INTERCEPTION |
| | | | Section 15.3. OPEN ARCHITECTURE |
| | | | Section 15.4. SUPPORT FOR NON-LOCAL TRANSFORMATIONS |
| | | | Section 15.5. THE BCEL WEAVER |
| | | | Section 15.6. USAGE SCENARIOS |
| | | | Section 15.7. RELATED WORK |
| | | | Section 15.8. CONCLUSIONS AND FUTURE WORK |
| | | | ACKNOWLEDGMENTS |
| | | | APPENDIX 15.A SIMPLE CODE COVERAGE |
| | | | REFERENCES |
| | | | Chapter 16. Aspect-Oriented Software Development with Java Aspect Components |
| | | | Section 16.1. JAC FRAMEWORK AND PROGRAMMING MODEL |
| | | | Section 16.2. DESIGN NOTATION |
| | | | Section 16.3. JAC ARCHITECTURE FOR DISTRIBUTION |
| | | | Section 16.4. IMPLEMENTATION AND PERFORMANCE ISSUES FOR JAC |
| | | | Section 16.5. RELATED TECHNOLOGIES AND TOOLS |
| | | | Section 16.6. CONCLUSION |
| | | | REFERENCES |
| | | Part 2. Software Engineering |
| | | | Chapter 17. Engineering Aspect-Oriented Systems |
| | | | Section 17.1. REQUIREMENTS ENGINEERING |
| | | | Section 17.2. SPECIFICATION |
| | | | Section 17.3. DESIGN |
| | | | Section 17.4. IMPLEMENTATION |
| | | | Section 17.5. EVOLUTION |
| | | | Section 17.6. ASPECT INTERACTION |
| | | | Section 17.7. CONCLUSION |
| | | | REFERENCES |
| | | | Chapter 18. Aspect-Orientation in the Software Lifecycle: Fact and Fiction |
| | | | Section 18.1. INTRODUCTION |
| | | | Section 18.2. ASPECTS AT IMPLEMENTATION LEVEL |
| | | | Section 18.3. ASPECTS AT DESIGN LEVEL |
| | | | Section 18.4. CONCLUSION |
| | | | ACKNOWLEDGMENTS |
| | | | REFERENCES |
| | | | Chapter 19. Generic Aspect-Oriented Design with Theme/UML |
| | | | Section 19.1. INTRODUCTION |
| | | | Section 19.2. MOTIVATION |
| | | | Section 19.3. CROSSCUTTING THEMES: THE MODEL |
| | | | Section 19.4. ASPECTS AS THEMES: EXAMPLES |
| | | | Section 19.5. MAP TO HYPER/J |
| | | | Section 19.6. MAP TO ASPECTJ |
| | | | Section 19.7. MAPPING TO PROGRAMMING MODELS |
| | | | Section 19.8. RELATED WORK |
| | | | Section 19.9. CONCLUSION |
| | | | REFERENCES |
| | | | Chapter 20. Expressing Aspects Using UML Behavioral and Structural Diagrams |
| | | | Section 20.1. INTRODUCTION |
| | | | Section 20.2. CONCEPTS, NOTATION, AND THE MODELING LANGUAGE |
| | | | Section 20.3. THE PROCESS PRESCRIBED BY OUR METHODOLOGY |
| | | | Section 20.4. REALIZING THE BENEFITS OF OUR METHODOLOGY |
| | | | Section 20.5. CONCLUSION |
| | | | ACKNOWLEDGMENTS |
| | | | REFERENCES |
| | | | Chapter 21. Concern Modeling for Aspect-Oriented Software Development |
| | | | Section 21.1. INTRODUCTION |
| | | | Section 21.2. WHAT IS A CONCERN? |
| | | | Section 21.3. A VIEW OF CONCERNS |
| | | | Section 21.4. WHY DO WE NEED CONCERN MODELING? |
| | | | Section 21.5. CONCERN MODELING AS A FIRST-CLASS UNDERTAKING |
| | | | Section 21.6. COSMOS: A CONCERN-SPACE MODELING SCHEMA |
| | | | Section 21.7. A CONCERN-MODEL EXAMPLE |
| | | | Section 21.8. RELATED WORK |
| | | | Section 21.9. ADDITIONAL DISCUSSION |
| | | | Section 21.10. CONCLUSION |
| | | | ACKNOWLEDGMENTS |
| | | | REFERENCES |
| | | | Chapter 22. Design Recommendations for Concern Elaboration Tools |
| | | | Section 22.1. THE TOOLS STUDIED |
| | | | Section 22.2. STUDY FORMAT |
| | | | Section 22.3. DATA |
| | | | Section 22.4. RESULTS |
| | | | Section 22.5. RELATED WORK |
| | | | Section 22.6. CONCLUSION |
| | | | ACKNOWLEDGMENTS |
| | | | REFERENCES |
| | | | Chapter 23. An Initial Assessment of Aspect-Oriented Programming |
| | | | Section 23.1. ASPECTJ |
| | | | Section 23.2. EXPERIMENTS |
| | | | Section 23.3. INSIGHTS FROM COMBINED ANALYSIS |
| | | | Section 23.4. EXPERIMENTAL CRITIQUE |
| | | | Section 23.5. RELATED WORK |
| | | | Section 23.6. SUMMARY |
| | | | ACKNOWLEDGMENTS |
| | | | APPENDIX 23.A |
| | | | REFERENCES |
| | | | Chapter 24. Aspect-Oriented Dependency Management |
| | | | Section 24.1. DEPENDENCY MANAGEMENT PRINCIPLES |
| | | | Section 24.2. INDIRECTION AS A GENERALIZED PRINCIPLE: FROM POINTERS TO DESIGN PATTERNS AND BEYOND |
| | | | Section 24.3. ASPECT-ORIENTED ALTERNATIVES TO DESIGN PATTERNS |
| | | | Section 24.4. GUIDELINES FOR ASPECT-ORIENTED DEPENDENCY MANAGEMENT |
| | | | Section 24.5. MODELING BENEFITS FROM ASPECT-ORIENTED DEPENDENCY MANAGEMENT |
| | | | REFERENCES |
| | | | Chapter 25. Developing Software Components with Aspects: Some Issues and Experiences |
| | | | Section 25.1. INTRODUCTION |
| | | | Section 25.2. MOTIVATION |
| | | | Section 25.3. OUR APPROACH |
| | | | Section 25.4. COMPONENT SPECIFICATION AND DESIGN WITH ASPECTS |
| | | | Section 25.5. COMPONENT IMPLEMENTATION WITH ASPECTS |
| | | | Section 25.6. USING ASPECTS AT RUNTIME |
| | | | Section 25.7. RELATED WORK |
| | | | Section 25.8. EVALUATION |
| | | | Section 25.9. FUTURE RESEARCH DIRECTIONS |
| | | | Section 25.10. CONCLUSION |
| | | | REFERENCES |
| | | | Chapter 26. Smartweaver: A Knowledge-Driven Approach for Aspect Composition |
| | | | Section 26.1. KNOWLEDGE-DRIVEN WEAVING |
| | | | Section 26.2. A WORKFLOW APPLICATION EXAMPLE |
| | | | Section 26.3. APPLYING SMARTWEAVER: THE DEVELOPER'S VIEWPOINT |
| | | | Section 26.4. DEFINING THE WEAVING KNOWLEDGE: THE DESIGNER'S VIEWPOINT |
| | | | Section 26.5. RELATED WORK |
| | | | Section 26.6. CONCLUSION |
| | | | REFERENCES |
| | | Part 3. Applications |
| | | | Chapter 27. Developing Secure Applications Through Aspect-Oriented Programming |
| | | | Section 27.1. INTRODUCTION |
| | | | Section 27.2. THE DOMAIN OF APPLICATION-LEVEL SECURITY |
| | | | Section 27.3. AN EXPERIENCE REPORT |
| | | | Section 27.4. DISCUSSION |
| | | | Section 27.5. RELATED WORK |
| | | | Section 27.6. CONCLUSION |
| | | | ACKNOWLEDGMENTS |
| | | | REFERENCES |
| | | | Chapter 28. Structuring Operating System Aspects |
| | | | Section 28.1. ASPECTC |
| | | | Section 28.2. CONCLUSION |
| | | | REFERENCES |
| | | | Chapter 29. Aspect-Oriented Programming for Database Systems |
| | | | Section 29.1. INTRODUCTION |
| | | | Section 29.2. CROSSCUTTING CONCERNS IN OBJECT-ORIENTED DATABASE SYSTEMS |
| | | | Section 29.3. AOP IN OBJECT-ORIENTED DATABASE SYSTEMS |
| | | | Section 29.4. EVALUATION OF THE ASPECT-ORIENTED APPROACH |
| | | | Section 29.5. OTHER APPROACHES TO MODULARIZING CROSSCUTTING CONCERNS IN DATABASE SYSTEMS |
| | | | Section 29.6. CONCLUSION |
| | | | REFERENCES |
| | | | Chapter 30. Two-Level Aspect Weaving to Support Evolution in Model-Driven Synthesis |
| | | | Section 30.1. MODEL-INTEGRATED COMPUTING AND AOSD |
| | | | Section 30.2. EXAMPLE: MODEL WEAVING OF EAGER-LAZY EVALUATION CONSTRAINTS |
| | | | Section 30.3. GENERATING ASPECT CODE FROM DOMAIN-SPECIFIC MODELS |
| | | | Section 30.4. CONCLUSION |
| | | | ACKNOWLEDGMENTS |
| | | | REFERENCES |
| | | | Chapter 31. Dynamic Aspect-Oriented Infrastructure |
| | | | Section 31.1. INTRODUCTION |
| | | | Section 31.2. APPLICATION SCENARIO |
| | | | Section 31.3. APPLICATION AWARENESS USING ASPECT ORIENTATION |
| | | | Section 31.4. MEETING APPLICATION-AWARENESS REQUIREMENTS WITH PROSE |
| | | | Section 31.5. WEAVING ASPECTS IN A COMMUNITY OF NODES |
| | | | Section 31.6. USAGE EXAMPLES OF AOP IN APPLICATION AWARENESS |
| | | | Section 31.7. CONCLUSION |
| | | | ACKNOWLEDGMENTS |
| | | | REFERENCES |
| | | Index |