Introduction: Evolution of programming methodologies, What are aspects and how are they useful, OOPS Vs. AOP, What kind of problems can AOP solve, Tips and tricks for effective use of AOP , different AOP tools, importance of AOP in software development. Global trends in software development using AOP.

Aspect-Oriented Programming: Thinking aspects - in software design, code and testing. Writing and deploying reusable aspects, Using AOP to get more value from design patterns, Writing efficient AOP code Separation of concerns, point-cuts, Static aspects Dynamic aspects, Introduction to AspectJ, Meta-AspectJ.

Template-based Program Generation: String templates, Template meta-programming

Model-based Software Development: Domain modelling, Model transformations, Model-driven Architecture (MDA) , Embedding Domain-specific Languages.

Laboratory Work

Experiments using AspectJ highlighting the use of static aspects, dynamic aspects and meta aspects. Domain modelling in AspectJ.



Recommended Books

1.      Siobhán Clarke, Elisa Baniassad , “Aspect-Oriented Analysis and Design: The  Theme Approach”,  Addison-Wesley Object Technology Series (2005).

  1. Ivan Kiselev, “Aspect-Oriented Programming with AspectJ”, SAMS (2002).  

3.      Ramnivas Laddad, “AspectJ in Action: Practical Aspect-Oriented Programming”, Manning (2003).

  1. Adrian Colyer, Andy ClementGeorge Harley Matthew Webster, “ Eclipse AspectJ:  Aspect-Oriented Programming with AspectJ and the Eclipse AspectJ Development   Tools”, Addison-Wesley Professional (2004).
  2. Kleppe, Anneke G. “The model driven architecture : practice and promise”,  Addison-Wesley (2003).
  3. The AspectJ Programming Guide. Available at: