Reasoning about Safety Critical Java
|
|
- Jeremy Young
- 7 years ago
- Views:
Transcription
1 Reasoning about Safety Critical Java Chris Marriott 27 th January 2011
2 Motivation Safety critical systems are becoming part of everyday life Failure can potentially lead to serious consequences Verification and certification for safety-critical systems [1] Formal methods are only practical with tool support [2] [1] John Knight Safety Critical Systems: Challenges and Directions. [2] Corin Gurr Supporting Formal Reasoning for Safety Critical Systems. 2
3 Motivation (2) Java has widespread use Large scale programs require high productivity Java has a large sustained community Java verification exists [3] SCJ Community already exists Industry interested [3] Bart Jacobs, Joseph Kiniry & Martijn Wariner Java Program Verification Challenges. 3
4 Java 4
5 Reasoning Techniques - Java Java PathFinder (JPF) Perfect Developer Java Modeling Language (JML) Extended Static Checking (ESC/Java) Java Applet Correctness Kit (Jack) Java Interactive Verification Env. (Jive) Krakatoa KeY System 5
6 Java PathFinder [4] Translates Java into Promela SPIN model checker Based on assertions Subset of Java Dynamic object creation Inheritance Threads Synchronisation Exceptions Thread Interrupts [4] Klaus Havelund & Thomas Pressburger Model checking Java programs using Java PathFinder. 6
7 Java PathFinder (2) Used with real-world NASA examples Difficult in large-scale systems Error reporting through print statements Is the translation optimal? Is Promela actually needed? 7
8 Perfect Developer [5,6] Produces Java, C++ or Ada code from a specification Can provide an implementation manually Proof obligations created automatically Proofs discharged automatically Over 90% success rate for a correct program [5] Gareth Carter, Rosemary Monahan & Joseph Morris Software Refinement with Perfect Developer. [6] David Crocker Perfect Developer: A tool for Object-Oriented Formal Specification and Refinement. 8
9 Perfect Developer (2) Has been applied to a government IT system [7] Verifier not strong enough Code change / additional assertions No documentation for the PD architecture Specifications for the verifier rather than the program Does not support concurrency [7] David Crocker & Judith Carlton A High Productivity Tool for Formally Verified Software Development. 9
10 JML [8,9,10] Behavioural interface specification language Code annotations Pre / post conditions Loop invariants Tools JML Checker Runtime assertion checking (jmlc & jmlunit) Extended Static Checker (ESC/Java & ESC/Java2) LOOP PVS / Isabelle [8] Gary Leavens, Albert Baker & Clyde Ruby JML: a Java Modeling Language. [9] Gary Leavens et al JML: notations and tools supporting detailed design in Java. [10] Lilian Burdy et al An overview of JML tools and applications. 10
11 Extended Static Checking for Java [11] Compile time checking Inbetween static checking and formal proofs Very successful and popular [12] Focused on development Neither sound nor complete The tool is considered successful if it finds enough errors to repay the cost of running it [11] Cormac Flanagan et al Extended Static Checking for Java. [12] Joseph Kiniry, Patrice Chalin, and Clement Hurlin Integrating static checking and interactive verification: Supporting multiple theories and provers in verification. 11
12 Other Tools Jack [13] Proof obligations for Atelier B, Simplify, and PVS Verification conditions generated per path through code Focused on JavaCARD Similar to LOOP Jive [14] JML annotations (although not necessary) Interactive theorem prover based on Hoare logic Exceptions not handled [13] Lilian Burdy & Antoine Requet JACK: Java Applet Correctness Kit. [14] Jorg Meyer & Arnd Poetzsch-Heffter An Architecture for Interactive Program Provers. 12
13 Other Tools (2) Krakatoa [15] Part of the Why software verification platform Does not prove termination of recursive calls Low level of automation for discharging proof obligations KeY [16] First order dynamic logic Programs allowed in pre/post-conditions All Java constructs allowed in the description of states (loops / recursion) Focused on JavaCARD [15] C Marché et al The Krakatoa tool for certification of Java/JavaCARD programs annotated in JML. [16] Wolfgang Ahrendt et al The key tool. 13
14 RTSJ 14
15 RTSJ [17] Subset of Java Designed for real-time systems Differences Schedulable objects & pre-emptive priority based scheduling Synchronisation & resource sharing Time values & clock Memory management Asynchronous transfer of control [17] Andy Wellings & Marisol Garcia Valls. Real-Time Java. 15
16 Reasoning Techniques - RTSJ KeY [18] JML annotations Translates to dynamic logic Static checking of memory properties Benchmarks (CD x ) [19] Java, RTSJ, SCJ Exceptions Type analysis Memory analysis Blocking analysis Loop bound analysis [18] Christian Engel. Deductive Verification of RTSJ Programs. [19] Tomas Kalibera et al Challenge Benchmarks for Verification of Real-time Programs. 16
17 SCJ 17
18 Safety Critical Java [20] A subset of RTSJ Programming based on missions and event handlers Different memory model No heap Immortal memory Scoped memory Compliance levels Level 0 Cyclic executive program Level 1 Periodic and aperiodic event handlers Level 2 Real-time no-heap threads Current work on reasoning at levels 0 and 1 [20] The Open Group Safety Critical Specification for Java 18
19 Reasoning Techniques - SCJ Static Checking of Annotations Exhaustive Testing SafeJML 19
20 Static Checking of Annotations [21] SCJ annotations Level compliance Behavioural compliance May allocate May self suspend Memory safety Define scope Runs-in scope Tool checks implementation against specification Are annotations completely necessary? [21] Daniel Tang, Ales Plsek & Jan Vitek Static Checking of Safety Critical Java Annotations. 20
21 Exhaustive Testing of SCJ [22] JPF extension (R SJ ) Level 0 and 1 support (no APEHs) Memory assignment errors (no need for annotations) Race conditions Priority ceiling emulation violations Dereferencing of null pointers Invalid library calls Array bound violations Divisions by zero Failed assertions State explosion when considering APEHs Bug-hunting tool for real-time Java [22] Tomas Kalibera et al Exhaustive Testing of Safety Critical Java. 21
22 SafeJML [23] First publically available extension to JML for real-time systems Behavioural and timing properties Focused on WCET analysis Behaviour properties not considered Currently the only specification language for SCJ [23] Thaith Haddad, Faraz Hussain & Gary Leavens The Design of SafeJML, a Specification Language for SCJ with Support for WCET Specification. 22
23 Evaluation Tool Language Functional behaviour Memory properties Timing properties JPF Java Yes Yes No Perfect Developer Java Yes Yes No ESC/Java Java Yes Yes No LOOP Java Yes Yes No JACK Java Yes Yes No Jive Java Yes Yes No Krakatoa Java Yes Yes No KeY RTSJ No Yes No SCJ Annotation Checker SCJ No No No R SJ SCJ Yes Yes No SafeJML SCJ No No Yes 23
24 Conclusion Lots of tools/techniques for Java Less for RTSJ and SCJ Currently no way to verify functional behaviour for SCJ level 1 Model checking can lead to state explosion Theorem proving is difficult to automate 24
25 Open Questions Can we apply existing tools and techniques to SCJ? Can we extend these techniques? Are SCJ annotations necessary and sufficient? 25
Unified Static and Runtime Verification of Object-Oriented Software
Unified Static and Runtime Verification of Object-Oriented Software Wolfgang Ahrendt 1, Mauricio Chimento 1, Gerardo Schneider 2, Gordon J. Pace 3 1 Chalmers University of Technology, Gothenburg, Sweden
More informationStaRVOOrS: A Tool for Combined Static and Runtime Verification of Java
StaRVOOrS: A Tool for Combined Static and Runtime Verification of Java Jesús Mauricio Chimento 1, Wolfgang Ahrendt 1, Gordon J. Pace 2, and Gerardo Schneider 3 1 Chalmers University of Technology, Sweden.
More informationDepartment of Computing Science and Mathematics University of Stirling
Department of Computing Science and Mathematics University of Stirling Push-Button Tools for Application Developers, Full Formal Verification for Component Vendors Thomas Wilson, Savi Maharaj, Robert G.
More informationRigorous Software Development CSCI-GA 3033-009
Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 5 Disclaimer. These notes are derived from notes originally developed by Joseph Kiniry, Gary Leavens, Erik Poll,
More informationAn overview of JML tools and applications
Software Tools for Technology Transfer manuscript No. (will be inserted by the editor) An overview of JML tools and applications Lilian Burdy 1, Yoonsik Cheon 2, David R. Cok 3, Michael D. Ernst 4, Joseph
More informationAntonio Kung, Trialog. HIJA technical coordinator. Scott Hansen, The Open Group. HIJA coordinator
HIJA Antonio Kung, Trialog HIJA technical coordinator Scott Hansen, The Open Group HIJA coordinator 1 Presentation Outline HIJA project ANRTS platforms Requirements for ANRTS platforms Profiles based on
More informationRigorous Software Engineering Hoare Logic and Design by Contracts
Rigorous Software Engineering Hoare Logic and Design by Contracts Simão Melo de Sousa RELEASE (UBI), LIACC (Porto) Computer Science Department University of Beira Interior, Portugal 2010-2011 S. Melo de
More informationSafe Object-Oriented Software: The Verified Design-By-Contract Paradigm
Safe Object-Oriented Software: The Verified Design-By-Contract Paradigm David Crocker Escher Technologies Ltd. Aldershot, United Kingdom dcrocker@eschertech.com Abstract. In recent years, large sectors
More informationAn overview of JML tools and applications
Electronic Notes in Theoretical Computer Science 66 No. 2 (2003) URL: http://www.elsevier.nl/locate/entcs/volume66.html An overview of JML tools and applications www.jmlspecs.org Lilian Burdy a, Yoonsik
More informationIntegrated Development of Distributed Real-Time Applications with Asynchronous Communication
Integrated Development of Distributed Real-Time Applications with Asynchronous Communication Marc Schanne International Workshop on Java Technologies for Real-time and Embedded Systems (JTRES) 26-28 September
More informationAn Overview of JML Tools and Applications
This article appears in Software Tools for Technology Transfer. The original version is available at www.springerlink.com An overview of JML tools and applications Lilian Burdy 1, Yoonsik Cheon 2, David
More informationAdvances in Programming Languages
Advances in Programming Languages Lecture 13: Certifying Correctness Ian Stark School of Informatics The University of Edinburgh Tuesday 4 November 2014 Semester 1 Week 8 http://www.inf.ed.ac.uk/teaching/courses/apl
More informationModel Checking based Software Verification
Model Checking based Software Verification 18.5-2006 Keijo Heljanko Keijo.Heljanko@tkk.fi Department of Computer Science and Engineering Helsinki University of Technology http://www.tcs.tkk.fi/~kepa/ 1/24
More informationJava in sicherheits-kritischen Systemen: Das HIJA-Profil
Java in sicherheits-kritischen Systemen: Das HIJA-Profil... Korrektheitsnachweis für (echtzeit-) Java Anwendungen Dr. Fridtjof Siebert Director of Development, aicas GmbH Java Forum, Stuttgart, 7. Juli
More informationEffectively Using JML
Effectively Using JML Software Engineering Processes incorporating Formal Specification Joseph Kiniry University College Dublin Software Engineering Processes old-school processes CRC and state-chart based
More informationThe Model Checker SPIN
The Model Checker SPIN Author: Gerard J. Holzmann Presented By: Maulik Patel Outline Introduction Structure Foundation Algorithms Memory management Example/Demo SPIN-Introduction Introduction SPIN (Simple(
More informationHow To Write A Program Verification And Programming Book
Jose Bacelar Almeida Maria Joao Frade Jorge Sousa Pinto Simao Melo de Sousa Rigorous Software Development An Introduction to Program Verification & Springer Contents 1 Introduction 1 1.1 A Formal Approach
More informationModel Checking of Software
Model Checking of Software Patrice Godefroid Bell Laboratories, Lucent Technologies SpecNCheck Page 1 August 2001 A Brief History of Model Checking Prehistory: transformational programs and theorem proving
More informationThe Course. http://www.cse.unsw.edu.au/~cs3153/
The Course http://www.cse.unsw.edu.au/~cs3153/ Lecturers Dr Peter Höfner NICTA L5 building Prof Rob van Glabbeek NICTA L5 building Dr Ralf Huuck NICTA ATP building 2 Plan/Schedule (1) Where and When Tuesday,
More informationAutomated Theorem Proving - summary of lecture 1
Automated Theorem Proving - summary of lecture 1 1 Introduction Automated Theorem Proving (ATP) deals with the development of computer programs that show that some statement is a logical consequence of
More informationStatic Analysis. Find the Bug! 15-654: Analysis of Software Artifacts. Jonathan Aldrich. disable interrupts. ERROR: returning with interrupts disabled
Static Analysis 15-654: Analysis of Software Artifacts Jonathan Aldrich 1 Find the Bug! Source: Engler et al., Checking System Rules Using System-Specific, Programmer-Written Compiler Extensions, OSDI
More information4 PSP DC : An Adaptation of the PSP to Incorporate Verified Design by Contract
4 PSP DC : An Adaptation of the PSP to Incorporate Verified Design by Contract Silvana Moreno, Universidad de la República Álvaro Tasistro, Universidad ORT Uruguay Diego Vallespir, Universidad de la República
More informationSecure Software Programming and Vulnerability Analysis
Secure Software Programming and Vulnerability Analysis Christopher Kruegel chris@auto.tuwien.ac.at http://www.auto.tuwien.ac.at/~chris Testing and Source Code Auditing Secure Software Programming 2 Overview
More informationAbstract Interpretation-based Static Analysis Tools:
Abstract Interpretation-based Static Analysis Tools: Proving the Absence of Runtime Errors and Safe Upper Bounds on the Worst-Case Execution Time and Safe Upper Bounds on the Stack Usage Christian Ferdinand
More informationPredictable response times in event-driven real-time systems
Predictable response times in event-driven real-time systems Automotive 2006 - Security and Reliability in Automotive Systems Stuttgart, October 2006. Presented by: Michael González Harbour mgh@unican.es
More informationConstruct by Contract: Construct by Contract: An Approach for Developing Reliable Software
Construct by Contract: Construct by Contract: An Approach for Developing Reliable Software Juan Jose Mendoza Santana Dissertation 2013 Erasmus Mundus MSc in Dependable Software Systems Department of Computer
More informationThomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science. Unit of Study / Textbook Correlation
Thomas Jefferson High School for Science and Technology Program of Studies Foundations of Computer Science updated 03/08/2012 Unit 1: JKarel 8 weeks http://www.fcps.edu/is/pos/documents/hs/compsci.htm
More informationReal Time Programming: Concepts
Real Time Programming: Concepts Radek Pelánek Plan at first we will study basic concepts related to real time programming then we will have a look at specific programming languages and study how they realize
More informationThe Eighth International Conference INCOSE_IL 2015. Formal Methods Security Tools in the Service of Cyber Security
The Eighth International Conference INCOSE_IL 2015 כלים ובדיקות Formal Methods Security Tools in the Service of Cyber Security Dr. Michael J. May Kinneret College on the Sea of Galilee 1 כלים ובדיקות /
More informationA Formally Verified Calculus for Full Java Card
A Formally Verified Calculus for Full Java Card Kurt Stenzel Lehrstuhl für Softwaretechnik und Programmiersprachen Institut für Informatik, Universität Augsburg 86135 Augsburg Germany email: stenzel@informatik.uni-augsburg.de
More informationVDM vs. Programming Language Extensions or their Integration
VDM vs. Programming Language Extensions or their Integration Alexander A. Koptelov and Alexander K. Petrenko Institute for System Programming of Russian Academy of Sciences (ISPRAS), B. Communisticheskaya,
More informationBoogie: A Modular Reusable Verifier for Object-Oriented Programs
Boogie: A Modular Reusable Verifier for Object-Oriented Programs M. Barnett, B.E. Chang, R. DeLine, B. Jacobs, K.R.M. Leino Lorenzo Baesso ETH Zurich Motivation Abstract Domains Modular Architecture Automatic
More informationVérification de bytecode et ses applications
Thèse de Doctorat Préparée pour obtenir le titre de Docteur en Sciences de l Université de Nice Sophia Antipolis Discipline : Informatique Préparée à l Institut National de Recherche en Informatique et
More informationValidating Java for Safety-Critical Applications
Validating Java for Safety-Critical Applications Jean-Marie Dautelle * Raytheon Company, Marlborough, MA, 01752 With the real-time extensions, Java can now be used for safety critical systems. It is therefore
More informationSequence Diagrams. Massimo Felici. Massimo Felici Sequence Diagrams c 2004 2011
Sequence Diagrams Massimo Felici What are Sequence Diagrams? Sequence Diagrams are interaction diagrams that detail how operations are carried out Interaction diagrams model important runtime interactions
More informationApplying Model Checking in Java Verification
Applying Model Checking in Java Verification Klaus Havelund 1 and Jens Ulrik Skakkebæk 2 1 NASA Ames Research Center, Recom Technologies, Moffett Field, CA, USA havelund@ptolemy.arc.nasa.gov, http://ase.arc.nasa.gov/havelund
More informationFormal Specification and Verification of Avionics Software
Formal Specification and Verification of Avionics Software June 7th, 2006 Outline 1 Introduction Software in the avionics domain Certification requirements Object-oriented technologies 2 Specification
More informationIntroduction of Virtualization Technology to Multi-Process Model Checking
Introduction of Virtualization Technology to Multi-Process Model Checking Watcharin Leungwattanakit watcharin@is.s.u-tokyo.ac.jp Masami Hagiya hagiya@is.s.u-tokyo.ac.jp Mitsuharu Yamamoto Chiba University
More informationSoftware safety - DEF-STAN 00-55
Software safety - DEF-STAN 00-55 Where safety is dependent on the safety related software (SRS) fully meeting its requirements, demonstrating safety is equivalent to demonstrating correctness with respect
More informationDEFINING CONTRACTS WITH DIFFERENT TOOLS IN SOFTWARE DEVELOPMENT
Annales Univ. Sci. Budapest., Sect. Comp. 36 (2012) 323 339 DEFINING CONTRACTS WITH DIFFERENT TOOLS IN SOFTWARE DEVELOPMENT György Orbán and László Kozma (Budapest, Hungary) Communicated by Zoltán Horváth
More informationRun-Time Monitoring of Goal-Oriented Requirements Specifications
Department of Computer Science University College London University of London Run-Time Monitoring of Goal-Oriented Requirements Specifications Andrew Ross Dingwall-Smith Submitted for the degree of Doctor
More informationJava Virtual Machine Locks
Java Virtual Machine Locks SS 2008 Synchronized Gerald SCHARITZER (e0127228) 2008-05-27 Synchronized 1 / 13 Table of Contents 1 Scope...3 1.1 Constraints...3 1.2 In Scope...3 1.3 Out of Scope...3 2 Logical
More informationHVM TP : A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems JTRES 2014
: A Time Predictable and Portable Java Virtual Machine for Hard Real-Time Embedded Systems JTRES 2014 Kasper Søe Luckow 1 Bent Thomsen 1 Stephan Erbs Korsholm 2 1 Department of Computer Science Aalborg
More informationProgramming real-time systems with C/C++ and POSIX
Programming real-time systems with C/C++ and POSIX Michael González Harbour 1. Introduction The C language [1], developed in 1972 by Dennis Ritchie at the Bell Telephone Laboratories, is the most widely
More informationTutorial: Getting Started
9 Tutorial: Getting Started INFRASTRUCTURE A MAKEFILE PLAIN HELLO WORLD APERIODIC HELLO WORLD PERIODIC HELLO WORLD WATCH THOSE REAL-TIME PRIORITIES THEY ARE SERIOUS SUMMARY Getting started with a new platform
More informationSoftware testing. Objectives
Software testing cmsc435-1 Objectives To discuss the distinctions between validation testing and defect testing To describe the principles of system and component testing To describe strategies for generating
More informationIntro DNS, security problems SPARK IRONSIDES Experimental results (previous, new) Lessons in humility Hitting the sweet spot Conclusions, future work
Intro DNS, security problems SPARK IRONSIDES Experimental results (previous, new) Lessons in humility Hitting the sweet spot Conclusions, future work DNS (internet Domain Name System) is the protocol for
More informationSmart Cards a(s) Safety Critical Systems
Smart Cards a(s) Safety Critical Systems Gemplus Labs Pierre.Paradinas Paradinas@gemplus.com Agenda Smart Card Technologies Java Card TM Smart Card a specific domain Card Life cycle Our Technical and Business
More informationStatic Program Transformations for Efficient Software Model Checking
Static Program Transformations for Efficient Software Model Checking Shobha Vasudevan Jacob Abraham The University of Texas at Austin Dependable Systems Large and complex systems Software faults are major
More informationChecking Memory Safety of Level 1 Safety-Critical Java Programs using Static-Analysis without Annotations
Checking Memory Safety of Level 1 Safety-Critical Java Programs using Static-Analysis without Annotations Chris Marriott University of York, UK Thesis Seminar - July 2014 Chris Marriott - University of
More informationCloud Computing. Up until now
Cloud Computing Lecture 11 Virtualization 2011-2012 Up until now Introduction. Definition of Cloud Computing Grid Computing Content Distribution Networks Map Reduce Cycle-Sharing 1 Process Virtual Machines
More informationProceedings of the Third International Workshop on Formal Methods for Interactive Systems (FMIS 2009)
Electronic Communications of the EASST Volume X (2009) Proceedings of the Third International Workshop on Formal Methods for Interactive Systems (FMIS 2009) Poporo: A Formal Framework for Social Networking
More informationObject-Oriented Databases Course Review
Object-Oriented Databases Course Review Exam Information Summary OODBMS Architectures 1 Exam Session examination Oral exam in English Duration of 15 minutes 2 Exam Basic Skills: Why, What, How Explain
More informationAutomated Program Behavior Analysis
Automated Program Behavior Analysis Stacy Prowell sprowell@cs.utk.edu March 2005 SQRL / SEI Motivation: Semantics Development: Most engineering designs are subjected to extensive analysis; software is
More informationSoftware Engineering Reference Framework
Software Engineering Reference Framework Michel Chaudron, Jan Friso Groote, Kees van Hee, Kees Hemerik, Lou Somers, Tom Verhoeff. Department of Mathematics and Computer Science Eindhoven University of
More informationUsing JML to protect Java code against SQL injection. Johan Janssen 0213888 jjanssen@sci.ru.nl June 26, 2007
Using JML to protect Java code against SQL injection Johan Janssen 0213888 jjanssen@sci.ru.nl June 26, 2007 1 Abstract There are a lot of potential solutions against SQL injection. The problem is that
More informationA Verification-centric Software Development Process for Java
A Verification-centric Software Development Process for Java Daniel M. Zimmerman Institute of Technology University of Washington Tacoma Tacoma, Washington 98402, USA Email: dmz@acm.org Joseph R. Kiniry
More informationJava Program Verification at Nijmegen: Developments and Perspective
Java Program Verification at Nijmegen: Developments and Perspective B.P.F. Jacobs, E. Poll Nijmegen Institute for Computing and Information Sciences/ NIII-R0318 September 2003 Nijmegen Institute for Computing
More informationData Model Bugs. Ivan Bocić and Tevfik Bultan
Data Model Bugs Ivan Bocić and Tevfik Bultan Department of Computer Science University of California, Santa Barbara, USA bo@cs.ucsb.edu bultan@cs.ucsb.edu Abstract. In today s internet-centric world, web
More informationJOURNAL OF OBJECT TECHNOLOGY
JOURNAL OF OBJECT TECHNOLOGY Online at www.jot.fm. Published by ETH Zurich, Chair of Software Engineering JOT, 2002 Vol. 1, No. 3 Special issue: TOOLS USA 2002 proceedings Evaluation of Assertion Support
More informationImplementing AUTOSAR Scheduling and Resource Management on an Embedded SMT Processor
Implementing AUTOSAR Scheduling and Resource Management on an Embedded SMT Processor Florian Kluge, Chenglong Yu, Jörg Mische, Sascha Uhrig, Theo Ungerer University of Augsburg 12th International Workshop
More informationMPI-Checker Static Analysis for MPI
MPI-Checker Static Analysis for MPI Alexander Droste, Michael Kuhn, Thomas Ludwig November 15, 2015 Motivation 2 / 39 Why is runtime analysis in HPC challenging? Large amount of resources are used State
More informationIntroduction to Static Analysis for Assurance
Introduction to Static Analysis for Assurance John Rushby Computer Science Laboratory SRI International Menlo Park CA USA John Rushby Static Analysis for Assurance: 1 Overview What is static analysis?
More informationRUNTIME software monitoring has been used for profiling,
IEEE TRANSACTIONS ON SOFTWARE ENGINEERING, VOL. 30, NO. 12, DECEMBER 2004 859 A Taxonomy and Catalog of Runtime Software-Fault Monitoring Tools Nelly Delgado, Student Member, IEEE, Ann Quiroz Gates, Member,
More informationCSCI E 98: Managed Environments for the Execution of Programs
CSCI E 98: Managed Environments for the Execution of Programs Draft Syllabus Instructor Phil McGachey, PhD Class Time: Mondays beginning Sept. 8, 5:30-7:30 pm Location: 1 Story Street, Room 304. Office
More informationLecture 9 verifying temporal logic
Basics of advanced software systems Lecture 9 verifying temporal logic formulae with SPIN 21/01/2013 1 Outline for today 1. Introduction: motivations for formal methods, use in industry 2. Developing models
More informationUnit-testing with JML
Métodos Formais em Engenharia de Software Unit-testing with JML José Carlos Bacelar Almeida Departamento de Informática Universidade do Minho MI/MEI 2008/2009 1 Talk Outline Unit Testing - software testing
More informationFormal Verification of Software
Formal Verification of Software Sabine Broda Department of Computer Science/FCUP 12 de Novembro de 2014 Sabine Broda (DCC-FCUP) Formal Verification of Software 12 de Novembro de 2014 1 / 26 Formal Verification
More informationStatic Checking of C Programs for Vulnerabilities. Aaron Brown
Static Checking of C Programs for Vulnerabilities Aaron Brown Problems 300% increase in reported software vulnerabilities SetUID programs Run with full access to the system Required to gain access to certain
More informationIntroducing Formal Methods. Software Engineering and Formal Methods
Introducing Formal Methods Formal Methods for Software Specification and Analysis: An Overview 1 Software Engineering and Formal Methods Every Software engineering methodology is based on a recommended
More informationLinking CSP-OZ with UML and Java: A Case Study
Linking CSP-OZ with UML and Java: A Case Study Michael Möller, Ernst-Rüdiger Olderog, Holger Rasch, and Heike Wehrheim Department of Computing Science University of Oldenburg 26111 Oldenburg, Germany {michael.moeller,olderog,rasch,wehrheim}@informatik.uni-oldenburg.de
More informationUnitCheck: Unit Testing and Model Checking Combined
UnitCheck: Unit Testing and Model Checking Combined Michal Kebrt and Ondřej Šerý Charles University in Prague Malostranské náměstí 25 118 00 Prague 1 Czech Republic michal.kebrt@gmail.com, ondrej.sery@dsrg.mff.cuni.cz
More informationRealtime Java. Christoph Neijenhuis
Realtime Java Christoph Neijenhuis Agenda 2 RT Problems in Java Solutions: RTSJ and others Guiding Principles Memory Management Threads Asynchronous Event Handling Scheduling Time Synchronization Implementations
More informationDriving force. What future software needs. Potential research topics
Improving Software Robustness and Efficiency Driving force Processor core clock speed reach practical limit ~4GHz (power issue) Percentage of sustainable # of active transistors decrease; Increase in #
More informationA Case Study on Verification of a Cloud Hypervisor by Proof and Structural Testing
A Case Study on Verification of a Cloud Hypervisor by Proof and Structural Testing Nikolai Kosmatov 1, Matthieu Lemerre 1, and Céline Alec 2 1 CEA, LIST, Software Reliability Laboratory, PC 174, 91191
More informationA Static Analyzer for Large Safety-Critical Software. Considered Programs and Semantics. Automatic Program Verification by Abstract Interpretation
PLDI 03 A Static Analyzer for Large Safety-Critical Software B. Blanchet, P. Cousot, R. Cousot, J. Feret L. Mauborgne, A. Miné, D. Monniaux,. Rival CNRS École normale supérieure École polytechnique Paris
More informationhttps://runtimeverification.com Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois
https://runtimeverification.com Grigore Rosu Founder, President and CEO Professor of Computer Science, University of Illinois Runtime Verification, Inc. (RV): startup company aimed at bringing the best
More informationRigorous Software Development CSCI-GA 3033-009
Rigorous Software Development CSCI-GA 3033-009 Instructor: Thomas Wies Spring 2013 Lecture 1 Important Facts Office Hours: Thu 3-4pm, or by appointment Office: CIWW 407 Course web site: http://cs.nyu.edu/wies/teaching/rsd-13
More informationJ-Sim: An Integrated Environment for Simulation and Model Checking of Network Protocols
J-Sim: An Integrated Environment for Simulation and Model Checking of Network Protocols Ahmed Sobeih, Mahesh Viswanathan, Darko Marinov and Jennifer C. Hou Department of Computer Science University of
More informationMAC A Run Time monitoring and checking tool
MAC A Run Time monitoring and checking tool Gursharan Singh Mohd. Salman Mehmood Agenda Motivation Software Development Steps Methods New Paradigm (Runtime Verification) Materializing Runtime Verification
More informationIntroduction to Formal Methods. Các Phương Pháp Hình Thức Cho Phát Triển Phần Mềm
Introduction to Formal Methods Các Phương Pháp Hình Thức Cho Phát Triển Phần Mềm Outline Introduction Formal Specification Formal Verification Model Checking Theorem Proving Introduction Good papers to
More informationStack Allocation. Run-Time Data Structures. Static Structures
Run-Time Data Structures Stack Allocation Static Structures For static structures, a fixed address is used throughout execution. This is the oldest and simplest memory organization. In current compilers,
More informationRegression Verification: Status Report
Regression Verification: Status Report Presentation by Dennis Felsing within the Projektgruppe Formale Methoden der Softwareentwicklung 2013-12-11 1/22 Introduction How to prevent regressions in software
More informationThe ProB Animator and Model Checker for B
The ProB Animator and Model Checker for B A Tool Description Michael Leuschel and Michael Butler Department of Electronics and Computer Science University of Southampton Highfield, Southampton, SO17 1BJ,
More informationTowards practical reactive security audit using extended static checkers 1
Towards practical reactive security audit using extended static checkers 1 Julien Vanegue 1 Shuvendu K. Lahiri 2 1 Bloomberg LP, New York 2 Microsoft Research, Redmond May 20, 2013 1 The work was conducted
More informationSoftware Certification Coding, Code, and Coders
Software Certification Coding, Code, and Coders Klaus Havelund and Gerard J. Holzmann Laboratory for Reliable Software (LaRS) Jet Propulsion Laboratory, California Institute of Technology 4800 Oak Grove
More informationApplications of formal verification for secure Cloud environments at CEA LIST
Applications of formal verification for secure Cloud environments at CEA LIST Nikolai Kosmatov joint work with A.Blanchard, F.Bobot, M.Lemerre,... SEC2, Lille, June 30 th, 2015 N. Kosmatov (CEA LIST) Formal
More informationUniversity of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011
University of Dayton Department of Computer Science Undergraduate Programs Assessment Plan DRAFT September 14, 2011 Department Mission The Department of Computer Science in the College of Arts and Sciences
More informationInteractive Software Verification
Interactive Software Verification Spring Term 2013 Holger Gast gasth@in.tum.de 25.6.2013 1 H.Gast gasth@in.tum.de Interactive Software Verification, 25.6.2013 Today Manipulating lists on the heap Ghost
More information2 Introduction to Java. Introduction to Programming 1 1
2 Introduction to Java Introduction to Programming 1 1 Objectives At the end of the lesson, the student should be able to: Describe the features of Java technology such as the Java virtual machine, garbage
More informationStatic vs. Dynamic Testing How Static Analysis and Run-Time Testing Can Work Together. Outline
Static vs. Dynamic Testing How Static Analysis and Run-Time Testing Can Work Together S. Tucker Taft and Brian Lesuer SQGNE December 2006 Outline The Challenges Facing Software Testing A Software Testing
More informationThe FDA Forensics Lab, New Tools and Capabilities
U. S. Department of Health and Human Services The FDA Forensics Lab, New Tools and Capabilities Symposium on Static Code Analysis and Complex Medical Devices University of Minnesota July 23, 2009 Static
More informationModel Checking: An Introduction
Announcements Model Checking: An Introduction Meeting 2 Office hours M 1:30pm-2:30pm W 5:30pm-6:30pm (after class) and by appointment ECOT 621 Moodle problems? Fundamentals of Programming Languages CSCI
More informationPROGRAM LOGICS FOR CERTIFIED COMPILERS
PROGRAM LOGICS FOR CERTIFIED COMPILERS Separation logic is the twenty-first-century variant of Hoare logic that permits verification of pointer-manipulating programs. This book covers practical and theoretical
More informationTr ends in Software Verification
Tr ends in Software Verification Gerard J. Holzmann JPL Laboratory for Reliable Software California Institute of Technology 4800 Oak Grove Drive Pasadena, CA 91006 gerard.j.holzmann@jpl.nasa.gov Abstract.
More informationKnow or Go Practical Quest for Reliable Software
Know or Go Practical Quest for Reliable Software Dr.-Ing. Jörg Barrho Dr.-Ing. Ulrich Wünsche AVACS Project meeting 25.09.2014 2014 Rolls-Royce Power Systems AG The information in this document is the
More informationProgramming Languages
Programming Languages Qing Yi Course web site: www.cs.utsa.edu/~qingyi/cs3723 cs3723 1 A little about myself Qing Yi Ph.D. Rice University, USA. Assistant Professor, Department of Computer Science Office:
More informationMutual Exclusion using Monitors
Mutual Exclusion using Monitors Some programming languages, such as Concurrent Pascal, Modula-2 and Java provide mutual exclusion facilities called monitors. They are similar to modules in languages that
More informationLecture 1: Introduction
Programming Languages Lecture 1: Introduction Benjamin J. Keller Department of Computer Science, Virginia Tech Programming Languages Lecture 1 Introduction 2 Lecture Outline Preview History of Programming
More informationEMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS
EMBEDDED SOFTWARE DEVELOPMENT: COMPONENTS AND CONTRACTS David URTING, Stefan VAN BAELEN, Tom HOLVOET and Yolande BERBERS {David.Urting, Stefan.VanBaelen, Tom.Holvoet, Yolande.Berbers}@cs.kuleuven.ac.be
More information