Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois https://runtimeverification.com.

Slides:



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

Runtime Techniques for Efficient and Reliable Program Execution Harry Xu CS 295 Winter 2012.
Model Driven Generative Programming Reza Azimi February 6, 2003 ECE1770: Trends in Middleware Systems.
A Randomized Dynamic Program Analysis for Detecting Real Deadlocks Pallavi Joshi  Chang-Seo Park  Koushik Sen  Mayur Naik ‡  Par Lab, EECS, UC Berkeley‡
1 Chao Wang, Yu Yang*, Aarti Gupta, and Ganesh Gopalakrishnan* NEC Laboratories America, Princeton, NJ * University of Utah, Salt Lake City, UT Dynamic.
Runtime Verification Ali Akkaya Boğaziçi University.
RV: A Runtime Verification Framework for Monitoring, Prediction and Mining Patrick Meredith Grigore Rosu University of Illinois at Urbana-Champaign (UIUC)
Abstraction and Modular Reasoning for the Verification of Software Corina Pasareanu NASA Ames Research Center.
A Randomized Dynamic Program Analysis for Detecting Real Deadlocks Koushik Sen CS 265.
ECE 720T5 Fall 2011 Cyber-Physical Systems Rodolfo Pellizzoni.
ECE 720T5 Fall 2012 Cyber-Physical Systems Rodolfo Pellizzoni.
 delivers evidence that a solution developed achieves the purpose for which it was designed.  The purpose of evaluation is to demonstrate the utility,
Software Model Checking for Embedded Systems PIs: Matthew Dwyer 1, John Hatcliff 1, and George Avrunin 2 Post-docs: Steven Seigel 2, Radu Iosif 1 Students:
The Path to Multi-core Tools Paul Petersen. Multi-coreToolsThePathTo 2 Outline Motivation Where are we now What is easy to do next What is missing.
Atomicity in Multi-Threaded Programs Prachi Tiwari University of California, Santa Cruz CMPS 203 Programming Languages, Fall 2004.
Software Engineering COMP 201
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
0 Deterministic Replay for Real- time Software Systems Alice Lee Safety, Reliability & Quality Assurance Office JSC, NASA Yann-Hang.
Formal Methods 1. Software Engineering and Formal Methods  Every software engineering methodology is based on a recommended development process  proceeding.
CS527: (Advanced) Topics in Software Engineering Overview of Software Quality Assurance Tao Xie ©D. Marinov, T. Xie.
Success status, page 1 Collaborative learning for security and repair in application communities MIT & Determina AC PI meeting July 10, 2007 Milestones.
© Janice Regan, CMPT 128, Jan CMPT 128 Introduction to Computing Science for Engineering Students Creating a program.
Red Lizard Software Creators of Code Confidence..
Towards Scalable Modular Checking of User-defined Properties Thomas Ball, MSR Brian Hackett, Mozilla Shuvendu Lahiri, MSR Shaz Qadeer, MSR Julien Vanegue,
Using Mathematica for modeling, simulation and property checking of hardware systems Ghiath AL SAMMANE VDS group : Verification & Modeling of Digital systems.
Michael Ernst, page 1 Collaborative Learning for Security and Repair in Application Communities Performers: MIT and Determina Michael Ernst MIT Computer.
Chapter 2: Software Process Omar Meqdadi SE 2730 Lecture 2 Department of Computer Science and Software Engineering University of Wisconsin-Platteville.
Accelerating Precise Race Detection Using Commercially-Available Hardware Transactional Memory Support Serdar Tasiran Koc University, Istanbul, Turkey.
Lifecycle Verification of the NASA Ames K9 Rover Executive Dimitra Giannakopoulou Mike Lowry Corina Păsăreanu Rich Washington.
Survey on Trace Analyzer (2) Hong, Shin /34Survey on Trace Analyzer (2) KAIST.
Pallavi Joshi* Mayur Naik † Koushik Sen* David Gay ‡ *UC Berkeley † Intel Labs Berkeley ‡ Google Inc.
1 Hybrid-Formal Coverage Convergence Dan Benua Synopsys Verification Group January 18, 2010.
Verifying Autonomous Planning Systems Even the best laid plans need to be verified Prepared for the 2005 Software Assurance Symposium (SAS) DS1 MSL EO1.
What is Software Engineering? The discipline of designing, creating, and maintaining software by applying technologies and practices from computer science,
Page 1 5/2/2007  Kestrel Technology LLC A Tutorial on Abstract Interpretation as the Theoretical Foundation of CodeHawk  Arnaud Venet Kestrel Technology.
BridgePoint Integration John Wolfe / Robert Day Accelerated Technology.
Software Development Problem Analysis and Specification Design Implementation (Coding) Testing, Execution and Debugging Maintenance.
Deadlock Analysis with Fewer False Positives Thread T1: sync(G){ sync(L1){ sync(L2){} } }; T3 = new T3(); j3.start(); J3.join(); sync(L2){ sync(L1){} }
Testing Chapter 23 IB103 Week 12 (part 3). Verify that a complex (any) program works correctly, that the program meets specifications The chapter reviews.
Click to edit Master text styles JavaMOP Hamid Reza Niroomand A presentation to Dr. Babamir.
Using Symbolic PathFinder at NASA Corina Pãsãreanu Carnegie Mellon/NASA Ames.
Version 02U-1 Computer Security: Art and Science1 Correctness by Construction: Developing a Commercial Secure System by Anthony Hall Roderick Chapman.
Software Testing Mehwish Shafiq. Testing Testing is carried out to validate and verify the piece developed in order to give user a confidence to use reliable.
RV-ECU: Certifiable Runtime Verification for Automobiles Grigore Rosu
Technology and Products
Requirement Analysis SOFTWARE ENGINEERING. What are Requirements? Expression of desired behavior Deals with objects or entities, the states they can be.
R-Verify: Deep Checking of Embedded Code James Ezick † Donald Nguyen † Richard Lethin † Rick Pancoast* (†) Reservoir Labs (*) Lockheed Martin The Eleventh.
T EST T OOLS U NIT VI This unit contains the overview of the test tools. Also prerequisites for applying these tools, tools selection and implementation.
C++ for Engineers and Scientists, Second Edition 1 Problem Solution and Software Development Software development procedure: method for solving problems.
By RevelOps Logentries DataHub is offering the first cloud-based service for log management real-time analytics designed to enable security, privacy, and.
CS598 - Runtime verification
Bogor-Java Environment for Eclipse
Testing Tutorial 7.
Definition CASE tools are software systems that are intended to provide automated support for routine activities in the software process such as editing.
Matching Logic An Alternative to Hoare/Floyd Logic
ATTRACT TWD Symposium, Barcelona, Spain, 1st July 2016
Technology and Products
runtime verification Brief Overview Grigore Rosu
Many-core Software Development Platforms
Verification and Validation
Monitoring Programs using Rewriting
References [1] LEAP:The Lightweight Deterministic Multi-processor Replay of Concurrent Java Programs [2] CLAP:Recording Local Executions to Reproduce.
QGen and TQL-1 Qualification
QGen and TQL Qualification
Generating Optimal Linear Temporal Logic Monitors by Coinduction
RV-ECU: Maximum Assurance In-Vehicle Safety Monitoring
Foundations and Definitions
Runtime Safety Analysis of Multithreaded Programs
Rich Model Toolkit – An Infrastructure for Reliable Computer Systems
Presentation transcript:

Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois

Runtime Verification, Inc. (RV): startup company aimed at bringing the best ideas and technology developed by the runtime verification community to the real world as mature and competitive products; licensed by the University of Illinois at Urbana-Champaign (UIUC), USA. Mission: To offer the best possible solutions for reliable software development and analysis.

Ranked top-5 in the USA (US News)US News RV technology is licensed by UIUC RV employees are former UIUC students

 Runtime verification is a new field aimed at verifying computing systems as they execute  Good scalability, rigorous, no false alarms  We are leaders in the field  Coined the term “runtime verification” ▪ As a NASA research scientist, back in 2001  Founded the Runtime Verification conference (RV)  100+ publications  Raised $7M+ funding to develop technology

Code Model Build Analyze Bug 1 Bug2 … Advantages: + precise (no false alarms) + good scalability and rigor + recovery possible Limitations: - code must be executable - less code coverage, hence use with existing unit tests Execute Event Trace Highly customized for property of interest

RV-Monitor is a runtime monitoring tool that allows for checking and enforcement of safety properties over the execution of your software. - Java (prototype), C/C++ (prototype) RV-Match is a semantics-based automatic debugger for common and subtle C errors, and an automatic dynamic checker for all types of ISO C11 undefinedness. - C (mature); Java and JavaScript (prototypes) RV-Predict is an automatic dynamic data-race detector for Java, which is sound (no false positives) and maximal (no other sound dynamic tool can find more races). - Java (mature), C/C++ with interrupts (prototype)

Big triangle: all runtime behaviors of your program One path only; 0-100% overhead; complex properties Maximal number of causally equivalent paths predicted from one path; x overhead; races, atomicity, deadlocks From one path to complete coverage / verification; any properties; may require user input

Code (6-int-overflow.c) Conventional compilers do not detect problem RV-Match’s kcc tool precisely detects and reports error, and points to ISO C11 standard … Get to market faster, increase code portability, and save on development and debugging with the most advanced and precise semantics- based bug finding tool. RV-Match gives you: an automatic debugger for subtle bugs other tools can't find, with no false positives other tools can't find seamless integration with unit tests, build infrastructure, and continuous integration a platform for analyzing programs, boosting standards compliance and assurance

1. Execute program within precise mathematical model of ISO C11 2. Build abstract program state model during execution 3. Analyze each event, performing consistency checks on state Code Execute Event Trace Abstract State Model Build Heap About 120 semantic state components Are all ISO C11 rules matched? If “no” then error Analyze

T E S T S Results : Tests run: 0, Failures: 0, Errors: 0, Skipped: 0... Tomcat (OutputBuffer.java) … Automatically detect the rarest and most difficult data races in your Java code, saving on development effort with the most precise race finder available. RV-Predict gives you: an automatic debugger for subtle Java data races with no false positives seamless integration with unit tests, build infrastructure, and continuous integration a maximal detection algorithm that finds more races than any sound dynamic tool a maximal detection algorithm Data race on field java.util.HashMap.$state: {{{ Concurrent write in thread T83 (locks held: ----> at org.apache.catalina.connector.OutputBuffer.clearEncoders(OutputBuffer.java:255)... Concurrent read in thread T61 (locks held: {}) ----> at org.apache.catalina.connector.OutputBuffer.setConverter(OutputBuffer.java:604)... Conventional testing approaches do not detect the data-race RV-Predict precisely detects the data-race, and reports the relevant stack-traces … … …

1. Instrument program to emit event trace when executed 2. Give every observed event an order variable 3. Encode event causal ordering and data race as constraints 4. Solve constraints with SMT solver Code Event Trace Execute Build Model Causal dependence as mathematical formula  Analyze Is  satisfiable? (we use Z3 solver) If “yes” then data race

 For more details see Technology and Products  Checkout our products  First read documentation, see if tool fits your need ▪ Illustrated with lots of examples  Then download and evaluate them ▪ 90 day fully-featured evaluation versions available  Contact us with any questions