runtime verification Brief Overview Grigore Rosu

Slides:



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

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.
1 Software Processes A Software process is a set of activities and associated results which lead to the production of a software product. Activities Common.
ECE 720T5 Fall 2012 Cyber-Physical Systems Rodolfo Pellizzoni.
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:
Atomicity in Multi-Threaded Programs Prachi Tiwari University of California, Santa Cruz CMPS 203 Programming Languages, Fall 2004.
Software Engineering COMP 201
School of Computer ScienceG53FSP Formal Specification1 Dr. Rong Qu Introduction to Formal Specification
1 Software Testing and Quality Assurance Lecture 1 Software Verification & Validation.
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.
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,
Michael Ernst, page 1 Collaborative Learning for Security and Repair in Application Communities Performers: MIT and Determina Michael Ernst MIT Computer.
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.
Page 1 5/2/2007  Kestrel Technology LLC A Tutorial on Abstract Interpretation as the Theoretical Foundation of CodeHawk  Arnaud Venet Kestrel Technology.
Debugging parallel programs. Breakpoint debugging Probably the most widely familiar method of debugging programs is breakpoint debugging. In this method,
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){} }
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.
Sampling Dynamic Dataflow Analyses Joseph L. Greathouse Advanced Computer Architecture Laboratory University of Michigan University of British Columbia.
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.
Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois
RV-ECU: Certifiable Runtime Verification for Automobiles Grigore Rosu
Technology and Products
Formal Methods in Software Engineering1 Today’s Agenda  Mailing list  Syllabus  Introduction.
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.
By RevelOps Logentries DataHub is offering the first cloud-based service for log management real-time analytics designed to enable security, privacy, and.
Debugging and Testing Hussein Suleman March 2007 UCT Department of Computer Science Computer Science 1015F.
Jeremy Nimmer, page 1 Automatic Generation of Program Specifications Jeremy Nimmer MIT Lab for Computer Science Joint work with.
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
The Software Development Cycle
SYSTEM ANALYSIS AND DESIGN
Technology and Products
Formally Specified Monitoring of Temporal Properties
Parametric Trace Slicing and Monitoring
Specifying Multithreaded Java semantics for Program Verification
Many-core Software Development Platforms
Verification and Validation
Monitoring Programs using Rewriting
CodePeer Update Arnaud Charlet CodePeer Update Arnaud Charlet
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
CodePeer Update Arnaud Charlet CodePeer Update Arnaud Charlet
QGen and TQL Qualification
Generating Optimal Linear Temporal Logic Monitors by Coinduction
RV-ECU: Maximum Assurance In-Vehicle Safety Monitoring
Dynamic Program Analysis
Foundations and Definitions
Runtime Safety Analysis of Multithreaded Programs
Chapter 7 Software Testing.
Rich Model Toolkit – An Infrastructure for Reliable Computer Systems
The Software Development Cycle
Sampling Dynamic Dataflow Analyses
Presentation transcript:

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

Description and Mission 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.

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

Technology 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 $11.5M+ funding to develop technology

Runtime Verification Approach Event Trace Highly customized for property of interest Highly customized for property of interest Build Code Execute Model Bug 1 Bug2 … Analyze 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

Products 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) 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)

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

RV-Match Code (6-int-overflow.c) 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 seamless integration with unit tests, build infrastructure, and continuous integration a platform for analyzing programs, boosting standards compliance and assurance … Conventional compilers do not detect problem RV-Match’s kcc tool precisely detects and reports error, and points to ISO C11 standard

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

RV-Predict 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 … … … … Conventional testing approaches do not detect the data-race ------------------------------------------------------- T E S T S Results : Tests run: 0, Failures: 0, Errors: 0, Skipped: 0 ... RV-Predict precisely detects the data-race, and reports the relevant stack-traces Data race on field java.util.HashMap.$state: {{{ Concurrent write in thread T83 (locks held: {Monitor@67298f15}) ----> 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) ...

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

Next Steps 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