Software Engineering Lecture 7

Slides:



Advertisements
Similar presentations
Aspect.NET – an aspect-oriented programming tool for Microsoft.NET Vladimir O. Safonov Professor of computer science, Head of laboratory St. Petersburg.
Advertisements

AspectWerkz 2 - and the road to AspectJ 5 Jonas Bonér Senior Software Engineer BEA Systems.
Aspect Oriented Programming. AOP Contents 1 Overview 2 Terminology 3 The Problem 4 The Solution 4 Join point models 5 Implementation 6 Terminology Review.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development.
Aspect Oriented Programming - AspectJ Radhika Rajput.
Software Engineering Laboratory, Department of Computer Science, Graduate School of Information Science and Technology, Osaka University 1 Modularization.
Secure Systems Research Group - FAU Aspect Oriented Programming Carlos Oviedo Secure Systems Research Group.
Overview of AspectJ Aspect Oriented Software Development Seminar Technion presented by Oren Mishali.
University of British Columbia Software Practices Lab Fluid AOP Join Point Models Terry Hon Gregor Kiczales.
University of British Columbia Software Practices Lab 2005 CASCON A Fluid AOP Editor Terry Hon Gregor Kiczales.
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.
Review David Rabinowitz. March 3rd, 2004 Object Oriented Design Course 2 Review What have we done during the course? Which topics we have not discussed?
Generative Programming. Generic vs Generative Generic Programming focuses on representing families of domain concepts Generic Programming focuses on representing.
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
UFCEUS-20-2 : Web Programming Lecture 5 : Object Oriented PHP (1)
Introduction to AOP.
Introduction to Aspect Oriented Programming Presented By: Kotaiah Choudary. Ravipati M.Tech IInd Year. School of Info. Tech.
Aspect Oriented Programming (AOP) in.NET Brent Krueger 12/20/13.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
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.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
1 Model Compiler Construction Based on Aspect-oriented Mechanisms Naoyasu Ubayashi (Kyushu Institute of Technology) Tetsuo Tamai (University of Tokyo)
Hyper/J and Concern Manipulation Environment. The need for AOSD tools and development environment AOSD requires a variety of tools Life cycle – support.
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 –
Generative Programming. Automated Assembly Lines.
Software Engineering Lecture 1 Vladimir Safonov, Professor, head of laboratory St. Petersburg University WWW:
Joel Phinney March 31, ◦ Concerns  Separation of Concerns, Tangled and Scattered Concerns, Cross-Cutting Concerns, Aspects ◦ Aspect-Oriented Software.
A Meta-Level Specification and Profile for AspectJ in UML Joerg Evermann School of Information Management Victoria University of Wellington.
Methodology: The AOP Refactoring Process Aspect-Oriented Refactoring of the Apache Cocoon Shared-Object Resource Allocation System Jeff Dalton Advisor:
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.
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.
IDENTIFYING SEMANTIC DIFFERENCES IN ASPECTJ PROGRAMS Martin Görg and Jianjun Zhao Computer Science Department, Shanghai Jiao Tong University.
Adaptive Software Kevin Cella Graduate Seminar 02/04/2005.
Aspect-Oriented Action Semantics Descriptions Luis Menezes University of Pernambuco
AspectJ – AOP for Java Tom Janofsky. Instructor at Penn State Abington Consultant with Chariot Solutions JUG Member.
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,
Software Engineering Lecture 6 Vladimir Safonov, Professor, head of laboratory St. Petersburg University WWW:
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
CS562 Advanced Java and Internet Application Introduction to the Computer Warehouse Web Application. Java Server Pages (JSP) Technology. By Team Alpha.
Aspect.NET — aspect-oriented toolkit for Microsoft.NET based on Phoenix and Whidbey Dmitry Grigoriev, PhD student Vladimir O. Safonov, Senior Member, IEEE,
Kansas City Java User’s Group Jason W. Bedell July 12, 2006
Aspect Security - RaviShekhar Gopalan - Prof. Lieberherr Software Security (CSG379)
Aspect-Oriented Software Development (AOSD)
 Is a programming paradigm  Extends OOP  Enables modularization of cross cutting concerns.
Software Engineering Lecture 4 Vladimir Safonov, Professor, head of laboratory St. Petersburg University WWW:
MACS 2005 First International Workshop on the Modeling and Analysis of Concerns in Software Concern Management for Constructing Model Compilers -- Towards.
Chapter 11 Object-Oriented Design
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Towards Effective Adaptive User Interfaces Design
Demeter Aspects Who We Are Aspectual Collaborations
Aspect-Oriented Programming
A Brief Introduction to Aspect-Oriented Programming
Software Engineering Lecture #45
Software Design Lecture : 15.
Software Design Lecture : 14.
JAsCo an Aspect-Oriented approach tailored for
Aspect-oriented programming
AspectAda Aspect-Oriented Programming for Ada95
Object-Oriented PHP (1)
Refactoring the Aspectizable Interfaces: An Empirical Assessment
Presentation transcript:

Software Engineering Lecture 7 Vladimir Safonov, Professor, head of laboratory St. Petersburg University Email: v_o_safonov@mail.ru WWW: http://user.rol.ru/~vsafonov Язык программирования Java. Лекция 1

Aspect-oriented programming (AOP): Aspect Aspect – an implementation of a crosscutting concern Aspect – special kind of a module to be used by its weaving into other modules Examples of aspects: - implementation of MT safety for an existing library - implementation of a new source language feature in a compiler So aspects are ubiquitous in programming, but still added and located “by hand”, hence the modularity and maintenance issues (C) Vladimir O. Safonov, 2004

The structure of aspect definition (V. Safonov) Aspect name Aspect parameters (optional) – generic aspects desirable Aspect data Aspect modules Aspect actions, with their weaving rules A separate reusable sets of weaving rules possible, to be used when weaving different aspects (C) Vladimir O. Safonov, 2004

Aspects – static or dynamic? First view on aspects: Aspect weaving is a kind of “tangled macro expansion”: Second view: Aspect weaving is performed dynamically, at runtime if Condition then Action (looks like debugging breakpoints – well know for years) Our viewpoint (V. Safonov): we take the static view but do recognize the dynamic view should be also implemented (C) Vladimir O. Safonov, 2004

Aspects in AspectJ (1/2) AspectJ: Xerox PARC (1995) -> Univ. of British Columbia, Canada (2003), designed by prof. Gregor Kichales AspectJ – aspect-oriented extension of Java (compiler from the extended language, debugger in terms of aspects, Aspect GUI) Pointcut – definition of a group of weaving rules ( using wildcards for entity names), - not tied to a concrete code Join points – concrete points in concrete code to be modified in aspect weaving Advices – actions to be performed at join points (C) Vladimir O. Safonov, 2004

Aspects in AspectJ (2/2) Aspects in AspectJ are essentially dynamic (similar to debugging-style breakpoints/debugging actions) Introduce – weaving new definitions into a module; these definitions are visible by the aspect only (no encapsulation violation happens) around S A -> B - AspectJ style of code modification at runtime (self-modifying code); actually, AspectJ behaves as term rewriting system. Our viewpoint: this is a powerful tool but potentially dangerous (C) Vladimir O. Safonov, 2004

Aspects in Aspect.NET (V. Safonov) Static approach to AOP very important: it improves program readability Aspects for .NET should be cross-language Using custom attributes (AspectDef, AspectRef) Syntactic sugar: a simple AOP annotations meta-language converted to AOP attributes Aspectizing (classical term – aspect mining): turning non-AOP programs into AOP ones (coloring the aspects) Aspect GUI Aspect.NET site: http://aspect-dot-net.sscli.net (C) Vladimir O. Safonov, 2004

Other new programming paradigms Logic programming Functional programming Event-driven programming Generic programming Meta-programming (C) Vladimir O. Safonov, 2004

Home task and references to lecture 7 http://aosd.net - the main Web site on AOP http://aspectj.org - the AspectJ Web site Safonov V. O. Aspect.NET – a new approach to aspect-oriented programming. – In: “.NET Developer’s Journal”, 2003, # 4. (C) Vladimir O. Safonov, 2004