Rebecca Modeling Language Mahdieh Ahmadi Verification of Reactive Systems March 2014.

Slides:



Advertisements
Similar presentations
Model Checking for an Executable Subset of UML Fei Xie 1, Vladimir Levin 2, and James C. Browne 1 1 Dept. of Computer Sciences, UT at Austin 2 Bell Laboratories,
Advertisements

Abstraction and Modular Reasoning for the Verification of Software Corina Pasareanu NASA Ames Research Center.
Architecture Representation
Formal Modelling of Reactive Agents as an aggregation of Simple Behaviours P.Kefalas Dept. of Computer Science 13 Tsimiski Str Thessaloniki Greece.
CS 290C: Formal Models for Web Software Lecture 4: Implementing and Verifying Statecharts Specifications Using the Spin Model Checker Instructor: Tevfik.
Development of a Formalism for Modelling and Analysis of Dynamic Reconfiguration of Dependable Real-Time Systems: A Technical Diary Anirban Bhattacharyya.
© 2011 Carnegie Mellon University SPIN: Part /614 Bug Catching: Automated Program Verification Sagar Chaki April 21, 2014.
© 2006 ITT Educational Services Inc. SE350 System Analysis for Software Engineers: Unit 9 Slide 1 Appendix 3 Object-Oriented Analysis and Design.
1 SWE Introduction to Software Engineering Lecture 23 – Architectural Design (Chapter 13)
Model Checking. Used in studying behaviors of reactive systems Typically involves three steps: Create a finite state model (FSM) of the system design.
Developing Verifiable Concurrent Software Tevfik Bultan Department of Computer Science University of California, Santa Barbara
Establishing the overall structure of a software system
1 Joint work with Claudio Antares Mezzina (INRIA), Jean-Bernard Stefani (INRIA) and Alan Schmitt (INRIA) Controlling Reversibility in Rhopi Ivan Lanese.
Verifying Distributed Real-time Properties of Embedded Systems via Graph Transformations and Model Checking Gabor Madl
Copyright 2004 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Second Edition Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix.
Asynchronous Message Passing EE 524/CS 561 Wanliang Ma 03/08/2000.
Model-based Analysis of Distributed Real-time Embedded System Composition Gabor Madl Sherif Abdelwahed
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
1 Formal Engineering of Reliable Software LASER 2004 school Tutorial, Lecture1 Natasha Sharygina Carnegie Mellon University.
Tool Integration of Ptolemy II EE290N Class Project Haiyang Zheng May
Teamwork Know each other Compete Leadership Strengths and Weaknesses
Data Structures and Programming.  John Edgar2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 11 Slide 1 Architectural Design.
02/06/05 “Investigating a Finite–State Machine Notation for Discrete–Event Systems” Nikolay Stoimenov.
Cheng/Dillon-Software Engineering: Formal Methods Model Checking.
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 13Slide 1 Architectural Design u Establishing the overall structure of a software system.
Advanced Topics in Software Engineering Marjan Sirjani Tehran University Faculty of Engineering ECE Department Tehran,
Architectural Design portions ©Ian Sommerville 1995 Establishing the overall structure of a software system.
Assessing the Suitability of UML for Modeling Software Architectures Nenad Medvidovic Computer Science Department University of Southern California Los.
©Ian Sommerville 2000 Software Engineering, 6th edition. Chapter 10Slide 1 Architectural Design l Establishing the overall structure of a software system.
Copyright 2001 Prentice-Hall, Inc. Essentials of Systems Analysis and Design Joseph S. Valacich Joey F. George Jeffrey A. Hoffer Appendix A Object-Oriented.
Copyright 2002 Prentice-Hall, Inc. Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey F. George Joseph S. Valacich Chapter 20 Object-Oriented.
Benjamin Gamble. What is Time?  Can mean many different things to a computer Dynamic Equation Variable System State 2.
Scientific Computing By: Fatima Hallak To: Dr. Guy Tel-Zur.
Copyright 2002 Prentice-Hall, Inc. Chapter 2 Object-Oriented Analysis and Design Modern Systems Analysis and Design Third Edition Jeffrey A. Hoffer Joey.
- 1 - Embedded Systems - SDL Some general properties of languages 1. Synchronous vs. asynchronous languages Description of several processes in many languages.
CS6133 Software Specification and Verification
A Locally Nameless Theory of Objects 1.Introduction:  -calculus and De Bruijn notation 2.locally nameless technique 3.formalization in Isabelle and proofs.
Abstraction and Compositional Verification Techniques for Asynchronously Communicating Components Marjan Sirjani Tehran University, IPM FMCO’06 Amsterdam.
Advanced Topics in Software Engineering Marjan Sirjani Tehran University Faculty of Engineering ECE Department Tehran,
Programming Paradigms for Concurrency Pavol Cerny Vasu Singh Thomas Wies Part III – Message Passing Concurrency.
Model construction and verification for dynamic programming languages Radu Iosif
Verification of behavioural elements of UML models using B Truong, Ninh-Thuan and Souquieres, Jeanine In Proceedings of the 2005 ACM Symposium on.
1 Qualitative Reasoning of Distributed Object Design Nima Kaveh & Wolfgang Emmerich Software Systems Engineering Dept. Computer Science University College.
Fault-Tolerant Parallel and Distributed Computing for Software Engineering Undergraduates Ali Ebnenasir and Jean Mayo {aebnenas, Department.
Model 3: Message-Passing Text We saw –Diagrams –Shared-variables text Now –Message-passing text (like CSP)
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 13. Review Shared Data Software Architectures – Black board Style architecture.
© 2006 Pearson Addison-Wesley. All rights reserved2-1 Chapter 2 Principles of Programming & Software Engineering.
© 2006 Pearson Addison-Wesley. All rights reserved 2-1 Chapter 2 Principles of Programming & Software Engineering.
Modelling Reactive Systems 4 Professor Muffy Calder Dept. of Computing Science University of Glasgow
ACTORS. Motivation Develop language for concurrency “ Parallel Execution of actions ”.
Chapter 5 System Modeling. What is System modeling? System modeling is the process of developing abstract models of a system, with each model presenting.
Prof. Hany H. Ammar, CSEE, WVU, and
Software Systems Verification and Validation Laboratory Assignment 4 Model checking Assignment date: Lab 4 Delivery date: Lab 4, 5.
Copyright © 2009 Pearson Education, Inc. Publishing as Prentice Hall Appendix A Object-Oriented Analysis and Design A.1.
SystemC Semantics by Actors and Reduction Techniques in Model Checking Marjan Sirjani Formal Methods Lab, ECE Dept. University of Tehran, Iran MoCC 2008.
Symbolic Model Checking of Software Nishant Sinha with Edmund Clarke, Flavio Lerda, Michael Theobald Carnegie Mellon University.
CS5270 Lecture 41 Timed Automata I CS 5270 Lecture 4.
Model Checking Early Requirements Specifications in Tropos Presented by Chin-Yi Tsai.
Complexity of Compositional Model Checking of Computation Tree Logic on Simple Structures Krishnendu Chatterjee Pallab Dasgupta P.P. Chakrabarti IWDC 2004,
Security analysis of COM with Alloy
Cmpe 589 Spring 2006.
SOFTWARE DESIGN AND ARCHITECTURE
Business System Development
Towards Next Generation Panel at SAINT 2002
Over-Approximating Boolean Programs with Unbounded Thread Creation
Chapter 20 Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Appendix A Object-Oriented Analysis and Design
Appendix 3 Object-Oriented Analysis and Design
Presentation transcript:

Rebecca Modeling Language Mahdieh Ahmadi Verification of Reactive Systems March 2014

Outline Motivation Actor-based Language Rebeca Syntax Semantics Compositional Verification of Rebeca Supporting Tools March 2014Rebeca Modeling Language2

Motivation March 2014Rebeca Modeling Language3 Establishing a Formal verification method, Easy to use for software engineers For developing reliable systems in concurrent and distributed applications. Formal verification method: Modeling language + Verification mechanism Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools

Motivation :: Idea Popularity of Object Oriented Design Between Practitioners Actor-based modeling language Abstraction and Modular Verification Plus component notation Asynchronous message passing No shared variables Formal Verification Support Tools for direct verification March 2014Rebeca Modeling Language4 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools

Actor-based Language Rebeca :: Actor A reference model for concurrent computation Consisting of concurrent, distributed active objects Proposed by Hewitt as an agent-based language (MIT, 1971) Developed by Agha as a concurrent object-based language (Illinois, since 1984) March 2014Rebeca Modeling Language5 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools

Actor-based Language Rebeca :: Rebeca Reactive object language Bridge the gap between formal verification approaches and real applications Introduced by Sirjani and Movaghar, 2001 March 2014Rebeca Modeling Language6 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools

Actor-based Language Rebeca :: Rebeca:: Key Features Independent active objects Asynchronous message passing Unbounded buffers for messages Dynamically changing topology Dynamic creation of active objects March 2014Rebeca Modeling Language7 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools

Actor-based Language Rebeca :: Rebeca:: Added Features Add class declarations to the syntax : Rebecs Encapsulation of data and process, no shared variable Grouping a set of reactive objects as an open component Allow a set of more tightly coupled objects to be grouped as a component A higher level of abstraction in software design Tool supported Model checking Rebeca code using back-end model checkers Direct Verification capability using RMC March 2014Rebeca Modeling Language8 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools

Syntax Actor-based computational model Units of concurrency and distribution: Reactive objects Simple and natural Objects are threads. March 2014Rebeca Modeling Language9 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools

Syntax Communication : Asynchronous message passing Unbounded message queue for each rebec No explicit receive Computation: Take a message from top of the queue and execute it Event-driven Introduced by Sirjani and Movaghar, 2001 March 2014Rebeca Modeling Language10 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools

Syntax March 2014Rebeca Modeling Language11 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools Set of Reactive Classes Initial Configuration Upper bound on the Length of the Message Queue Initial Communication Topology of the System

Syntax :: Example March 2014Rebeca Modeling Language12 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools S0S0

Semantics March 2014Rebeca Modeling Language13 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools Formal semantics Labeled transition system A solid basis for verification The state of a rebec, is the valuation of state variables, and the unbounded buffer (queue) for incoming messages. The state of the system, is the product of local object states A state transition: an atomic execution of a method off the top of the rebec’s queue.

Compositional Verification of Rebeca :: Inherent Modularity in Rebeca Only consider LTL and ACTL properties State explosion problem Solution: Modularity Abstraction Rebecs are inherently Independent, decoupled, encapsulated => Leads to natural modularity and abstraction techniques March 2014Rebeca Modeling Language14 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools

Compositional Verification of Rebeca :: Components What we had: Decomposing a model for verification purposes In a top-down manner. What we added: Notion of components Re-usable parts Fixed proven specifications Build a system in bottom-up fashion March 2014Rebeca Modeling Language15 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools

Compositional Verification of Rebeca Decompose a model into components, Verify some specific properties for these components, and then deduce the system’s property from the properties of its components. Components are sets of reactive objects Components interact via broadcasting asynchronous anonymous messages March 2014Rebeca Modeling Language16 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools

Enter a model in Rebeca, Translate it into SMV (or Promela), Specify properties at Rebeca source code level (based on state variables), Translate the properties to NuSMV (or Spin) format, Model check using NuSMV (or Spin). Direct model Checking of Rebeca March 2014Rebeca Modeling Language17 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools Direct model Checking of Rebeca

References Marjan Sirjani, Ali Movaghar, Amin Shali, and Frank S. de Boer Modeling and Verification of Reactive Systems using Rebeca. Fundam. Inf. 63, 4 (June 2004), Marjan Sirjani and Mohammad Mahdi Jaghoori Ten years of analyzing actors: Rebeca experience. In Formal modeling, Gul Agha, José Meseguer, and Olivier Danvy (Eds.). Springer-Verlag, Berlin, Heidelberg March 2014Rebeca Modeling Language18 Motivation Actor-based Language Rebeca SyntaxSemantics Compositional Verification of Rebeca Supporting Tools