30 likes | 160 Vues
This guide explores the fundamental concepts of Aspect-Oriented Software Development (AOSD), including tangling, scattering, and key constructs like joinpoints and cross-cutting. It delves into AspectJ syntax, pointcut notation, and the AJDT environment. You'll learn about the categories and specifications of aspects, including how to ensure correctness and handle interference. Additionally, it covers middleware integration with AOP and metrics for assessing AOP practices. This comprehensive overview aims to enhance your understanding of modularity and the practical application of AOSD principles in software development.
E N D
Topics for exam in AOSD • Basic concepts: tangling , scattering, joinpoint, advice, cross-cutting, weaving • AspectJ: syntax, pointcut notations, around, proceed, AJDT environment • Categories of aspects: spectative, regulative, weakly/strongly invasive • Specifications of aspects: temporal logic (just what was in examples), assume-guarantee for system before/after weaving • Requirements and design for aspects: Arcade and Concern diagrams; requires/provides for UML (again, not beyond what was shown)
Topics (cont.) • EAOP: “observer” computation model, dynamic ordering and aspect instantiation (in tree), dynamic examples • Composition filters: basic model; error, dispatch, Meta filters; examples given • Correctness of aspects: once-and-for-all model checking (MAVEN approach), pointcut ready, weaving models • Interference among aspects: kinds of interference, Introductions and interference, common join points, specification-based interference, proving interference-freedom • Middleware and AOP: JBoss AOP, interceptors, using XML for binding, Java-based aspects • Metrics for AOP: general concepts, and what has been done
Summary • Aspects can treat real problems in a modular, reusable way • Interesting ideas on modularity, compositionality • Several language possibilities (we only saw a few) • May create new problems in correctness • Gaining acceptance in middleware, product lines, debugging, security • Still not mainstream, but worth considering • Thanks—it was fun…