Aspect-Oriented Software Development (AOSD) Tutorial #10 Interference among Aspects.

Slides:



Advertisements
Similar presentations
MFA for Business Banking – Security Questions with 2nd Request Multifactor Authentication: Quick Tip Sheets Note to Financial Institutions: We are providing.
Advertisements

MFA for Business Banking – Security Code Multifactor Authentication: Quick Tip Sheets Note to Financial Institutions: We are providing these QT sheets.
MFA for Business Banking – Security Questions with Reset Multifactor Authentication: Quick Tip Sheets Note to Financial Institutions: We are providing.
Chapter 4: Requirements Engineering
Detecting Bugs Using Assertions Ben Scribner. Defining the Problem  Bugs exist  Unexpected errors happen Hardware failures Loss of data Data may exist.
Annoucements  Next labs 9 and 10 are paired for everyone. So don’t miss the lab.  There is a review session for the quiz on Monday, November 4, at 8:00.
1 Chapter 8 Fundamentals of System Security. 2 Objectives In this chapter, you will: Understand the trade-offs among security, performance, and ease of.
Farm Service Agency Lender’s training for Electronic Submission of Guarantee Fees Implementation Date: September 23, 2009.
Login Screen Step 1: Enter Your Individual Login Id and Password Step 2: Click On Submit Button.
Aspect-Oriented Software Development (AOSD) Tutorial #10 Interference among Aspects.
Welcome to Florida International University Online J.O.B.S. Link Applicant Tutorial.
CIS 540 Principles of Embedded Computation Spring Instructor: Rajeev Alur
Sequence Diagrams. Introduction A Sequence diagram depicts the sequence of actions that occur in a system. The invocation of methods in each object, and.
ATM User Interface Design. Requirements A bank customer is able to access his or her account using an automatic teller machine. To be able to use an ATM.
Informatics 43 – May 7, Restatement of Goals for Testing Want to verify software’s correctness  Need to test  Need to decide on test cases  No.
Welcome to the Brookdale Community College Online Employment System Applicant Tutorial.
Aspect-Oriented Software Development (AOSD) Additional Material Start Writing in AspectJ.
Interferences: aspect-base and between aspects Shmuel Katz, using slides from Lodewijk Bergmans.
Aspect-Oriented Software Development (AOSD) Tutorial #5 Categories of Aspects – contd.; LTL properties formalization.
Categories of Aspects Shmuel Katz Computer Science Department The Technion Haifa, Israel.
Aspect-Oriented Software Development (236601) 1 Home Assignment (what, where and when)
1 Detecting Interference or Proving Interference Freedom Among Aspects Shmuel Katz Computer Science Department The Technion.
Rigorous Fault Tolerance Using Aspects and Formal Methods Shmuel Katz Computer Science Department The Technion Haifa, Israel
Aspect-Oriented Software Development (AOSD) Additional Tutorial.
1 Welcome to the Colgate University Online Employment System Applicant Tutorial.
Aspect-Oriented Software Development (AOSD) Tutorial #9 Modular Verification of Aspects.
Information for students – expression of interest in modules Welcome to the S 3 P system. This PowerPoint will give you details of how to express an interest.
Aspect-Oriented Software Development (AOSD) Tutorial #9 Modular Verification of Aspects.
Use Case Modeling. Use case diagram For each use case we develop  Object class diagram (with attributes only)  System sequence diagram (analysis) 
Creating a Single Sign On Account. To create a Single Sign On ID please visit and select the option to create a new account.
Welcome to And the Rice University Online Job Application Tutorial.
Welcome to the Alaska Statewide System Online Employment System Applicant Tutorial.
Welcome to the Southeastern Louisiana University’s Online Employment Site Applicant Tutorial!
Lecture 18 Page 1 CS 111 Online Design Principles for Secure Systems Economy Complete mediation Open design Separation of privileges Least privilege Least.
Objectives Understand the basic concepts and definitions relating to testing, like error, fault, failure, test case, test suite, test harness. Explore.
ECE 720T5 Winter 2014 Cyber-Physical Systems Rodolfo Pellizzoni.
Welcome to State of Michigan Time & Expense Processing Employee Expense Modification With Advance Tutorial Brought to you by the Office of Financial Management.
Problem Determination Your mind is your most important tool!
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Encryption Cisco Ironport using Click here to begin Press the ‘F5’ Key to Begin.
VERIFICATION OF ASPECT-ORIENTED MODELS Review of Aspect-Oriented Definitions aspect – crosscutting concern that may involve multiple classes pointcut –
Computers and Scientific Thinking David Reed, Creighton University Functions and Libraries 1.
Introduction CS 3358 Data Structures. What is Computer Science? Computer Science is the study of algorithms, including their  Formal and mathematical.
Setting up/Managing Bank Personnel Intuit Financial Services University Business Financial Solutions Certification.
T U T O R I A L  2009 Pearson Education, Inc. All rights reserved Security Panel Application Introducing the Select Case Multiple-Selection Statement.
2007 School Certificate Online Computing Skills Test.
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.
ADVANTAGES OF DATA BASE MANAGEMENT SYSTEM. TO BE DICUSSED... Advantages of Database Management System  Controlling Data RedundancyControlling Data Redundancy.
Securing Passwords Against Dictionary Attacks Presented By Chad Frommeyer.
1 of 4 This document is for informational purposes only. MICROSOFT MAKES NO WARRANTIES, EXPRESS OR IMPLIED, IN THIS DOCUMENT. © 2006 Microsoft Corporation.
1 Incremental Analysis of Interference Among Aspects Authors: Emilia Katz, Shmuel Katz The Technion.
Chapter 7 Server Management Policies –User accounts –Groups Rights and permissions Examples.
MOPS: an Infrastructure for Examining Security Properties of Software Authors Hao Chen and David Wagner Appears in ACM Conference on Computer and Communications.
Securing Web Applications Lesson 4B / Slide 1 of 34 J2EE Web Components Pre-assessment Questions 1. Identify the correct return type returned by the doStartTag()
UC Diagram & Scenario RKPL C & D. Using Use Case Diagram Use case diagrams are used to visualize, specify, construct, and document the (intended) behavior.
Text2PTO: Modernizing Patent Application Filing A Proposal for Submitting Text Applications to the USPTO.
Business Objects XIr2 Windows NT Authentication Single Sign-on 18 August 2006.
Instructions for CATS Independence Tool
Downloading and Installing GRASP-AF Workshop Ian Robson Information Analyst, North of England Cardiovascular Network.
Instant Enrollment Tutorial Updated March 21, 2012.
Secure Coding Rules for C++ Copyright © 2016 Curt Hill
WebTime Entry Training for Supervisors
Outline What does the OS protect? Authentication for operating systems
Introduction to Operating System (OS)
Outline What does the OS protect? Authentication for operating systems
Designing and Debugging Batch and Interactive COBOL Programs
TaxSlayer Multi-Factor Authentication (MFA)
Test Cases, Test Suites and Test Case management systems
Employee Self-Service (ESS) Portal
How to install and manage exchange server 2010 OP Saklani.
Presentation transcript:

Aspect-Oriented Software Development (AOSD) Tutorial #10 Interference among Aspects

Aspect-Oriented Software Development (236608) 2 Today: Interference among Aspects Interference detection Proving interference freedom Error analysis Usage guidelines for aspect libraries Examples CAPE and AOSD-EUROPE

Aspect-Oriented Software Development (236608) 3 Interference Check – Example 1 General description: Two aspects to be used in systems with remote authorized access. Aspect C treats communication failures: If a communication failure occurs during an authorization process, or when a user is logged in, the user is automatically logged out (to enable re- login when the communication is restored) Aspect T prevents identity-theft: If a wrong password is provided in several consequent attempts of logging in, the aspect guarantees that the user is blocked.

Aspect-Oriented Software Development (236608) 4 Example 1– contd. Example system - ATM system of a bank ATM usage: (in a cycle) –insert card –enter code (repeat until the correct code or “cancel” is entered) –if permission is granted (i.e, the code was correct), enter a request for the bank operation. The request is then processed by the system Point of view of the aspects: the card serves as a user-login, and code - as a password. In case of communication failure, if a card is stuck in the ATM machine, aspect C returns it to the user. Aspect T ensures stolen cards are stuck forever in the ATM.

Aspect-Oriented Software Development (236608) 5 Aspects Specifications – Aspect C Assumption: the only case when a card can get stuck in a machine is when a communication failure occurred while the card was in the machine. Formally: Guarantee: a card is never stuck in a machine forever. Formally:

Aspect-Oriented Software Development (236608) 6 Aspects Specifications – Aspect T Assumption – reminder: Guarantee: if a stolen card is inserted, it is then stuck in a machine forever. Formally:

Aspect-Oriented Software Development (236608) 7 Example 1– contd. Statements to check: Full verification and/or feasibility check?

Aspect-Oriented Software Development (236608) 8 Interference Check – Example 2 General description: Two aspects – part of a security-aspects library, to be used in password-protected systems Aspect E encrypts passwords Whenever a password is sent from the login screen of the system, it is encrypted (there is also a decryption part, but we ignore it here) Aspect F for retrieving forgotten passwords Adds a button to report that the password is forgotten. When the button is pressed, security questions are asked. If the answers are correct, the password is sent to the user.

Aspect-Oriented Software Development (236608) 9 Aspects Specifications – Aspect E Assumption: passwords are sent only from the login screen Formally: Guarantee: a password is never sent unencrypted Formally:

Aspect-Oriented Software Development (236608) 10 Aspects Specifications – Aspect F Assumption: the aspect does not need to assume anything about the base system Formally: Guarantee: if the security check is passed, the password is sent to the user Formally:

Aspect-Oriented Software Development (236608) 11 Example 2– contd. Check OK EF : Full verification and/or feasibility check?

Aspect-Oriented Software Development (236608) 12 Model for KR EF check Differs from the model for F’s verification: Additional base variables defined (required for E’s guarantee) Treatment of these variables in F’s transitions definitions (F does not modify variables it is unaware of) Assumption is (R E ⋀ P F ), and guarantee - R E

Aspect-Oriented Software Development (236608) 13 Model for KR EF check VAR --BASE psw_send : boolean ; button_pressed : boolean ; encr_psw : boolean ; … TRANS (pcF = 1) -> next(pcF = 2) & next(button_pressed) & next(!mail_psw_send) & next(!psw_send) & (next(encr_psw) = encr_psw); TRANS (pcF = 2) -> next(pcF = 3) & (next(psw_send) = quest_answered) & (next(mail_psw_send) = quest_answered) & next(! button_pressed) & next(!quest_answered) & (next(encr_psw) = encr_psw); TRANS (pcF = 3) -> next(pcF = 4) & next(!mail_psw_send) & next(!quest_answered) & next(!psw_send) & next(! button_pressed) & (next(encr_psw) = encr_psw); … LTLSPEC --BASE G (psw_send -> encr_psw) ; LTLSPEC --AUGMENTED G (psw_send -> encr_psw) ; Additional variable: from E’s assumption New assumption: R E ⋀ P F E’s variables remain unchanged New guarantee: R E

Aspect-Oriented Software Development (236608) 14 Example 2– contd. KR EF check fails! Model-checking result: counterexample – “bad” computation (= sequence of states violating the property) [see verification output file…]

Aspect-Oriented Software Development (236608) 15 Error analysis Aspects in one library may interfere! We might never want to add all the aspects into one system! [for instance: several variants of the same aspect appear in the library…] Interference detection => –Interference elimination OR –Usage guidelines

Aspect-Oriented Software Development (236608) 16 Interference Elimintation Guidelines Aspect A interfers with B => Who is guilty? –A or B? What can be done? –Change the specification(s) –Change the advice implementation

Aspect-Oriented Software Development (236608) 17 Usage Guidelines For each pair (A,B) from the library: Can A be woven before B? B before A? If not – why? More refined guidelines might be possible in the future…

Aspect-Oriented Software Development (236608) 18 Guidelines - Example Feasibility check fails => –Specifications have to be changed –Advice might have to be changed In ATM example:

Aspect-Oriented Software Development (236608) 19 Guidelines – Example2 Feasibility check succeeds => –Advice implementation has to be changed –Specifications might have to be changed In Security example:

Aspect-Oriented Software Development (236608) 20 More about aspects… A framework for aspect verification tools: The CAPE project More applications of aspects: aosd-europe.net