Seminar On Aspect Oriented Programming Presented by Gopal.V Yet Another Programming Methodology ? * Why another ? * Intentional Programming. * What's wrong with OOP ? * Modularity vs. Flexibility. * Encapsulation vs. Untangling. * Component based frameworks. Aspect Orientation * Untangling of code * Crosscutting of concerns * Aspect independence * Specific mini-languages * Aspect weaver * Object synchronization and management What Is an Aspect ? * Cannot be cleanly encapsulated in a generalized procedure. * Aspects tend not to be units of the system's functional decomposition, but rather to be properties that affect the performance or semantics of the components in systemic ways. * Examples of aspects include memory access patterns and synchronization of concurrent objects. Aspect Weaver * Combines the various aspect fragments. * Uses a set of rules to automate the process. * Design reflected in the weaving rules. * Optimizes the integration code. * Simplifies debugging and testing. * Errors about dangling or parallel aspects. When Do We Need AOP ? * In complicated programs to separate code fragments. * Type information is carried explicitly by the Object. * A case where the classes are also variables and may change parents or members. * Where synthetic runtime classes are generated. Implementation Examples * Alisp ­ Aspect Lisp (initial) * AspectJ ­ Aspect oriented java * Pythius ­ Aspect oriented python * Treecc ­ Aspect oriented compiler tool * Aspect++ ­ AOP for VC++