Rigorous Fault Tolerance Using Aspects and Formal Methods Shmuel Katz Computer Science Department The Technion Haifa, Israel

Slides:



Advertisements
Similar presentations
Omnibus: A clean language and supporting tool for integrating different assertion-based verification techniques Thomas Wilson, Savi Maharaj, Robert G.
Advertisements

Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
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.
1 Modular Verification of Strongly Invasive Aspects Authors: Emilia Katz, Shmuel Katz The Technion.
Aspect-Oriented Software Development (AOSD) Tutorial #10 Interference among Aspects.
ISBN Chapter 3 Describing Syntax and Semantics.
Aspect-Oriented Software Development (AOSD) Tutorial #10 Interference among Aspects.
Interferences: aspect-base and between aspects Shmuel Katz, using slides from Lodewijk Bergmans.
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.
Katz Formal Specifications Larch 1 Algebraic Specification and Larch Formal Specifications of Complex Systems Shmuel Katz The Technion.
University of British Columbia Software Practices Lab CAS Seminar 06 Fluid AJ - A Simple Fluid AOP Tool Terry Hon Gregor Kiczales.
Categories of Aspects Shmuel Katz Computer Science Department The Technion Haifa, Israel.
Categories of Aspects Shmuel Katz Computer Science Department The Technion Haifa, Israel.
1 Detecting Interference or Proving Interference Freedom Among Aspects Shmuel Katz Computer Science Department The Technion.
Self-Stabilization An Introduction Aly Farahat Ph.D. Student Automatic Software Design Lab Computer Science Department Michigan Technological University.
Harmless Advice Daniel S Dantas Princeton University with Prof. David Walker.
Aspect-Oriented Software Development (AOSD) Additional Tutorial.
More on AspectJ. aspect MoveTracking { private static boolean _flag = false; public static boolean testAndClear() { boolean result = _flag; _flag = false;
Describing Syntax and Semantics
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 FM Overview of Adaptation. 2 FM RAPIDware: Component-Based Design of Adaptive and Dependable Middleware Project Investigators: Philip McKinley, Kurt.
Department of Computer Science & Engineering College of Engineering Dr. Betty H.C. Cheng, Laura A. Campbell, Sascha Konrad The demand for distributed real-time.
Inheritance and Polymorphism CS351 – Programming Paradigms.
Formality, Agility, Security, and Evolution in Software Development Cody Ronning 2/16/2015.
Data Structures and Programming.  John Edgar2.
1 Model Interface Implementation for Two-Way Obliviousness in Aspect-Oriented Modeling Presented by Wuliang Sun Department of Computer Science Baylor University.
The chapter will address the following questions:
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
Towards Executable Aspect-Oriented UML Models 10th Int. Workshop on Aspect-Oriented Modeling (AOM), 6th Int. Conf. on Aspect-Oriented Software Development.
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.
Mathematical Modeling and Formal Specification Languages CIS 376 Bruce R. Maxim UM-Dearborn.
Aspect Oriented Programming Razieh Asadi University of Science & Technology Mazandran Babol Aspect Component Based Software Engineering (ACBSE)
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
VERIFICATION OF ASPECT ORIENTED MODELS BY DON MARTIN JAYASHREE VENKIPURAM PATHANGI PIYUSH SRIVASTAVA REFERENCES F. Mostefaoui and J. Vachon,” Design level.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
What is “model transformation”? Distinction between source and target Source may be same as target May be multiple sources, or targets Reaching a fixed.
Composing Adaptive Software Authors Philip K. McKinley, Seyed Masoud Sadjadi, Eric P. Kasten, Betty H.C. Cheng Presented by Ana Rodriguez June 21, 2006.
Aspect Oriented Programming Sumathie Sundaresan CS590 :: Summer 2007 June 30, 2007.
Using Aspects to Support the Software Process: XP over Eclipse Oren Mishali and Shmuel Katz Technion, Israel Institute of Technology.
VERIFICATION OF ASPECT-ORIENTED MODELS Review of Aspect-Oriented Definitions aspect – crosscutting concern that may involve multiple classes pointcut –
Aspect-Oriented Solutions to Feature Interaction Concerns Lynne Blair, Jianxiong Pang Lancaster University, U.K.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
AOP-1 Aspect Oriented Programming. AOP-2 Aspects of AOP and Related Tools Limitation of OO Separation of Concerns Aspect Oriented programming AspectJ.
Lyra – A service-oriented and component-based method for the development of communicating systems (by Sari Leppänen, Nokia/NRC) Traditionally, the design,
Categories of Aspects Shmuel Katz Computer Science Department The Technion Haifa, Israel.
An Overview of Aspects Shmuel Katz Computer Science Department The Technion
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
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,
Concern Architecture View and Aspect-Oriented Design Mika Katara and Shmuel Katz Tampere U. T. Technion, Haifa.
Chapter 8: Aspect Oriented Programming Omar Meqdadi SE 3860 Lecture 8 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Alloy-based Lightweight Verification for Aspect-oriented Architecture Naoyasu Ubayashi(Kyushu Institute of Technology) Yuki Sato(Kyushu Institute of Technology)
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Click to edit Master text styles JavaMOP Hamid Reza Niroomand A presentation to Dr. Babamir.
1 Incremental Analysis of Interference Among Aspects Authors: Emilia Katz, Shmuel Katz The Technion.
Aspect Oriented Security Tim Hollebeek, Ph.D.
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.
Aspect-Oriented Software Development (AOSD)
T imed Languages for Embedded Software Ethan Jackson Advisor: Dr. Janos Szitpanovits Institute for Software Integrated Systems Vanderbilt University.
Types for Programs and Proofs
Aspect-Oriented Programming with the Eclipse AspectJ plug-in
Aspect Validation: Connecting Aspects and Formal Methods
Automatic Derivation, Integration and Verification
Structuring Adaptive Applications using AspectJ and AOM
Aspect Oriented Software Design
Presentation transcript:

Rigorous Fault Tolerance Using Aspects and Formal Methods Shmuel Katz Computer Science Department The Technion Haifa, Israel

Basic claim of Aspect Oriented Programming (AOP) Pure Object-Oriented doesn’t work!!! Gives one central decomposition—but others are possible, and sometimes needed Cross-cutting concern: one that involves many classes/methods Tangling: code treating the concern is mixed with that for other concerns Scattering: code treating the concern is scattered throughout the system

Aspects (and esp. AspectJ) Aspects: modular units that crosscut classes Aspects are defined by aspect declarations and may include pointcut declarations: where to add/replace advice declarations: what to add or do instead Can introduce new methods, variables, code… Weave (=bind) aspect to different systems (but not entirely separated yet…)

Types of joinpoints and changes Method calls Changes/uses of a field (variable) Method calls while another method is active (relates to stack contents) Add code before/after/around joinpoint Replace previous with new code Often use types, fieldnames,…, from the rest of the system (not fully generic)

Aspects and Superimpositions: Modularity for Cross-cutting For distributed: Termination detection Monitoring and logging Access control For Object Oriented Monitoring and debugging Adding security Preventing overflow Enforcing a scheduling policy Analyzing QOS and Performance

Aspects for Fault Tolerance Transform a system that ignored faults to one that is tolerant for given fault models Communication faults example: A message occasionally gets lost… The solution idea: Whenever a message is to be sent using a send() method, send it twice with two different routing tables, and treat receiving() to avoid incorrect repeated receipt Can be applied where applicable, not used when irrelevant--- allows changing fault models as conditions change

Self-stabilization using aspects Self-stabilization: transient errors that are modeled by starting in an unreachable state; Treatment requires reaching some legal state (returning to the envelope of normal computations) One way: add self-stabilizing distributed snapshots that will reset to a “home” state when a fault is detected Question: interactions of aspects…

AOSD-Europe An EU Network of Excellence for Aspect Oriented Software Development Four virtual research labs: Analysis and Design (Early Aspects, Methodology) Languages (Constructs, Implementation) Applications (Middleware, Pervasive Computing) Formal Methods (Semantics, Verification) Atelier: a toolkit for developing and using aspects, to be developed in open source

Issues in Formal Methods for Aspects How to express specifications for aspects? How to define the semantics of aspects? How to verify? Static analysis Model checking of just the aspect Model checking of the augmented system Theorem proving

Ideal Goal: verifying aspects Show once and for all that: For every possible underlying system satisfying Assumptions of the Aspect, For any legal combination (weaving) of the aspect and the underlying system, The New Functionality will be true for the combination, and All previous desirable properties are still OK

Overcoming the Verification Problem: Divide and Conquer Cause no harm versus add desired properties Analyze just the aspect For every possible weaving and classes of properties For a specific weaving and given properties Analyze the augmented system — automatically after a manual one-time set-up Use static code analysis, restricted inductions, and model checking ---as needed

Static analysis to identify categories of aspects Spectative: just gather information Regulative: restrict previously possible behaviors Weakly invasive: change values, but to states previously possible Strongly invasive: changes that can create new states Each category has fine-tuned verifications

Using Aspect Validation for augmented system analysis For situations where original system has been proven correct for its specification using software model checking (e.g., Bandera) Reprove for augmented system without new manual setup (just push a button…) Reuse the specification and annotations, given as verification aspects Treats all new paths/methods…. In many cases uses the same abstractions

Some Interesting Goals Identifying classes of aspects + systems + properties appropriate for static type analysis or inductive proofs or model checking only for the aspect Analyzing when abstractions and reductions that were effective for model checking the original system and specification work for the augmented system Discovering generic abstractions and reductions for an aspect that can be reused to model check the augmented system for new aspect properties Analyzing interference / cooperation among aspects

Connections to RODIN? Possible case studies on fault tolerance and reliability in AOSD Applications Lab? Expressing RODIN designs as reusable aspects with the Analysis and Design Lab, and as code in AOP Languages? Joint development of static analysis and verification tools with Formal Methods Lab? Fault tolerance and reliability proofs using aspect verification and analysis tools?

A few references S. Katz, K. Perry, Self-stabilizing extensions for message-passing systems, Distributed Computing, M. Sihman and S. Katz, Superimpositions and Aspect- Oriented Programming, The Computer Journal, 2003 M. Sihman and S. Katz, Aspect Validation Using Model Checking, LNCS 2772, 2003 S. Katz, Diagnosis of Harmful Aspects Using Regression Verification, FOAL workshop in AOSD 2004 Our surveys on aspect semantics and verification: