ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.

Slides:



Advertisements
Similar presentations
Ch:8 Design Concepts S.W Design should have following quality attribute: Functionality Usability Reliability Performance Supportability (extensibility,
Advertisements

A Brief Introduction to Aspect-Oriented Programming Zhenxiao Yang.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
An Aspect-Oriented Approach For Web Application Access Control Presented by: Mohamed Hassan Carleton University Carleton University
ASTA Aspect Software Testing Assistant Juha Gustafsson, Juha Taina, Jukka Viljamaa University of Helsinki.
1 JAC : Aspect Oriented Programming in Java An article review by Yuval Nir and Limor Lahiani.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Aspect Oriented Programming - AspectJ Radhika Rajput.
Secure Systems Research Group - FAU Aspect Oriented Programming Carlos Oviedo Secure Systems Research Group.
Aspect-Oriented Programming In Eclipse ® Aspect-Oriented Programming in Eclipse with AspectJ Dr Helen Hawkins and Sian January.
University of British Columbia Software Practices Lab 2005 CASCON A Fluid AOP Editor Terry Hon Gregor Kiczales.
1 Aspect Oriented Programming Programming Languages Seminar Presenter: Barış Aktemur University of Illinois 18 Feb Mostly taken from Bedir Tekinerdogan’s.
October - December 2013CSC5021: The Problem With Aspects (J P Gibson)1 The Problem With Aspects (AOP) A style of programming that attempts to abstract.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Aspect-oriented programming Laura Ricci A.A
Advanced Topics in Software Design Post Modernism & Aspect Orientation: Advanced Separation of Concerns.
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
Deriving AO Software Architectures using the AO-ADL Tool Suite Luis Fernández, Lidia Fuentes, Mónica Pinto, Juan A. Valenzuela Universidad de Málaga
Introduction to Aspect- Oriented Programming CS 3360 Gregor Kiczales, et. al. Getting started with AspectJ, CACM, 44(10):59-65, October Fall 2012.
Taming Obliviousness in Aspects with Data-flow Analysis and Design by Contract Tim Molderez and Dirk Janssens Ansymo Antwerp Systems and Software Modelling.
1/19 Component Design On-demand Learning Series Software Engineering of Web Application - Principles of Good Component Design Hunan University, Software.
1 N Degrees of Separation: Multi-Dimensional Separation of Concern (MDSOC) HyperJ: language and concepts of general concern combination.
Secure Systems Research Group - FAU Aspects and mobile applications Sergio Soares Paulo Borba, “PaDA: A Pattern for Distribution Aspects” In Second Latin.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Supporting Heterogeneous Users in Collaborative Virtual Environments using AOP CoopIS 2001 September 5-7, Trento, Italy M. Pinto, M. Amor, L. Fuentes,
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
MOTOROLA and the Stylized M Logo are registered in the US Patent & Trademark Office. All other product or service names are the property of their respective.
1 Model Compiler Construction Based on Aspect-oriented Mechanisms Naoyasu Ubayashi (Kyushu Institute of Technology) Tetsuo Tamai (University of Tokyo)
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton February 28th, 2003 Advisor: David G. Hannay Client:
Aspect Oriented Programming Gülşah KARADUMAN.
On the Modularity Assessment of Aspect- Oriented Multi-Agent Systems Product Lines: a Quantitative Study Camila Nunes
1 Model Evolution with Aspect-oriented Mechanisms Naoyasu Ubayashi (Kyushu Institute of Technology) Tetsuo Tamai (University of Tokyo) Shinji Sano, Yusaku.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
A Distributed Aspect-Oriented System for J2EE Applications Muga Nishizawa and Shigeru Chiba (Tokyo Institute of Technology, Japan) Background - As benefits.
AOSD1 Aspect-Oriented Software Design Karl Lieberherr Theo Skotiniotis.
TRANSPARENT EXTENSION OF SINGLE- USER APPLICATIONS TO MULTI-USER REAL-TIME COLLABORATIVE SYSTEMS An Aspect Oriented Approach to Framework Integration ICEIS.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Aspect Oriented Programming An Introduction based on se-radio.net episode th October 2009 Aspect Oriented Programming - Nils Schmidt.
Introduction Better Faster Cheaper (pick any two) On-going issue that continues to motivate research in software engineering Applications: –continue to.
Aspect-Oriented Programming An Introductory Presentation Mike Landi MSCS Candidate Union University.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Alloy-based Lightweight Verification for Aspect-oriented Architecture Naoyasu Ubayashi(Kyushu Institute of Technology) Yuki Sato(Kyushu Institute of Technology)
AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil
Towards an Aspect-oriented Language Module: Aspects for Petri Nets Tim Molderez, Bart Meyers, Dirk Janssens and Hans Vangheluwe Ansymo Antwerp Systems.
1 Modularity Analysis of Use Case Implementations Fernanda d’Amorim Advisor: Paulo Borba.
问题 Code scattering Blocks of duplicated code Blocks of complementary code, and different modules implementing complementary parts of the concern Code.
Advanced Software Development Karl Lieberherr CSG 260 Fall Semester
aspectj tools new and noteworthy Mik Kersten University of British Columbia Adrian Colyer IBM Hursley OOPSLA, October
AOSD'04, Lancaster, UK 1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech) Shigeru Chiba (Tokyo Tech) Michiaki Tatsubori.
Applying Aspect-Orientation in Designing Security Systems Shu Gao Florida International University Center for Advanced Distributed Systems Engineering.
R R R A Brief Introduction to Aspect-Oriented Programming.
Introduction to Aspect- Oriented Programming CS 3360 Gregor Kiczales, et. al. Getting started with AspectJ, CACM, 44(10):59-65, October Spring 2012.
IWFST'2005, Shanghai Testing Aspect-Oriented Programs: Challenges and Opportunities Jianjun Zhao Department of Computer Science and Engineering Shanghai.
Aspect-Oriented Software Development (AOSD)
Inspections on Testing Aspect-Oriented Programs Rodrigo Manuel Lopes de Matos Moreira 4 th Doctoral Symposium on Informatics Engineering Porto, 6 th February.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
An approach for Integration of Aspect Orientation and Model- Driven Engineering using Aspect- Oriented Code Generation Presenter: Abid Mehmood Advisor:
Software Engineering Lecture 7
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Structuring Adaptive Applications using AspectJ and AOM
Aspect-oriented programming
AspectAda Aspect-Oriented Programming for Ada95
Chenchen Xi CNC Supervisor: Prof. John R. Gurd
Aspect Oriented Software Design
Refactoring the Aspectizable Interfaces: An Empirical Assessment
Presentation transcript:

ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan

Presentation Outline 1. Current Methods and Languages 2. Separation of Concerns (SOC) 3. Problem: cross-cutting 4. Concepts of Aspect-Oriented Development 5. Aspect Oriented Programming (AOP) 6. Applications: Tracer example 7. Integration Aspects and Components 8. Conclusions 9. References

Current Methods and Languages Support abstraction mechanisms for breaking a system down into components Concentrate on finding and composing functional units

Benefits of Good Modularity Also known as “clean separation of concerns”  no scattered code  no tangling  highly cohesive & loosely coupled

Separation of Concerns - Cohesion Cohesive component performs only one concern/task

Separation of Concerns - Coupling Two components are independent if they do not have interactions Highly coupled components have many dependencies/interactions

Modularity is not always possible... Some concerns don’t localize to objects … their code tends to be orthogonal to the rest of the requirements … and is spread out through many modules

Examples of crosscutting concerns  Synchronization  Real-time constraints  Error-checking  Object interaction constraints  Memory management  Persistency  Security  Caching  Logging  Monitoring  Testing  Domain specific optimization ...

Example - Figure Editor - Design

Figure Editor Example –cont’d

Crosscutting Concern - Example

Aspect-oriented development Aspect-oriented development addresses separation of concerns (SOC) Concerns are associated with cross-cutting Cross-cutting concerns are implemented as aspects and are dynamically woven into a program

Motivation for Aspect-Oriented Programming Programming paradigm for encapsulating crosscutting concerns into aspects. AOP builds on top of other programming paradigms: object-oriented, procedural or functional. It does not supplant them.

Key Abstractions for Different Programming Paradigms ParadigmAbstractionModularization Structured programming control flowcontrol structure Procedural programming computationsprocedure Object-oriented programming data typesclass/object Aspect-Oriented programming crosscutting concerns aspect

Concepts of AOP (I) Aspect: unit encapsulating a crosscutting concern. Join point: point in the execution of a program where an aspect might intervene. “[...] whenever condition C arises, perform action A”  Pointcut:expression of a subset of join points (condition C)  Advice: piece of code for action A.  Pointcuts and advice encapsulated into aspects.

Concepts of AOP (II) Weaving

Few Examples of Existing AOP technologies  AspectJ  HyperJ  AspectC++  Aspect#  Caesar  CompositionFilters  AspectWerkz  JBoss-AOP

Most Popular AOP technology AspectJ  a general purpose AO programming language  just as Java is a general-purpose OO language  extension to Java

AspectJ Five simple steps to create an AOP 1. Define the core/base functionality classes 2. Define the aspect class 3. Define the pointcut 4. Declare the advice 5. Weave & Compile

Tracer Example – Without AOP

Tracer Example – With AOP

Advantages of AOP Improves performance Allows better code reuse Enables better code encapsulation

Componentizing Aspects Representing each aspect as a single reusable component Map the characteristics of a component on aspect Explore the applicability of concepts on aspect

Conclusions Crosscutting concerns are typically scattered over several modules and result in tangled code. This reduces the modularity and as such the quality of the software system. AOSD provides explicit abstractions mechanisms to represent these so-called aspects and compose these into programs. Increases the modularity of systems.

References oriented_programming [Fil05] “Aspect-Oriented Software Development” by R.Filman et al., ISBN: