Aspect-Oriented Software Development (AOSD)

Slides:



Advertisements
Similar presentations
Chapter 27 Software Change.
Advertisements

Chapter 24 Quality Management.
Configuration management
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 31 Slide 1 Service-centric Software Engineering 1.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 12Slide 1 Software Design l Objectives To explain how a software design may be represented.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
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
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Chapter 21 - Aspect-oriented Software Development Lecture 1 1 Chapter 21 Aspect-oriented software engineering.
Secure Systems Research Group - FAU Aspect Oriented Programming Carlos Oviedo Secure Systems Research Group.
Figures – Chapter 21. Figure 21.1 Cross-cutting concerns.
Copyright © 2008 Accenture All Rights Reserved. Accenture, its logo, and High Performance Delivered are trademarks of Accenture. Andrew Stone Common Security.
Aspect-Oriented Programming In Eclipse ® Aspect-Oriented Programming in Eclipse with AspectJ Dr Helen Hawkins and Sian January.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Software Reuse Building software from reusable components Objectives
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 30 Slide 1 Security Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Creating Architectural Descriptions. Outline Standardizing architectural descriptions: The IEEE has published, “Recommended Practice for Architectural.
Aspect Oriented Programming Written by Michael Beder.
Soft. Eng. II, Spring 02Dr Driss Kettani, from I. Sommerville1 CSC-3325: Chapter 6 Title : The Software Reuse Reading: I. Sommerville, Chap. 20.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 30 Slide 1 Security Engineering.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 2.
Architectural Design Establishing the overall structure of a software system Objectives To introduce architectural design and to discuss its importance.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 27Slide 1 Chapter 27 Software Change.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 1 Slide 1 System and Software Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 27 Slide 1 Quality Management 1.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 22Slide 1 Verification and Validation u Assuring that a software system meets a user's.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Software Engineering Muhammad Fahad Khan
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 30 Slide 1 Security Engineering 1.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
©Ian Sommerville 2000 Software Engineering, 6th edition. Slide 1 Component-based development l Building software from reusable components l Objectives.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
By Xiangzhe Li Thanh Nguyen.  Introduction  Terminology  Architecture  Component  Connector  Configuration  Architectural Style  Architectural.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 25 Slide 1 Process Improvement l Understanding, Modelling and Improving the Software Process.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Aspect Oriented Programming Gülşah KARADUMAN.
Joel Phinney March 31, ◦ Concerns  Separation of Concerns, Tangled and Scattered Concerns, Cross-Cutting Concerns, Aspects ◦ Aspect-Oriented Software.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 22 Slide 1 Software Verification, Validation and Testing.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
©Ian Sommerville 2004 Software Engineering. Chapter 21Slide 1 Chapter 21 Software Evolution.
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.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution 1.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 18 Slide 1 Software Reuse.
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil
Architecture View Models A model is a complete, simplified description of a system from a particular perspective or viewpoint. There is no single view.
Slide 1 Service-centric Software Engineering. Slide 2 Objectives To explain the notion of a reusable service, based on web service standards, that provides.
Applying Aspect-Orientation in Designing Security Systems Shu Gao Florida International University Center for Advanced Distributed Systems Engineering.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 21 Slide 1 Software evolution.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 23 Slide 1 Software testing.
Lecturer: Eng. Mohamed Adam Isak PH.D Researcher in CS M.Sc. and B.Sc. of Information Technology Engineering, Lecturer in University of Somalia and Mogadishu.
Aspect-oriented Code Generation Approaches Abid Mehmood & Dayang N. A. Jawawi Department of Software Engineering Faculty of Computer Science and Information.
©Ian Sommerville 2000Software Engineering, 6th edition. Chapter 19Slide 1 Verification and Validation l Assuring that a software system meets a user's.
Software Engineering Lecture 7
Chapter 8 – Software Testing
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Aspect-Oriented Programming
Aspect Oriented Software Design
Refactoring the Aspectizable Interfaces: An Empirical Assessment
Presentation transcript:

Aspect-Oriented Software Development (AOSD) Chapter 32 Aspect-Oriented Software Development (AOSD)

Objectives To explain the principle of separation of concerns in software development To introduce the fundamental ideas and the associated terminology underlying aspect-oriented development

Topics covered Introduction and motivation The separation of concerns Core vs. cross-cutting concerns Aspects, join points and pointcuts Information hiding vs. AOSD Problems with AOSD

Which mapping? ?

Introduction and motivation In most large systems, the mapping between requirements and components is not 1:1. Thus, implementing a requirements change may involve understanding and changing many components. Aspect-Oriented Software Development (AOSD) is an emerging approach intended to address this problem. (cont’d)

Introduction and motivation (cont’d) Aspects are used to encapsulate concerns (requirements) that cross-cut system components. An aspect-oriented program is created by automatically weaving (i.e., combining) objects, methods, and aspects. Companies such as IBM are experimenting with aspect-oriented programming languages (e.g., AspectJ), but AOSD is not yet main-stream SE. AspectJ was developed at Xerox PARC and made available in 2001.

What are concerns? Concerns reflect system requirements and the priorities of system stakeholders. Separating concerns in a program via procedures, classes, and aspects  clear traceability from requirements This facilitates program understanding and the implementation of requirements change.

Types of concerns Functional: related to specific functionality to be included in a system. Quality of service: related to the non- functional behaviour of a system (e.g., performance, reliability, availability). System: related to attributes of the system as a whole (e.g., maintainability, configurability). Organizational: related to organizational goals and priorities (e.g., staying within budget, using existing software assets).

Core vs. cross-cutting concerns Core concerns relate to a system’s primary purpose and are normally localized within separate procedures, objects, etc. Cross-cutting concerns are normally distributed among a number of program components, resulting in problems when changes are required due to: tangling (a component implements multiple requirements), and scattering (a requirement’s implementation is scattered across more than one component).

Cross-cutting concerns Core concerns New customer Account Customer reqmts reqmts. management reqmts (tangling) Security reqmts Cross-cutting concerns Recovery reqmts Internet Banking System

Aspect-oriented software development (AOSD) An aspect is an abstraction which encapsulates the code associated with a cross-cutting concern. Aspects include a definition of where they should be included in a program as well as the code implementing the cross-cutting concern.

Aspect terminology Advice: the code implementing a concern Pointcut: defines specific program events with which advice should be associated (i.e., woven into a program at appropriate join points) Events may be method calls/returns, accessing data, exceptions, etc. Weaving: incorporation of advice code into the program (via source code pre-processing, link-time weaving, or execution- time weaving)

An “authentication” aspect

Information hiding vs. AOSD isolating potentially changeable design decisions (core concerns) in separate program components AOSD: isolating potentially changeable “cross-cutting concerns” (design decisions that cut across program components) in separate program aspects.

Problems with AOSD AO programs can be “black-box tested” using requirements to design the tests, but program inspections and “white-box testing” can be problematic, since you can’t always tell from the source code alone where an aspect will be woven and executed. “Flattening” an aspect-oriented program for reading is problematic. (E.g., join point model may be dynamic; aspects may be competing.)

Key points The key benefit of AOSD is that it supports the separation of (requirements related) concerns. Aspects are used to encapsulate concerns that cross-cut system components. An aspect-oriented program is created by automatically weaving (i.e., combining) objects, methods, and aspects. (cont’d)

Key points (cont’d) Some consider the problems of inspecting and deriving structural tests for aspect-oriented programs to be a significant barrier to the adoption of AOSD.

Aspect-Oriented Software Development (AOSD) Chapter 32 Aspect-Oriented Software Development (AOSD)