 Introduction  Terms  Design – Modeling  Requirements  Languages  Maintenance  Comparison to Object Oriented  Applications 2.

Slides:



Advertisements
Similar presentations
Security Design Patterns – Overview –Software Development Lifecycle –Enterprise Software Design Process and Artifacts –Pattern Format –Aspect Oriented.
Advertisements

Towards a Standard Interface for Runtime Inspection in AOP Environments OOPSLA Workshop on Tool for AOSD, Seattle, November 2002 Katharina Mehner and Awais.
Awais Rashid, Steffen Zschaler
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
Web Applications Development Using Coldbox Platform Eddie Johnston.
October - December 2013CSC5021: The Problem With Aspects (J P Gibson)1 The Problem With Aspects (AOP) A style of programming that attempts to abstract.
Programming Creating programs that run on your PC
Programming Languages Language Design Issues Why study programming languages Language development Software architectures Design goals Attributes of a good.
Review Amit Shabtay. March 3rd, 2004 Object Oriented Design Course 2 Review What have we done during the course? Where to learn more? What is for the.
ASPECT ORIENTED SOFTWARE DEVELOPMENT Prepared By: Ebru Doğan.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Programming Languages Structure
1 CS101 Introduction to Computing Lecture 19 Programming Languages.
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
CS 415: Programming Languages Chapter 1 Aaron Bloomfield Fall 2005.
1 Chapter-01 Introduction to Computers and C++ Programming.
PROGRAMMING LANGUAGES The Study of Programming Languages.
PZ01A Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ01A -- Introduction Programming Language Design and.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Software Software is omnipresent in the lives of billions of human beings. Software is an important component of the emerging knowledge based service.
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,
VERIFICATION OF ASPECT ORIENTED MODELS BY DON MARTIN JAYASHREE VENKIPURAM PATHANGI PIYUSH SRIVASTAVA REFERENCES F. Mostefaoui and J. Vachon,” Design level.
Aspect Oriented Programming Scott Nykl CSSE 411 Senior Seminar.
Introduction to Java August 14, 2008 Mrs. C. Furman.
Programming History. Who was the first programmer?
1 Metamodel Access Protocols for Extensible Aspect-Oriented Modeling Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Shinji Sano(Kyushu Institute.
1 Introduction Programming Language Design and Implementation (4th Edition) by T. Pratt and M. Zelkowitz Prentice Hall, 2001 Sections
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.
VERIFICATION OF ASPECT-ORIENTED MODELS Review of Aspect-Oriented Definitions aspect – crosscutting concern that may involve multiple classes pointcut –
Joel Phinney March 31, ◦ Concerns  Separation of Concerns, Tangled and Scattered Concerns, Cross-Cutting Concerns, Aspects ◦ Aspect-Oriented Software.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
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.
1 An Aspect-Oriented Implementation Method Sérgio Soares CIn – UFPE Orientador: Paulo Borba.
Module 4 Part 2 Introduction To Software Development : Programming & Languages Introduction To Software Development : Programming & Languages.
1 CSCD 326 Data Structures I Software Design. 2 The Software Life Cycle 1. Specification 2. Design 3. Risk Analysis 4. Verification 5. Coding 6. Testing.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University IWPSE 2003 Program.
Topics for exam in AOSD Basic concepts: tangling, scattering, joinpoint, advice, cross-cutting, weaving AspectJ: syntax, pointcut notations, around, proceed,
Aspect Oriented Development Alex Beatty.  Purpose  Cross-cutting Concerns  Join Points, Pointcuts, and Advices  Weaving  Invasive vs. Non-Invasive.
AOP-Driven Variability in Software Product Lines Vander Alves, Ayla Dantas, and Paulo Borba Informatics Center – UFPE – Brazil
UML Diagrams for Caradon developers Daniel DG Moth Core Development Group, Research Student University of Brighton, MSc Object Oriented Software Technology.
Aspect Oriented Security Tim Hollebeek, Ph.D.
Course Instructor: Hira Farman Course : BY:HIRA FARMAN.
aspectj tools new and noteworthy Mik Kersten University of British Columbia Adrian Colyer IBM Hursley OOPSLA, October
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.
IWFST'2005, Shanghai Testing Aspect-Oriented Programs: Challenges and Opportunities Jianjun Zhao Department of Computer Science and Engineering Shanghai.
Aspect-Oriented Software Development (AOSD)
Presented By Sushil K. Chaturvedi Assistant Professor SRCEM,Banmore 1.
Sung-Dong Kim, Dept. of Computer Engineering, Hansung University Java - Introduction.
Model-Driven Approach
Software Engineering Lecture 7
PROGRAMMING LANGUAGES
CSCI-235 Micro-Computer Applications
Lecture 1: Introduction to JAVA
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
and Program Development
강의 내용 및 방법 접근방법 리포트 시험 Lambda Calculus, Proof of Correctness
Chenchen Xi CNC Supervisor: Prof. John R. Gurd
School of Computer & Information Engineering,
Refactoring the Aspectizable Interfaces: An Empirical Assessment
Presentation transcript:

 Introduction  Terms  Design – Modeling  Requirements  Languages  Maintenance  Comparison to Object Oriented  Applications 2

 Software Development History › Started out with emphasis on the machine code (basic machines) › Problems discovered in 70s and 80s led to emphasis on quality, productivity › 1980s and 1990s saw the rise of UML 3

 Object Oriented Development › Benchmark of most projects today › Started in 1960s, rose to prominence in late 80s and 90s › Supported by many languages, most common C++ and Java › Easy to be modeled by UML language › Has several problems 4

“AOP can be understood as the desire to make quantified statements about the behavior of programs, and to have these quantifications hold over programs written by oblivious programmers.” – Filman and Friedman 5

 Aspect Oriented Software Development › Developed due to problems with OO › First theory proposed in 1995 › Implementation in early 2000s, Netherlands, Texas › Entire new vocabulary › Key structural differences › Still relatively new, gaining acceptance in a few areas 6

 Concerns › Key new concept › Similar but more refined than objects  Aspects › Implementation of concern › Usually contains only code for a specific feature 7

 Crosscutting Concerns › Code called in several places throughout a program › Feature that is hard to modularize in OO  Areas of Crosscutting Concerns:  Synchronization  Real-time constraints  Error detection and correction  Product features  Memory management  Information security  Caching  Logging  Monitoring  Code mobility  Internationalization and localization  Domain-specific optimizations 8

 Join Points › Where aspects are called in the execution of a program › Placement dependent on language  Advice › Tells system what to do at a an aspect › Oblivious of base code › after() : set() { Display.update(); } 9

 Pointcut designator › Collection of join points › Can be used for features called often at specific places (security)  Weaving › Inserting the aspects into the base code › Can happen at three stages of software 10

 Unified Modeling Language (UML) › Due to acceptance, often used › Implementations capture aspect methods, join points › Separates base code from features 11

12

 UML (Cont’d)  Aspects can also be grouped by function › Synchronization › Distribution › Coordination › Replication 13

14

 Architectural Description Language › Still in development › Able to show connections between base code and aspects › Also shows separation of base code and functional code › Good for upper level requirements 15

 Sequence diagrams › Can demonstrate when aspects are called › Can help developers determine where to put join points 16

 Best in beginning of software development  Good at separating features and base code  Good for determining join points  Helps with concern determination 17

.NET Framework languages (C# / VB.NET)  C / C++  Cobol  Cocoa  ColdFusion  Common Lisp  Delphi  Delphi Prism  e (IEEE 1647)  Haskell  Java › AspectJ  JavaScript  Emacs Lisp  Lua  make  ML  Perl  PHP  Prolog  Python  Ruby  Squeak Smalltalk  UML 2.0  XML 18

 Languages have to be adapted › Some languages are supplementary › Some have built in aspect support › Determine join points › Determine weaving time › Some languages are Object Oriented language compatible, some not 19

 Most Common  Architecture of Java allows easy transition  Reclassifies Java’s critical section features 20

public void doGet(JspImplicitObjects theObjects) throws ServletException { logger.entry("doGet(...)"); JspTestController controller = new JspTestController(); controller.handleRequest(theObjects); logger.exit("doGet"); } public aspect AutoLog{ pointcut publicMethods() : execution(public * org.apache.cactus..*(..)); pointcut logObjectCalls() : execution(* Logger.*(..)); pointcut loggableCalls() : publicMethods() && ! logObjectCalls(); before() : loggableCalls(){ Logger.entry(thisJoinPoint.getSignature().toString()); } after() : loggableCalls(){ Logger.exit(thisJoinPoint.getSignature().toString()); } 21

 New features can be added without disturbing original code  Java programs can easily use aspects  Separation of concerns make maintenance easier  Helps prevent tangling of code  Easier to debug, all code in one place 22

 Still has some problems › Could cause problems in large projects, join points getting changed › Small changes, function call placement can cause problems › Different structure can cause problems for programmers 23

 Aspect Oriented Development is a derivative of Object Oriented Development  Object Orientation focuses on Modularity  Aspect Orientation focuses on Concerns  Object Orientation tangles code, Aspect Orientation separates  Singletons not supported in AOP 24

 Findings : › Easier to find where to put new code › Easier to implement new code › Similar compile times › Harder to make changes › Lack of understanding hurts › Processes not clear to fix problems 25

 Open Source Uses › Can allow mixing of proprietary and open source programming › Easy to add new features to base code › Can determine what features are actually needed 26

 Can implement several different features  Allows many different products from one set of base code  Can roll out product sooner, worry about features later 27

28

 Can turn existing software into AOP  Easier to test, especially features  Several different areas of features can be separated from main program  Makes software more portable 29

 SAP  Siemens Health  Sun Microsystems  IBM  Motorola  Glassbox (Diagnostic Tool) 30

 New emerging technology  Not complete solution to Object Oriented Software Development, but improves in a few areas  Has some exciting features  Currently in use, more widespread as it is refined 31

 [1] Filman, R. & Friedman, D. (2005). Aspect-Oriented Programming Is Quantification and Obliviousness. In Fillman, Elrad, Clark, Aksit (Eds.), Aspect-Oriented Software Development (pp.1-7). Boston: Addison-Wesley.  [2] Clemente, P., Hernandez, J., Herrero, J., Murillo, J., Sanchez, F. (2005). Aspect-Orientation in the Software Lifecycle: Fact and Fiction. In Fillman, Elrad, Clark, Aksit (Eds.), Aspect-Oriented Software Development (pp ). Boston: Addison-Wesley.  [3] Pinto, M., Fuentes, L., Troya, J. (2003) A Dynamic Component and Aspect-Oriented Platform. The Computer Journal, 48, pp  [4] Spring Maintenance. (n.d.). Retrieved November 1, 2009 from Maintenance website. maintenance/  [5] Blair, G., Blair, L., Rashid, A., Moreira, A., Araujo, J., Chitchyan, R. (2005). Engineering Aspect-Oriented Systems. In Fillman, Elrad, Clark, Aksit (Eds.), Aspect-Oriented Software Development (pp ). Boston: Addison-Wesley. 32

 [6] AspectJ. (n.d.). Retrieved October 31, 2009 from Eclipse website,  [7] Colyer, A. (2005). AspectJ. In Fillman, Elrad, Clark, Aksit (Eds.), Aspect-Oriented Software Development (pp ). Boston: Addison-Wesley.  [8] Apel, S., Leich, T., Saake, G. (2008). Aspectual Feature Models. IEEE Transactions of Software Engineering, 34, p  [9] Walker, R., Baniassad, E., Murphy, G. (2005). An Initial Assessment of Aspect-Oriented Programming. In Fillman, Elrad, Clark, Aksit (Eds.), Aspect-Oriented Software Development (pp ). Boston: Addison-Wesley.  [10] Harrison, W., Ossher, H., Sutton, S., Tarr, P. (2005). Supporting aspect-oriented software development with the Concern Manipulation Environment. IBM Systems Journal, 44, (pp ).  [11] Aspect-Oriented Software Development(n.d.). Retrieved November 4, 2009 from Wikipedia website, 33

 Questions 34