open problems Claudio Antares Mezzina

Slides:



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

1 Reversibility for Recoverability Ivan Lanese Computer Science Department FOCUS research group University of Bologna/INRIA Bologna, Italy.
Software system modeling
Intro to Threading CS221 – 4/20/09. What we’ll cover today Finish the DOTS program Introduction to threads and multi-threading.
Course Summary. © Katz, 2003 Formal Specifications of Complex Systems-- Real-time 2 Topics (1) Families of specification methods, evaluation criteria.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio Montesi and Gianluigi.
Bridging the gap between Interaction- and Process-Oriented Choreographies Talk by Ivan Lanese Joint work with Claudio Guidi, Fabrizio.
Course Summary. © Katz, 2007 Formal Specifications of Complex Systems-- Real-time 2 Topics (1) Families of specification methods, evaluation criteria.
CS533 - Concepts of Operating Systems
1 Joint work with Claudio Antares Mezzina (INRIA), Jean-Bernard Stefani (INRIA) and Alan Schmitt (INRIA) Controlling Reversibility in Rhopi Ivan Lanese.
1 Ivan Lanese Computer Science Department University of Bologna Italy Concurrent and located synchronizations in π-calculus.
Orchestration or Contracts… What do we want to do?
Copyright © 2003 by Prentice Hall Computers: Tools for an Information Age Chapter 14 Systems Analysis and Design: The Big Picture.
Reverse Engineering State Machines by Interactive Grammar Inference Neil Walkinshaw, Kirill Bogdanov, Mike Holcombe, Sarah Salahuddin.
1 Reversibility for Concurrent Interacting Systems Ivan Lanese Focus research group Computer Science and Engineering Department University of Bologna/INRIA.
1 Joint work with Michael Lienhardt (PPS), Claudio Antares Mezzina (Trento), Jean-Bernard Stefani (INRIA) and Alan Schmitt (INRIA) Reversibility in Concurrency.
Lecture 11 Testing and Debugging SFDV Principles of Information Systems.
 CS 5380 Software Engineering Chapter 8 Testing.
Introduction to Formal Methods Based on Jeannette M. Wing. A Specifier's Introduction to Formal Methods. IEEE Computer, 23(9):8-24, September,
Programming Models & Runtime Systems Breakout Report MICS PI Meeting, June 27, 2002.
Towards Global and Local Types for Adaptation Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Joint work with Mario Bravetti,
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Amending Choreographies Joint work with Fabrizio Montesi and Gianluigi Zavattaro.
1 Causal-Consistent Reversible Debugging Ivan Lanese Focus research group Computer Science and Engineering Department University of Bologna/INRIA Bologna,
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Causal-Consistent Reversibility in a Tuple-Based Language Joint work with Elena.
TECHNIQUES FOR EFFICIENTLY RECORDING STATE CHANGES OF A COMPUTER ENVIRONMENT TO SUPPORT REVERSIBLE DEBUGGING Steve Lewis.
1 Reversible Debugging Ivan Lanese Focus research group Computer Science and Engineering Department University of Bologna/INRIA Bologna, Italy Joint work.
1 Joint work with Claudio Antares Mezzina and Jean-Bernard Stefani Controlled Reversibility and Compensations Ivan Lanese Focus research group Computer.
International Telecommunication Union © ITU-T Study Group 17 Integrated Application of SDL Amardeo Sarma NEC Europe Ltd.
11 Software Design CSCU 411 Software Engineering.
Execution Replay and Debugging. Contents Introduction Parallel program: set of co-operating processes Co-operation using –shared variables –message passing.
Francesco Tiezzi IMT Advanced Studies Lucca Causal-Consistent Reversibility in a Tuple-Based Distributed Language Joint work with Elena Giachino, Ivan.
Agenda  Quick Review  Finish Introduction  Java Threads.
Ivan Lanese Computer Science Department University of Bologna/INRIA Italy Causal-Consistent Reversibility in a Tuple-Based Distributed Language Joint work.
Model Checking Early Requirements Specifications in Tropos Presented by Chin-Yi Tsai.
Pervasive Computing MIT SMA 5508 Spring 2006 Larry Rudolph 1 Publish & Subscribe Larry Rudolph May 3, 2006 SMA 5508 & MIT
UML Chapter 17.
An Operational Approach to Relaxed Memory Models
Formal methods: Lecture
Support for Program Analysis as a First-Class Design Constraint in Legion Michael Bauer 02/22/17.
CSCI 161: Introduction to Programming Course Introduction
PARALLEL COMPUTING.
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Greetings. Those of you who don't yet know me... Today is... and
The COSMO Coding Standards Some Highlights
Matching Logic An Alternative to Hoare/Floyd Logic
Alternative system models
Synthesis from scenarios and requirements
Programming Problem steps must be able to be fully & unambiguously described Problem types; Can be clearly described Cannot be clearly described (e.g.
Mengjia Yan, Yasser Shalabi, Josep Torrellas
New trends in parallel computing
runtime verification Brief Overview Grigore Rosu
Chapter 12: Query Processing
FORMAL SYSTEM DEVELOPMENT METHODOLOGIES
Using Visual Studio with C#
The Top 10 Reasons Why Federated Can’t Succeed
SS 2018 Software Verification ML, state machines
Model Checking for an Executable Subset of UML
A Complete Symbolic Bisimulation for Full Applied Pi Calculus
Internet of Things A Process Calculus Approach
Conceptual, Logical, and Physical Design of Data Warehouses
CSE403 Software Engineering Autumn 2000 More Testing
A Trusted Safety Verifier for Process Controller Code
Presented By: Darlene Banta
Software system modeling
An Introduction to Debugging
CSE594: REVIEW.
CISC 7120X Programming Languages and Compilers
Chapter-1 Computer is an advanced electronic device that takes raw data as an input from the user and processes it under the control of a set of instructions.
The COSMO Coding Standards Some Highlights
Rich Model Toolkit – An Infrastructure for Reliable Computer Systems
Presentation transcript:

open problems Claudio Antares Mezzina (with special suggestions from Lanese & Ulidowski & Tuosto) IMT School for Advanced Studies Lucca WG1 Meeting, Cyprus

Software development According to Software Engineering we can distinguish three main phases during software development Specification Implementation Validation / Verification

Sequential VS Concurrent In this talk we will just focus on Concurrent Programs There exists two concurrency models Shared Memory SM Message Passing MP

Problem Spectrum

Problem Spectrum

Concurrent Specification There exist formalisms which are general enough to work with both (Spec, MP) and (Spec, SM) Reversible Prime Event Structures / (Phillips & Ulidowski) Rigid Families (Cristescu & Krivine & Varacca) Reversible CCS / pi-calculus (Krivine et al., Lanese et al., Phillips et al.)

Concurrent: toolbox (Spec, MP) Reversible Contracts (Barbanera & De’ Liguoro &Lanese) Binary, limited to choices Reversible Global Graphs (Mezzina & Tuosto) Multiparty, choices and loops + conditions

(Spec, MP) CONCURRENT: TOOLBOX Reversible (Multi Party - ) Session Types Tiezzi & Yoshida types are not used at all Castellani et al multiparty, limited to choices Mezzina & Perez multiparty, fully reversible

Concurrent (Spec, SM) Based on shared memory Some initial ideas on reversible SOS with store Compared with the MP scenario, we are lacking alternatives

Implementation (Impl, MP) Reversible Erlang (Lanese & Nishida & Palacios & Vidal) Reversible Communicating Machines (ongoing Mezzina & Tuosto & Ulidowski) Actor model + Checkpoint (Transactors) 11

Concurrent setting: Implementation (Impl, SM) Reversing Parallel Programs (Hoey & Ulidowski & Yuen) Reversible Tuple Spaces (Giachino & Lanese & Mezzina & Tiezzi) Compared with the MP scenario, we are lacking alternatives 12

Verification There exist formalisms which are general enough to work with both (Ver, MP) and (Ver, SM) Equivalences for Reversibility Bisimulations: few works but still far away from something concrete See Iain’s slides for the Training School Testing: some preliminary ideas A safety and liveness theory for total reversibility (Mezzina & Koutavas) More on Ivan’s talk from last WG1 meeting Logics for reversible systems Event Identifier Logic (Phillips & Ulidowski)

Verification (Ver, MP) (Ver, SM) Debugging CC Reversible Erlang Debugger (Lanese & Nishida & Palacios & Vidal) Based on fully reversible semantics (Ver, SM) mOz debugger for a toy language (Giachino & Lanese & Mezzina) No real CC Reversible Deb for Shared Memory

Spectrum

Do we get a full-fledged framework for software development? Research goal If we were to apply any meaningful combination of the above mentioned approaches to software development Do we get a full-fledged framework for software development?

Example Specification: Prime Event Structrure Implementation: Reversible Parallel programs Verification: Event Identifiers Logic

Open questions 1 Specification: Reversible Prime Event Structrure Implementation: Reversible Parallel programs Verification: Event Identifiers Logic How can we map a program execution into a RPES? How can we extend EIL to query such structures? e.g. what is the minimal cause of a certain event ?

Starting from a program specification / trace Open questions 2 Starting from a program specification / trace How can we generate reversible tests? How can tests be transformed into logic formulae?

Open question 3 Record / Replay No techniques for CC record-replay and trace-compression How can we record an execution and compress it? we can record a faulty execution of a beta program and debug it later on from the faulty trace we can automatically generate tests to see whether the bug is solved When two traces are equivalent? How we can compress trace to save time (while recording) and space?

Open question 4 So far reversible debuggers use a fully reversible semantics of the source language You have to hack the semantics of the VM/interpreter in order to embedd History logging Backward execution

Open question 4 Can’t we exploit built in mechanisms of the soure language? Can we build a debugging facility on top of the Erlang supervision model? Ability to start / stop/ restart actors Ability to query the status of actors

5 Any other questions?