Aspect-Oriented Software Development (AOSD) Additional Tutorial.

Slides:



Advertisements
Similar presentations
Easy to use Ability to attach policies/procedures to call types Ability to schedule calls in advance Officer safety alerts Robust search capabilities.
Advertisements

Recruitment Booster.
Module 12: Auditing SQL Server Environments
5.1 Silberschatz, Galvin and Gagne ©2009 Operating System Concepts with Java – 8 th Edition Chapter 5: CPU Scheduling.
China’s Software Industry August 2006 Instructor: Hengming Zou, Ph.D.
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 Software Development (AOSD) Tutorial #10 Interference among Aspects.
Remote Method Invocation
Aspect-Oriented Software Development (AOSD) Tutorial #10 Interference among Aspects.
CS 290C: Formal Models for Web Software Lecture 10: Language Based Modeling and Analysis of Navigation Errors Instructor: Tevfik Bultan.
One.box Distributed home service interface. Core Components Pop3 client Router Storage Pop3 Server.
Aspect-Oriented Software Development (AOSD) Tutorial #5 Categories of Aspects – contd.; LTL properties formalization; Assume – guarantee specifications.
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.
Aspect-Oriented Software Development (AOSD) Tutorial #4 Categories of Aspects.
Aspect-Oriented Software Development (AOSD) Tutorial #7 Assume – guarantee specifications; EAOP.
Aspect-Oriented Software Development (AOSD) Tutorial #4 Categories of Aspects.
Aspect-Oriented Software Development (AOSD) Tutorial #8 Composition Filters.
1 Based on slides by Gitit Amihud. 2 The Person class String firstName String lastName Date birthDate Address home setFirstName(String) String getFirstName()
Aspect-Oriented Software Development (236601) 1 Home Assignment (what, where and when)
Aspect-Oriented Software Development (AOSD) Tutorial #2 AspectJ Basics.
Aspect-Oriented Software Development (AOSD) Tutorial #8 Composition Filters.
Rigorous Fault Tolerance Using Aspects and Formal Methods Shmuel Katz Computer Science Department The Technion Haifa, Israel
Aspect-Oriented Software Development (AOSD) Tutorial #6 Categories of Aspects – contd.; LTL properties formalization; Assume – guarantee specifications.
More on AspectJ. aspect MoveTracking { private static boolean _flag = false; public static boolean testAndClear() { boolean result = _flag; _flag = false;
Aspect-Oriented Software Development (236608) 1 Aspect-Oriented Software Development (AOSD) Tutorial #1 Course site :
Aspect-Oriented Software Development (AOSD) Tutorial #9 Modular Verification of Aspects.
Aspect-Oriented Software Development (AOSD) Tutorial #5 Categories of Aspects – contd.; LTL properties formalization.
Aspect-Oriented Software Development (AOSD) Tutorial #7 Assume – guarantee specifications; EAOP.
Aspect-Oriented Software Development (AOSD) Tutorial #3 AspectJ - continued.
Aspect-Oriented Software Development (AOSD) Tutorial #9 Modular Verification of Aspects.
KMIP Use Cases Update on the process. Agenda Goals Process Flow, Atomics, Batch, Composites, and Not KMIP Evaluating the Document in light of the Goals.
Process-oriented System Automation Executable Process Modeling & Process Automation.
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)
Three fundamental concepts in computer security: Reference Monitors: An access control concept that refers to an abstract machine that mediates all accesses.
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.
I Copyright © 2004, Oracle. All rights reserved. Introduction Copyright © 2004, Oracle. All rights reserved.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 32 Slide 1 Aspect-oriented Software Development 1.
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.
Aspect-Oriented Solutions to Feature Interaction Concerns Lynne Blair, Jianxiong Pang Lancaster University, U.K.
Using AOP to Ease Evolution Presented by David Shepherd (QLI & UD) Co-Authors: Thomas Roper (QLI) and Lori Pollock (UD)
A Distributed Aspect-Oriented System for J2EE Applications Muga Nishizawa and Shigeru Chiba (Tokyo Institute of Technology, Japan) Background - As benefits.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Use Cases Use Cases are employed to describe the functionality or behavior of a system. Each use case describes a different capability that the system.
Inter-Type Declarations in AspectJ Awais Rashid Steffen Zschaler © Awais Rashid, Steffen Zschaler 2009.
Topics for exam in AOSD Basic concepts: tangling, scattering, joinpoint, advice, cross-cutting, weaving AspectJ: syntax, pointcut notations, around, proceed,
Demeter Aspects We study techniques for the emerging area of Aspect-Oriented Software Development and focus on the following areas:  Aspectual Collaborations.
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Composition Filter – Part 2 איתי בן אליעזר נובמבר 2004.
© 2001 TRESE Group, University of Twente TRESE e-tutorial series 02Software the evolution problems using CF Solving the evolution problems using Composition.
PROGRAMMING PRE- AND POSTCONDITIONS, INVARIANTS AND METHOD CONTRACTS B MODULE 2: SOFTWARE SYSTEMS 13 NOVEMBER 2013.
AOSD'04, Lancaster, UK 1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech) Shigeru Chiba (Tokyo Tech) Michiaki Tatsubori.
Agenda Overview of Seneca Computer System File Servers / Student Computer Accounts Telnet application How to Logon to Learn / Phobos accounts How to Change.
Copyright © 2004, Keith D Swenson, All Rights Reserved. OASIS Asynchronous Service Access Protocol (ASAP) Tutorial Overview, OASIS ASAP TC May 4, 2004.
Aspect-Oriented Software Development (AOSD)
1 An AOP Implementation Framework for Extending Join Point Models Naoyasu Ubayashi(Kyushu Institute of Technology, Japan) Hidehiko Masuhara(University.
PPL 2004, Gamagori, AICHI1 Remote Pointcut - A Language Construct for Distributed AOP Muga Nishizawa (Tokyo Tech, Japan) Shigeru Chiba (Tokyo Tech, Japan)
In this session, you will learn to: Create and manage views Implement a full-text search Implement batches Objectives.
Lecture 92 Test 1 – Take Home Post mortem
Logger, Assert and Invariants
Remote Method Invocation
Presented by Gitit Amihud
Tutorial 19 - Microwave Oven Application Building Your Own Classes and Objects Outline Test-Driving the Microwave Oven Application Designing.
Pre-assessment Questions
Presentation transcript:

Aspect-Oriented Software Development (AOSD) Additional Tutorial

Aspect-Oriented Software Development (236608) 2 Today Comments on HW2 Comments on HW3 Answers to your questions received by e- mail

Aspect-Oriented Software Development (236608) 3 HW2 comments Aspect A: make it possible to temporarily close an exit (exit B). Specification attempt: –Assumption: “there is a ticket holder attempting to exit through B” –Guarantee: “if B exists, the user will not be permitted to exit. The state of the system will remain the same as before the "exit" command was executed” What’s the problem with this specification? Proposed “assumption” is the “if” part of the guarantee!

Aspect-Oriented Software Development (236608) 4 HW2 comments – contd. Aspect category justification attempt: “The aspect is strongly invasive because it adds new functionality / new field / … to the system “ What’s the problem with this statement? –The new fields are part of the aspect, and not part of the base system state => they won’t influence the projection –Not every new functionality will result in adding states to the base system! For example, an aspect that adds a logging functionality to the system is spectative…

Aspect-Oriented Software Development (236608) 5 HW2 comments – contd.(2) Change-giving aspect category justification attempt: “aspect A is strongly invasive, because a=p a!=p error accept base system (S) a=p a!=p erroraccepta>pa<pGive change System after weaving “new” state Wrong! Projected on “a!=p”

Aspect-Oriented Software Development (236608) 6 HW3 comments 1.In Question 3: The pointcut should be marked by a new predicate in the pointcut-ready tableau, otherwise the aspect will not be able to distinguish between the pointcut and non- pointcut states with "b"!

Aspect-Oriented Software Development (236608) 7 HW3 - Possible solution to Q.1 Cond Any Fst Permissions MagenFactor Average isCrosscutting iff examGrade > 55 isCrosscutting iff original examGrade > 55 isCrosscutting iff the operation is forbidden for the current user might modify exam grade isCrosscutting iff the event is “viewAverage”

Aspect-Oriented Software Development (236608) 8 Social Security System - reminder Document flow: Creates client’s entry (claim document) in the system Forwards the request to the appropriate handler Evaluates client’s disablement Issues bank orders Communicates with clients

Aspect-Oriented Software Development (236608) 9 Adding Logging – reminder Register all the interactions among objects: Add the class Logger. Main functionality: loggingEnabled – activate the logging loggingDisabled – deactivate the logging log(message) – extract the necessary info Additional functionality – retrieve information from the log

Aspect-Oriented Software Development (236608) 10 Logging – Implementation concern Logging begin // introduces centralized logger filterinterface notifyLogger begin … end filterinterface notifyLogger; filterinterface logger begin … end filterinterface logger; superimposition begin … end superimposition implementation in Java class LoggerClass { … } end implementation end concern Logging; to be added to the filterinterface of every concern we need to monitor performs the logging operation (the Meta filter defined in notifyLogger sends the messages to this logger) defines which concerns, etc. will be “modified”, and how

Aspect-Oriented Software Development (236608) 11 Logging – Implementation (contd.) concern Logging begin // introduces centralized logger filterinterface notifyLogger begin // this part declares the crosscutting code externals logger : Logging; // *declare* a shared instance of this concern internals logOn : boolean; // created when the filterinterface is imposed methods loggingOn(); // turn logging for this object on logginOff(); // turn logging for this object off log(Message); // declared here for typing purposes only conditions … // to be defined inputfilters … // to be defined outputfilters … //not needed end filterinterface notifyLogger; … end concern Logging;

Aspect-Oriented Software Development (236608) 12 Logging – Implementation (contd.) filterinterface logger begin externals //not needed internals //not needed methods log(Message); // various methods to retrieve info. from the log inputfilters disp : Dispatch = { inner.* }; outputfilters //not needed end filterinterface logger; accept all methods implemented by the object to which the logger is applied

Aspect-Oriented Software Development (236608) 13 Logging – Implementation (contd.) filterinterface notifyLogger begin // this part declares the crosscutting code externals logger : Logging; // *declare* a shared instance of this concern internals logOn : boolean; // created when the filterinterface is imposed methods loggingOn(); // turn logging for this object on logginOff(); // turn logging for this object off log(Message); // declared here for typing purposes only conditions LoggingEnabled; inputfilters logMessages : Meta = { LoggingEnabled=>[*]logger.log }; dispLogMethods : Dispatch = { loggingOn, loggingOff }; end filterinterface notifyLogger; if logging is enabled… log every message

Aspect-Oriented Software Development (236608) 14 Logging – Implementation (contd.) concern Logging begin … superimposition begin selectors allConcerns = { *!=Logging }; conditions allConcerns <- LoggingEnabled; filterinterfaces allConcerns <- notifyLogger; self <- logger; end superimposition; … end concern Logging; everything except instances of Logging the applicability of Logging should be defined separately for each concern other than Logging Every concern (except for Logging) is crosscut by notifyLogger So that the logger will be able to retrieve info from the log…

Aspect-Oriented Software Development (236608) 15 Logging – Implementation (contd.) concern Logging begin … // the only part left: implementation in Java class LoggerClass { boolean LoggingEnabled() { return logOn }; void loggingOn() { logOn:=true; }; void loggingOff() { logOn:=false; }; void log(Message msg) { … }; // get information from message and store } end implementation end concern Logging; “fire” is here…

Aspect-Oriented Software Development (236608) 16 EAOP: Aspect Composition Example (from Tutorial 7) Aspects on class Point: C: Positive quarter check; [after advice!!!] E: Positive quarter enforce; [before advice] N: Name adding and movements tracking [after] Any C N E