Aspect-Oriented Software Development (AOSD) Tutorial #6 Categories of Aspects – contd.; LTL properties formalization; Assume – guarantee specifications.

Slides:



Advertisements
Similar presentations
1 Verification by Model Checking. 2 Part 1 : Motivation.
Advertisements

Continuation of chapter 6…. Nested while loop A while loop used within another while loop is called nested while loop. Q. An illustration to generate.
Automated Theorem Proving Lecture 1. Program verification is undecidable! Given program P and specification S, does P satisfy S?
CSCI 160 Midterm Review Rasanjalee DM.
Problem Solving 5 Using Java API for Searching and Sorting Applications ICS-201 Introduction to Computing II Semester 071.
Rigorous Software Development CSCI-GA Instructor: Thomas Wies Spring 2012 Lecture 11.
1 Modular Verification of Strongly Invasive Aspects Authors: Emilia Katz, Shmuel Katz The Technion.
Aspect-Oriented Software Development (AOSD) Tutorial #10 Interference among Aspects.
David Evans CS655: Programming Languages University of Virginia Computer Science Lecture 19: Minding Ps & Qs: Axiomatic.
AP Computer Science. Google Interview Question You are given 8 identical looking balls. One of them is heavier than the rest of the 7 (all the others.
1 CS2200 Software Development Lecture: Testing and Design A. O’Riordan, 2008 K. Brown,
Lecture 27 Exceptions COMP1681 / SE15 Introduction to Programming.
Building Reliable Software Requirements and Methods.
Aspect-Oriented Software Development (AOSD) Tutorial #10 Interference among Aspects.
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 (AOSD) Tutorial #5 Categories of Aspects – contd.; LTL properties formalization; Assume – guarantee specifications.
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 #5 Categories of Aspects – contd.; LTL properties formalization.
Aspect-Oriented Software Development (AOSD) Tutorial #4 Categories of Aspects.
Aspect-Oriented Software Development (AOSD) Tutorial #8 Composition Filters.
Aspect-Oriented Software Development (236601) 1 Home Assignment (what, where and when)
Aspect-Oriented Software Development (AOSD) Tutorial #2 AspectJ Basics.
Review. By the end of today you should be able to- Know how to use args Know how to use the JOptionPane Know how to convert a String to a number.
Aspect-Oriented Software Development (AOSD) Additional Tutorial.
ESE601: Hybrid Systems Introduction to verification Spring 2006.
Aspect-Oriented Software Development (AOSD) Tutorial #3 AspectJ - continued.
1 Algorithms and Problem Solving. 2 Outline  Problem Solving  Problem Solving Strategy  Algorithms  Sequential Statements  Examples.
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.
Spring 2008 Mark Fontenot CSE 1341 Principles of Computer Science I Note Set 4.
People Fractions. Problem 1 of 20 Answer 1 = 10 Problem 2 of 20 Answer 2 = 5.
Outline Introduction Problem Statement Object-Oriented Design Aspect-Oriented Design Conclusion Demo.
1 Let L= { w= u v : u  {a, b}*, v  {c, d}* and |u|= |v|} 1.Design a context-free grammar that generates L. 2.Use your grammar and the construction from.
B. Fernández, D. Darvas, E. Blanco Formal methods appliedto PLC code verification Automation seminar CERN – IFAC (CEA) 02/06/2014.
Yang Liu, Jun Sun and Jin Song Dong School of Computing National University of Singapore.
SWE 619 © Paul Ammann Procedural Abstraction and Design by Contract Paul Ammann Information & Software Engineering SWE 619 Software Construction cs.gmu.edu/~pammann/
Using Data Within a Program Chapter 2.  Classes  Methods  Statements  Modifiers  Identifiers.
Copyright 2008 by Pearson Education 1 Building Java Programs Chapter 2 Lecture 2-1: Expressions and Variables reading:
Type your question here. Type Answer Type your question here. Type Answer.
Topics for exam in AOSD Basic concepts: tangling, scattering, joinpoint, advice, cross-cutting, weaving AspectJ: syntax, pointcut notations, around, proceed,
Systems Analysis and Design in a Changing World, 6th Edition
Copyright 2010 by Pearson Education 1 Building Java Programs Chapter 2 Lecture 2-1: Expressions and Variables reading:
Multiplication Facts X 3 = 2. 8 x 4 = 3. 7 x 2 =
ANU COMP2110 Software Design in 2003 Lecture 10Slide 1 COMP2110 Software Design in 2004 Lecture 12 Documenting Detailed Design How to write down detailed.
L13: Design by Contract Definition Reliability Correctness Pre- and post-condition Asserts and Exceptions Weak & Strong Conditions Class invariants Conditions.
1 Building Java Programs Chapter 2 Lecture 2-1: Expressions and Variables reading:
Static Techniques for V&V. Hierarchy of V&V techniques Static Analysis V&V Dynamic Techniques Model Checking Simulation Symbolic Execution Testing Informal.
Announcements Final Exam: TBD. Static Variables and Methods static means “in class” methods and variables static variable: one per class (not one per.
Today’s Agenda  Quiz 4  Temporal Logic Formal Methods in Software Engineering1.
1 BUILDING JAVA PROGRAMS CHAPTER 5 PROGRAM LOGIC AND INDEFINITE LOOPS.
4 - Conditional Control Structures CHAPTER 4. Introduction A Program is usually not limited to a linear sequence of instructions. In real life, a programme.
Category Category Category Category Category
Programming in Java Transitioning from Alice. Becomes not myFirstMethod but …. public static void main (String[] arg) { // code for testing classes goes.
3 3 x =5 When you see a Multiplication problem, you can use the DIVISION Property of Equality to solve it! Remember – a FRACTION means to divide! CHECK.
Review Session.
CS360 Windows Programming
Creating Random Multiple Versions of Canvas Questions
Java Programming Function Introduction
class PrintOnetoTen { public static void main(String args[]) {
Building Java Programs
Breaking Factors into Smaller Factors
Names of variables, functions, classes
Java Programming Function Introduction
Building Java Programs
Presentation transcript:

Aspect-Oriented Software Development (AOSD) Tutorial #6 Categories of Aspects – contd.; LTL properties formalization; Assume – guarantee specifications

Aspect-Oriented Software Development (236608) 2 Today: Aspects Categories (contd.), LTL properties Base system properties preservation –guaranteed –occasional From natural language to Temporal Logic Assume – guarantee aspects specification Examples

Aspect-Oriented Software Development (236608) 3 Example: Rational Exam (reminder) private void doExam() { while (true) { r1 = randomRational(); r2 = randomRational(); result = r1.add(r2); answer = getAnswer(r1, r2); if (answer == null) break; checkAnswer(answer, result); } public static void main(String[] args) { RationalExam exam = new RationalExam(); exam.doExam(); } The system generates and checks online exams for students with simple arithmetic exercises for fractions RationalExam class: initiates exams, generates questions, accepts answers, checks answers

Aspect-Oriented Software Development (236608) 4 Rational Exam System Properties -1 “After a user answers a question, the system performs correctness check and prints out the result” φ 1 = G ( ((get_ans_ret = a) ⋀ (a ≠ null)) → (¬ call_check_ans U ( (call_check_ans ⋀ arg1 = a ⋀ arg2 =result) ⋀ X (¬ call_check_ans U (print ⋀ arg = check_ans_ret) ) ))) liveness

Aspect-Oriented Software Development (236608) 5 Rational Exam System Properties -2 “If an answer is a and the fractions in the question – r1 and r2, the correctness check will result in “true” iff a = r1 + r2” φ 2 = G ( (call_check_ans → arg2 =r1+r2) ⋀ (ret_c_a -> (check_ans_ret ↔ arg1 = arg2)) ) enough, due to φ 1 safety

Aspect-Oriented Software Development (236608) 6 Rational Exam – Properties Preservation φ 1 = G(((get_ans_ret=a) ⋀ (a ≠ null))→ (¬ call_ch_ans U ((call_ch_ans ⋀ arg1=a ⋀ arg2=result) ⋀ X(¬ call_ch_ans U (print ⋀ arg = ch_ans_ret))))) φ 2 = G((call_ch_ans → arg2=r1+r2) ⋀ (ret_c_a -> (check_ans_ret ↔ arg1 = arg2)) ) Categoryφ1φ1 φ2φ2 Exceptions logging Multiplication Normalization Age restriction Grading Factor ✔ (here) ✔ (defn) ✔ (here) ✔ (defn) ✔ (here) ✘ spectative strongly inv. weakly inv. regulative spectative weakly inv.

Aspect-Oriented Software Development (236608) 7 From natural language to LTL In this example: Specification of events in the system and their relations Examples from the ontology of ARCADE temporal patterns: match patterns with temporal logic formulas

Aspect-Oriented Software Development (236608) 8 From natural language to LTL Temporal pattern (events)Temporal logic E between A and B A during B A before B, B only after A A leads to B C on A and B G(A → B) G (A → ((F B) ⋀ ((¬B) U E))) G ( (¬B) U A) G (A → F B) G (¬(A ⋀ B) ⋀ X(A ⋀ B)→ X C meaning (here): A has to be followed by E and then B