On the Correctness of Model Transformations Gabor Karsai ISIS/Vanderbilt University.

Slides:



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

Auto-Generation of Test Cases for Infinite States Reactive Systems Based on Symbolic Execution and Formula Rewriting Donghuo Chen School of Computer Science.
1 CIS 461 Compiler Design and Construction Fall 2014 Instructor: Hugh McGuire slides derived from Tevfik Bultan, Keith Cooper, and Linda Torczon Lecture-Module.
Alan Shaffer, Mikhail Auguston, Cynthia Irvine, Tim Levin The 7th OOPSLA Workshop on Domain-Specific Modeling October 21-22, 2007 Toward a Security Domain.
Introducing Formal Methods, Module 1, Version 1.1, Oct., Formal Specification and Analytical Verification L 5.
1 Translation Validation: From Simulink to C Michael RyabtsevOfer Strichman Technion, Haifa, Israel Acknowledgement: sponsored by a grant from General.
LIFE CYCLE MODELS FORMAL TRANSFORMATION
Which role might model-based engineering play in software certification? Selo Sulistyo.
Job No/ 1 © British Crown Copyright 2008/MOD Developing a High Integrity Code Generator Using iUML/iCCG Sam Moody AWE plc, Aldermaston, Berkshire, United.
Assurance techniques for code generators Ewen Denney USRA/RIACS, NASA Ames Bernd Fischer ECS, U Southampton.
Software Reliability CIS 640 Adapted from the lecture notes by Doron Pelel (
Automatic Verification of Component-Based Real-Time CORBA Applications Gabor Madl Sherif Abdelwahed
Formal Techniques in Software Engineering Universiteit AntwerpenIntroduction 1.1 Formal Techniques in Software Engineering 3de BAC Informatica Chapter.
Model-Based Programming: Executable UML with Sequence Diagrams By Ruben Campos Cal State L.A. Computer Science Thesis Work Spring 2007.
Chess Review October 4, 2006 Alexandria, VA Edited and presented by Impact: Fault Tolerance and High Confidence Embedded Systems Design Gabor Karsai Vanderbilt.
Verifying Distributed Real-time Properties of Embedded Systems via Graph Transformations and Model Checking Gabor Madl
Ivano Malavolta, Henry Muccini, Patrizio Pelliccione Computer Science Department University of L'Aquila - Italy Architectural notations interoperability.
Model-based Analysis of Distributed Real-time Embedded System Composition Gabor Madl Sherif Abdelwahed
November 18, 2004 Embedded System Design Flow Arkadeb Ghosal Alessandro Pinto Daniele Gasperini Alberto Sangiovanni-Vincentelli
Describing Syntax and Semantics
1.1 Introduction to Language Processor
Testing and Monitoring at Penn An Integrated Framework for Validating Model-based Embedded Software Li Tan University of Pennsylvania September, 2003.
Stimulating reuse with an automated active code search tool Júlio Lins – André Santos (Advisor) –
Formal Techniques for Verification Using SystemC By Nasir Mahmood.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Towards Scalable Modular Checking of User-defined Properties Thomas Ball, MSR Brian Hackett, Mozilla Shuvendu Lahiri, MSR Shaz Qadeer, MSR Julien Vanegue,
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Co-design Environment for Secure Embedded Systems Matt Eby, Janos L. Mathe, Jan Werner, Gabor Karsai, Sandeep Neema, Janos Sztipanovits, Yuan Xue Institute.
Configuration Management (CM)
Proof Carrying Code Zhiwei Lin. Outline Proof-Carrying Code The Design and Implementation of a Certifying Compiler A Proof – Carrying Code Architecture.
1 New Development Techniques: New Challenges for Verification and Validation Mats Heimdahl Critical Systems Research Group Department of Computer Science.
John D. McGregor Session 2 Preparing for Requirements V & V
University of Southern California Center for Systems and Software Engineering Model-Based Software Engineering Supannika Koolmanojwong Spring 2013.
Verification and Validation in the Context of Domain-Specific Modelling Janne Merilinna.
University of Paderborn Software Engineering Group Prof. Dr. Wilhelm Schäfer Towards Verified Model Transformations Holger Giese 1, Sabine Glesner 2, Johannes.
A language to describe software texture in abstract design models and implementation.
Formal Verification Lecture 9. Formal Verification Formal verification relies on Descriptions of the properties or requirements Descriptions of systems.
An overview of Coq Xinyu Feng USTC Erasmus Mundus NordSecMob Scholar at DTU.
INRIA - LaBRICharles Consel Jan-06 1 Domain-Specific Software Engineering Charles Consel Phoenix Research Group LaBRI /INRIA-Futurs January 2006.
Model Checking and Model-Based Design Bruce H. Krogh Carnegie Mellon University.
MASE : Modeling & Analysis in Software Engineering School of Computing Queen’s University Kingston, Ontario, Canada Juergen Dingel CAMPAM, April 29, 2012.
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.
COP 4620 / 5625 Programming Language Translation / Compiler Writing Fall 2003 Lecture 1, 08/28/03 Prof. Roy Levow.
The basics of the programming process The development of programming languages to improve software development Programming languages that the average user.
CS 460/660 Compiler Construction. Class 01 2 Why Study Compilers? Compilers are important – –Responsible for many aspects of system performance Compilers.
1 Chapter 26 Cleanroom Software Engineering Cleanroom Developed in early 80’s by Harlan Mills Reported very good results –reliable, high-quality.
Formal Methods.
A compiler is a computer program that translate written code (source code) into another computer language Associated with high level languages A well.
Lecture 5 1 CSP tools for verification of Sec Prot Overview of the lecture The Casper interface Refinement checking and FDR Model checking Theorem proving.
Integrating Security Modeling in Embedded System Design Jan Werner, Matt Eby, Janos Mathe, Gabor Karsai, Yuan Xue, Janos Sztipanovits Institute for Software.
How to Program? -- Part 1 Part 1: Problem Solving –Analyze a problem –Decide what steps need to be taken to solve it. –Take into consideration any special.
 Programming - the process of creating computer programs.
RESOLVE VERIFICATION: A New Perspective Joan Krone William F. Ogden.
RE-ENGINEERING AND DOMAIN ANALYSIS BY- NISHANTH TIRUVAIPATI.
SAFE KERNEL EXTENSIONS WITHOUT RUN-TIME CHECKING George C. Necula Peter Lee Carnegie Mellon U.
FUNCTIONAL PROGRAMING AT WORK - HASKELL AND DOMAIN SPECIFIC LANGUAGES Dr. John Peterson Western State Colorado University.
Software Systems Division (TEC-SW) ASSERT process & toolchain Maxime Perrotin, ESA.
SYSTEM SOFTWARE & COMPILER DESIGN
State your reasons or how to keep proofs while optimizing code
Software Design Methodology
“just-in-time” compilation (JIT) technique prepared by - Harshada Hole
Benjamin Goldberg Compiler Verification and Optimization
QGen and TQL-1 Qualification
IS 2935: Developing Secure Systems
TRUST:Team for Research in Ubiquitous Secure Technologies
Re- engineeniering.
String Analysis for JavaScript Programs Using JSAI
An overview of Coq.
Presentation transcript:

On the Correctness of Model Transformations Gabor Karsai ISIS/Vanderbilt University

Model-based Embedded Software Development Today Defines the modeling language (document) The “source code” The “compiler” The “verification tool” The “code” The “OS” Defines the modeling language (document) The “source code” The “compiler” The “verification tool” The “code” The “OS” METAMODEL Domain Models Simulation/Execution Engine Code Generator Execution Platform Executable components/code Hand- written Code COMPILER WE TRUST THESE

Model-based Software Development – Near Future METAMODEL Domain Models Verification Engine Code Generator Execution Platform Executable components/code Hand- written Code COMPILER Formally defines the modeling language MODEL TRANSLATOR Verification Engine Implicitly implements the semantics of the modeling language Implicitly implements the semantics of the modeling language Essential questions for model- based development: 1.How do you know that your model transformations (model translator/code generator) are correct? 2.How do you know that the products of the verification engine are true for the generated code running on the platform? Essential questions for model- based development: 1.How do you know that your model transformations (model translator/code generator) are correct? 2.How do you know that the products of the verification engine are true for the generated code running on the platform?

Correctness of Model Transformations - Ideas Instance-based generation of certificates: (NASA/ARC/RSE) 1.Use the transformation engine to co-generate ‘verification conditions’ 2.Use a theorem prover/model checker to check properties on the verification conditions Instance-based generation of certificates: (NASA/ARC/RSE) 1.Use the transformation engine to co-generate ‘verification conditions’ 2.Use a theorem prover/model checker to check properties on the verification conditions Other techniques: Establish a bisimulation relationship between the source and target models, build data structures during the transformation that can verify the bisimilarity. Use the transformation engine to emit assertions about abstractions of the generated code, use these assertions in the code verifier to build those abstractions. Other techniques: Establish a bisimulation relationship between the source and target models, build data structures during the transformation that can verify the bisimilarity. Use the transformation engine to emit assertions about abstractions of the generated code, use these assertions in the code verifier to build those abstractions.