VLDB 2026 Research / reviewers in the wild / expert
Klaus Havelund
dblp:84/3029
· DBLP profile ↗
97ranked-venue papers
42as first author
18since 2021 · last 2025
0000-0001-7079-0472ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 75 · 33 first-author · 15 since 2021Theory of computation · 19 · 8 first-author · 3 since 2021Systems, architecture and hardware · 3Applied, interdisciplinary, general and emerging computing · 3 · 2 first-authorArtificial intelligence and machine learning · 2
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | Fuzz Testing with Temporal Constraints
Klaus Havelund, Tracy Clark, Vivek Reddy |
ICTAC | 1 |
| 2025 | The Power of Reframing: Using LLMs in Synthesizing RV Monitors
Itay Cohen 0001, Klaus Havelund, Doron A. Peled, Yoav Goldberg |
RV | 2 |
| 2025 | DSLs for Runtime Verification
Klaus Havelund, Moran Omer, Doron A. Peled |
RV | 1 |
| 2025 | Does Every Computer Scientist Need to Know Formal Methods?abstractWe focus on the integration of Formal Methods as mandatory theme in any Computer Science University curriculum. In particular, when considering the ACM Curriculum for Computer Science, the inclusion of Formal Methods as a mandatory Knowledge Area needs arguing for why and how does every computer science graduate benefit from such knowledge. We do not agree with the sentence “While there is a belief that formal methods are important and they are growing in importance, we cannot state that every computer science graduate will need to use formal methods in their career.” We argue that formal methods are and have to be an integral part of every computer science curriculum. Just as not all graduates will need to know how to work with databases either, it is still important for students to have a basic understanding of how data is stored and managed efficiently. The same way, students have to understand why and how formal methods work, what their formal background is, and how they are justified. No engineer should be ignorant of the foundations of their subject and the formal methods based on these. In this article, we aim at highlighting why every computer scientist needs to be familiar with formal methods. We argue that education in formal methods plays a key role by shaping students' programming mindset, fostering an appreciation for underlying principles, and encouraging the practice of thoughtful program design and justification, rather than simply writing programs without reflection and deeper understanding. Since integrating formal methods into the computer science curriculum is not a straightforward process, we explore the additional question: what are the tradeoffs between one dedicated knowledge area of formal methods in a computer science curriculum versus having formal methods scattered across all knowledge areas? Solving problems while designing software and software-intensive systems demands an understanding of what is required, followed by a specification and formalizing a solution in a programming language. How to do this systematically and correctly on solid grounds is exactly supported by formal methods. Manfred Broy, Achim D. Brucker, Alessandro Fantechi, Mario Gleirscher, Klaus Havelund, Markus Alexander Kuppe, Alexandra Mendes, André Platzer, Jan Oliver Ringert, Allison Sullivan |
Formal Aspects Comput. | 5 |
| 2024 | TP-DejaVu: Combining Operational and Declarative Runtime Verification
Klaus Havelund, Panagiotis Katsaros, Moran Omer, Doron A. Peled, Anastasios Temperekidis |
VMCAI (2) | 1 |
| 2024 | Programming event monitors
Klaus Havelund, Gerard J. Holzmann |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2023 | Monitorability for Runtime Verification
Klaus Havelund, Doron A. Peled |
RV | 1 |
| 2023 | Concurrent runtime verification of data rich events
Nastaran Shafiei, Klaus Havelund, Peter C. Mehlitz |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2022 | Runtime Verification as Documentation
Dennis Dams, Klaus Havelund, Sean Kauffman |
ISoLA (2) | 2 |
| 2022 | Specification-Based Monitoring in C++
Klaus Havelund |
ISoLA (1) | 1 |
| 2022 | Discussing the Future Role of Documentation in the Context of Modern Software Engineering (ISoLA 2022 Track Introduction)
Klaus Havelund, Tim Tegeler, Steven Smyth, Bernhard Steffen |
ISoLA (2) | 1 |
| 2022 | A Python Library for Trace Analysis
Dennis Dams, Klaus Havelund, Sean Kauffman |
RV | 2 |
| 2022 | On monitoring linear temporal properties
Klaus Havelund, Doron A. Peled |
Formal Methods Syst. Des. | 1 |
| 2021 | Integrated Modeling and Development of Component-Based Embedded Software in Scala
Klaus Havelund, Robert Bocchino |
ISoLA | 1 |
| 2021 | Programming - What is Next?
Klaus Havelund, Bernhard Steffen |
ISoLA | 1 |
| 2021 | Monitoring First-Order Interval Logic
Klaus Havelund, Moran Omer, Doron A. Peled |
SEFM | 1 |
| 2021 | An extension of first-order LTL with rules with application to runtime verification
Klaus Havelund, Doron A. Peled |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2021 | What can we monitor over unreliable channels?
Sean Kauffman, Klaus Havelund, Sebastian Fischmeister |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2020 | First-Order Timed Runtime Verification Using BDDs
Klaus Havelund, Doron A. Peled |
ATVA | 1 |
| 2020 | A Flight Rule Checker for the LADEE Lunar Spacecraft
Elif Kürklü, Klaus Havelund |
ICTAC | 2 |
| 2020 | BDDs for Representing Data in Runtime Verification
Klaus Havelund, Doron A. Peled |
RV | 1 |
| 2020 | Actor-Based Runtime Verification with MESA
Nastaran Shafiei, Klaus Havelund, Peter C. Mehlitz |
RV | 2 |
| 2020 | First-order temporal logic monitoring with BDDs
Klaus Havelund, Doron A. Peled, Dogan Ulus |
Formal Methods Syst. Des. | 1 |
| 2019 | An Extension of LTL with Rules and Its Application to Runtime Verification
Klaus Havelund, Doron A. Peled |
RV | 1 |
| 2019 | Monitorability over Unreliable Channels
Sean Kauffman, Klaus Havelund, Sebastian Fischmeister |
RV | 2 |
| 2019 | First international Competition on Runtime Verification: rules, benchmarks, tools, and final results of CRV 2014abstractThe first international Competition on Runtime Verification (CRV) was held in September 2014, in Toronto, Canada, as a satellite event of the 14th international conference on Runtime Verification (RV’14). The event was organized in three tracks: (1) offline monitoring, (2) online monitoring of C programs, and (3) online monitoring of Java programs. In this paper, we report on the phases and rules, a description of the participating teams and their submitted benchmark, the (full) results, as well as the lessons learned from the competition. Ezio Bartocci, Yliès Falcone, Borzoo Bonakdarpour, Christian Colombo 0001, Normann Decker, Klaus Havelund, Yogi Joshi, Felix Klaedtke, Reed Milewicz, Giles Reger, Grigore Rosu, Julien Signoles, Daniel Thoma, Eugen Zalinescu |
Int. J. Softw. Tools Technol. Transf. | 6 |
| 2019 | Introduction to Selected Papers from SPIN 2017
Hakan Erdogmus, Klaus Havelund |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2018 | Towards a Unified View of Modeling and Programming (ISoLA 2018 Track Introduction)
Manfred Broy, Klaus Havelund, Rahul Kumar 0001, Bernhard Steffen |
ISoLA (1) | 2 |
| 2018 | Modeling with Scala
Klaus Havelund, Rajeev Joshi |
ISoLA (1) | 1 |
| 2018 | BDDs on the Run
Klaus Havelund, Doron A. Peled |
ISoLA (4) | 1 |
| 2018 | Runtime Verification: From Propositional to First-Order Temporal Logic
Klaus Havelund, Doron A. Peled |
RV | 1 |
| 2018 | Runtime Verification - 17 Years Later
Klaus Havelund, Grigore Rosu |
RV | 1 |
| 2018 | Efficient Runtime Verification of First-Order Temporal Properties
Klaus Havelund, Doron A. Peled |
SPIN | 1 |
| 2018 | Inferring event stream abstractions
Sean Kauffman, Klaus Havelund, Rajeev Joshi, Sebastian Fischmeister |
Formal Methods Syst. Des. | 2 |
| 2017 | First order temporal logic monitoring with BDDsabstractRuntime verification is aimed at analyzing execution traces stemming from a running program or system. The traditional purpose is to detect the lack of conformance with respect to a formal specification. Numerous efforts in the field have focused on monitoring so-called parametric specifications, where events carry data, and formulas can refer to such. Since a monitor for such specifications has to store observed data, the challenge is to have an efficient representation and manipulation of Boolean operators, quantification, and lookup of data. The fundamental problem is that the actual values of the data are not necessarily bounded or provided in advance. In this work we explore the use of Binary Decision Diagrams (BDDs) for representing observed data. Our experiments show a substantial improvement in performance compared to related work. Klaus Havelund, Doron A. Peled, Dogan Ulus |
FMCAD | 1 |
| 2016 | Towards a Unified View of Modeling and Programming
Manfred Broy, Klaus Havelund, Rahul Kumar 0001 |
ISoLA (2) | 2 |
| 2016 | Towards a Unified View of Modeling and Programming (Track Summary)
Manfred Broy, Klaus Havelund, Rahul Kumar 0001, Bernhard Steffen |
ISoLA (2) | 2 |
| 2016 | Static and Runtime Verification, Competitors or Friends? (Track Summary)
Dilian Gurov, Klaus Havelund, Marieke Huisman, Rosemary Monahan |
ISoLA (1) | 2 |
| 2016 | Towards a Logic for Inferring Properties of Event Streams
Sean Kauffman, Rajeev Joshi, Klaus Havelund |
ISoLA (2) | 3 |
| 2016 | What Is a Trace? A Runtime Verification Perspective
Giles Reger, Klaus Havelund |
ISoLA (2) | 2 |
| 2016 | K: A Wide Spectrum Language for Modeling, Programming and AnalysisabstractThe formal methods community has over the years proposed various formally founded specification languages based on predicate logic and set theory, typically with textual notations. At the same time the model-based engineering community has proposed often less formally founded languages such as UML and SysML, typically with graphical notations. Although the graphical notations have become highly popular in industry, we argue that textual notations can be attractive in many situations. We report on an effort to provide a textual notation for SysML, realized in a language named K. K supports classes, multiple inheritance, predicate logic and set theory. K contains programming constructs, and can thus be considered as a wide-spectrum modeling and programming language. We further explain the translation of a subset of this language to the input language of the SMT-LIB standard, and the application of Z3 for analysis of the generated SMT-LIB formulas. The entire effort is part of a larger effort to develop a general purpose SysML development framework for designing systems, in support of NASA's proposed 2022 mission to Jupiter's moon Europa. Klaus Havelund, Rahul Kumar 0001, Chris Delp, Bradley Clement |
MODELSWARD | 1 |
| 2016 | nfer - A Notation and System for Inferring Event Stream Abstractions
Sean Kauffman, Klaus Havelund, Rajeev Joshi |
RV | 2 |
| 2016 | Some recent advances in automated analysis
Erika Ábrahám, Klaus Havelund |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2015 | Domain-Specific Languages with Scala
Cyrille Artho, Klaus Havelund, Rahul Kumar 0001, Yoriyuki Yamagata |
ICFEM | 2 |
| 2015 | Rule-based runtime verification revisited
Klaus Havelund |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2014 | 40 Years of Formal Methods - Some Obstacles and Some Possibilities?
Dines Bjørner, Klaus Havelund |
FM | 2 |
| 2014 | Comprehension of Spacecraft Telemetry Using Hierarchical Specifications of Behavior
Klaus Havelund, Rajeev Joshi |
ICFEM | 1 |
| 2014 | Monitoring with Data Automata
Klaus Havelund |
ISoLA (2) | 1 |
| 2014 | Data Automata in ScalaabstractThe field of runtime verification has during the last decade seen a multitude of systems for monitoring event sequences (traces) emitted by a running system. The objective is to ensure correctness of a system by checking its execution traces against formal specifications representing requirements. A special challenge is data parameterized events, where monitors have to keep track of the combination of control states as well as data constraints, relating events and the data they carry across time points. This poses a challenge wrt. efficiency of monitors, as well as expressiveness of logics. Data automata is a form of automata where states are parameterized with data, supporting monitoring of data parameterized events. We describe the full details of a very simple API in the Scala programming language, an internal DSL (Domain-Specific Language), implementing data automata. The small implementation suggests a design pattern. Data automata allow transition conditions to refer to other states than the source state, and allow target states of transitions to be inlined, offering a temporal logic flavored notation. An embedding of a logic in a high-level language like Scala in addition allows monitors to be programmed using all of Scala's language constructs, offering the full flexibility of a programming language. The framework is demonstrated on an XML processing scenario previously addressed in related work. Klaus Havelund |
TASE | 1 |
| 2014 | Verification and validation meet planning and scheduling
Saddek Bensalem, Klaus Havelund, Andrea Orlandini |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2013 | A Scala DSL for Rete-Based Runtime Verification
Klaus Havelund |
RV | 1 |
| 2012 | Quantified Event Automata: Towards Expressive and Efficient Runtime Monitors
Howard Barringer, Yliès Falcone, Klaus Havelund, Giles Reger, David E. Rydeheard |
FM | 3 |
| 2012 | What Does AI Have to Do with RV? - (Extended Abstract)
Klaus Havelund |
ISoLA (1) | 1 |
| 2012 | Requirements-Driven Log Analysis (Extended Abstract)
Klaus Havelund |
ICTSS | 1 |
| 2012 | InterAspect: aspect-oriented instrumentation with GCC
Justin Seyster, Ketan Dixit, Xiaowan Huang, Radu Grosu, Klaus Havelund, Scott A. Smolka, Scott D. Stoller, Erez Zadok |
Formal Methods Syst. Des. | 5 |
| 2012 | Introduction to the special section on runtime verification
Oleg Sokolsky, Klaus Havelund, Insup Lee 0001 |
Int. J. Softw. Tools Technol. Transf. | 2 |
| 2011 | Software certification: coding, code, and codersabstractWe describe a certification approach for software development that has been adopted at our organization. JPL develops robotic spacecraft for the exploration of the solar system. The flight software that controls these spacecraft is considered to be mission critical. We argue that the goal of a software certification process cannot be the development of "perfect" software, i.e., software that can be formally proven to be correct under all imaginable and unimaginable circumstances. More realistically, the goal is to guarantee a software development process that is conducted by knowledgeable engineers, who follow generally accepted procedures to control known risks, while meeting agreed upon standards of workmanship. We target three specific issues that must be addressed in such a certification procedure: the coding process, the code that is developed, and the skills of the coders. The coding process is driven by standards. The code is mechanically checked against the standards with the help of state-of-the-art static source code analyzers. The coders, finally, are certified in on-site training courses that include formal exams. Klaus Havelund, Gerard J. Holzmann |
EMSOFT | 1 |
| 2011 | TraceContract: A Scala DSL for Trace Analysis
Howard Barringer, Klaus Havelund |
FM | 2 |
| 2011 | Internal versus External DSLs for Trace Analysis - (Extended Abstract)
Howard Barringer, Klaus Havelund |
RV | 2 |
| 2011 | Runtime Verification with State Estimation
Scott D. Stoller, Ezio Bartocci, Justin Seyster, Radu Grosu, Klaus Havelund, Scott A. Smolka, Erez Zadok |
RV | 5 |
| 2010 | From scripts to specifications: the evolution of a flight software testing effortabstractThis paper describes the evolution of a software testing effort during a critical period for the flagship Mars Science Laboratory rover project at the Jet Propulsion Laboratory. Formal specification for post-run analysis of log files, using a domain-specific language, LogScope, replaced scripted real-time analysis. Log analysis addresses the key problems of on-the-fly approaches and cleanly separates specification and execution. Mining the test repository suggested the inadequacy of the scripted approach, and encouraged a partly engineer-driven development. LogScope development should hold insights for others facing the tight deadlines and reactionary nature of testing for critical projects. LogScope received a JPL Mariner Award for "improving productivity and quality of the MSL Flight Software" and has been discussed as an approach for other flight missions. We note LogScope features that most contributed to ease of adoption and effectiveness. LogScope is general and can be applied to any software producing logs. Alex Groce, Klaus Havelund, Margaret H. Smith |
ICSE (2) | 2 |
| 2010 | Aspect-Oriented Instrumentation with GCC
Justin Seyster, Ketan Dixit, Xiaowan Huang, Radu Grosu, Klaus Havelund, Scott A. Smolka, Scott D. Stoller, Erez Zadok |
RV | 5 |
| 2010 | Rule Systems for Run-time Monitoring: from Eagle to RuleRabstractIn Barringer et al. (2004,Vol. 2937, LNCS), Eagle was introduced as a general purpose rule-based temporal logic for specifying run-time monitors. A novel interpretative trace-checking scheme via stepwise transformation of an Eagle monitoring formula was defined and implemented. However, even though Eagle presents an elegant formalism for the expression of complex trace properties, Eagle's interpretation scheme is complex and appears difficult to implement efficiently. In this article, we introduce RuleR, a primitive conditional rule-based system, which has a simple and easily implemented algorithm for effective run-time checking, and into which one can compile a wide range of temporal logics and other specification formalisms used for run-time verification. As a formal demonstration, we provide a translation scheme for linear-time propositional temporal logic with a proof of translation correctness. We then introduce a parameterized version of RuleR, in which rule names may have rule-expression or data parameters, which then coincides with the same expressivity as Eagle with data arguments. RuleR with just rule-expression parameters extend the expressiveness of RuleR strictly beyond the class of context-free languages. For the language classes expressible in propositional RuleR, the addition of rule-expression and data parameters enables more compact translations. Finally, we outline a few simple syntactic extensions of ‘core’ RuleR that can lead to further conciseness of specification but still enabling easy and efficient implementation. Howard Barringer, David E. Rydeheard, Klaus Havelund |
J. Log. Comput. | 3 |
| 2010 | Aspect-Oriented Race Detection in JavaabstractIn the past, researchers have developed specialized programs to aid programmers in detecting concurrent programming errors such as deadlocks, livelocks, starvation, and data races. In this work, we propose a language extension to the aspect-oriented programming language AspectJ, in the form of three new pointcuts, lock(), unlock(), and maybeShared(). These pointcuts allow programmers to monitor program events where locks are granted or handed back, and where values are accessed that may be shared among multiple Java threads. We decide thread locality using a static thread-local-objects analysis developed by others. Using the three new primitive pointcuts, researchers can directly implement efficient monitoring algorithms to detect concurrent-programming errors online. As an example, we describe a new algorithm which we call RACER, an adaption of the well-known ERASER algorithm to the memory model of Java. We implemented the new pointcuts as an extension to the AspectBench Compiler, implemented the RACER algorithm using this language extension, and then applied the algorithm to the NASA K9 Rover Executive and two smaller programs. Our experiments demonstrate that our implementation is effective in finding subtle data races. In the Rover Executive, RACER finds 12 data races, with no false warnings. Only one of these races was previously known. Eric Bodden, Klaus Havelund |
IEEE Trans. Software Eng. | 2 |
| 2009 | Rule Systems for Runtime Verification: A Short Tutorial
Howard Barringer, Klaus Havelund, David E. Rydeheard, Alex Groce |
RV | 2 |
| 2008 | Racer: effective race detection using aspectjabstractProgramming errors occur frequently in large software systems, and even more so if these systems are concurrent. In the past researchers have developed specialized programs to aid programmers detecting concurrent programming errors such as deadlocks, livelocks, starvation and data races. Eric Bodden, Klaus Havelund |
ISSTA | 2 |
| 2008 | Requirements Capture with RCATabstractNASA spends millions designing and building spacecraft for its missions. The dependence on software is growing as spacecraft become more complex. With the increasing dependence on software comes the risk that bugs can lead to the loss of a mission. At NASApsilas Jet Propulsion Laboratory new tools are being developed to address this problem. Logic model checking and runtime verification can increase the confidence in a design or an implementation. A barrier to the application of such property-based checks is the difficulty in mastering the requirements notations that are currently available. For these techniques to be easily usable, a simple but expressive requirement specification method is essential. This paper describes a requirements capture notation and supporting tool that graphically captures formal requirements and converts them into automata that can be used in model checking and for runtime verification. Margaret H. Smith, Klaus Havelund |
RE | 2 |
| 2007 | Visualization of Concurrent Program ExecutionsabstractVarious program analysis techniques are efficient at discovering failures and properties. However, it is often difficult to evaluate results, such as program traces. This calls for abstraction and visualization tools. We propose an approach based on UML sequence diagrams, addressing shortcomings of such diagrams for concurrency. The resulting visualization is expressive and provides all the necessary information at a glance. Cyrille Artho, Klaus Havelund, Shinichi Honiden |
COMPSAC (2) | 2 |
| 2007 | Rule Systems for Run-Time Monitoring: From Eagleto RuleR
Howard Barringer, David E. Rydeheard, Klaus Havelund |
RV | 3 |
| 2007 | Towards a framework and a benchmark for testing tools for multi-threaded programsabstractAbstract Multi‐threaded code is becoming very common, both on the server side, and very recently for personal computers as well. Consequently, looking for intermittent bugs is a problem that is receiving more and more attention. As there is no silver bullet, research focuses on a variety of partial solutions. We outline a road map for combining the research within the different disciplines of testing multi‐threaded programs and for evaluating the quality of this research. We have three main goals. First, to create a benchmark that can be used to evaluate different solutions. Second, to create a framework with open application programming interfaces that enables the combination of techniques in the multi‐threading domain. Third, to create a focus for the research in this area around which a community of people who try to solve similar problems with different techniques can congregate. We have started creating such a benchmark and describe the lessons learned in the process. The framework will enable technology developers, for example, developers of race detection algorithms, to concentrate on their components and use other ready made components (e.g. an instrumentor) to create a testing solution. Copyright © 2006 John Wiley & Sons, Ltd. Yaniv Eytani, Klaus Havelund, Scott D. Stoller, Shmuel Ur |
Concurr. Comput. Pract. Exp. | 2 |
| 2005 | Rewriting-Based Techniques for Runtime Verification
Grigore Rosu, Klaus Havelund |
Autom. Softw. Eng. | 2 |
| 2005 | Foreword
Klaus Havelund, Grigore Rosu |
Formal Methods Syst. Des. | 1 |
| 2005 | Combining test case generation and runtime verification
Cyrille Artho, Howard Barringer, Allen Goldberg, Klaus Havelund, Sarfraz Khurshid, Michael R. Lowry, Corina Pasareanu, Grigore Rosu, Koushik Sen, Willem Visser, Richard Washington |
Theor. Comput. Sci. | 4 |
| 2004 | Using Block-Local Atomicity to Detect Stale-Value Concurrency Errors
Cyrille Artho, Klaus Havelund, Armin Biere |
ATVA | 2 |
| 2004 | Program Monitoring with LTL in EAGLEabstractSummary form only given. We briefly present a rule-based framework, called EAGLE, shown to be capable of defining and implementing finite trace monitoring logics, including future and past time temporal logic, extended regular expressions, real-time and metric temporal logics (MTL), interval logics, forms of quantified temporal logics, and so on. In this paper we focus on a linear temporal logic (LTL) specialisation of EAGLE. For an initial formula of size m, we establish upper bounds of O(m/sup 2/2/sup m/logm) and O(m/sup 4/2/sup 2m/log/sup 2/m) for the space and time complexity, respectively, of single step evaluation over an input trace. EAGLE has been successfully used, in both LTL and metric LTL forms, to test a real-time controller of an experimental NASA planetary rover. Howard Barringer, Allen Goldberg, Klaus Havelund, Koushik Sen |
IPDPS | 3 |
| 2004 | Applying Jlint to Space Exploration Software
Cyrille Artho, Klaus Havelund |
VMCAI | 2 |
| 2004 | Rule-Based Runtime Verification
Howard Barringer, Allen Goldberg, Klaus Havelund, Koushik Sen |
VMCAI | 3 |
| 2004 | Experimental Evaluation of Verification and Validation Tools on Martian Rover Software
Guillaume Brat, Doron Drusinsky, Dimitra Giannakopoulou, Allen Goldberg, Klaus Havelund, Michael R. Lowry, Corina Pasareanu, Arnaud Venet, Willem Visser, Richard Washington |
Formal Methods Syst. Des. | 5 |
| 2004 | Foreword - Selected Papers from the First International Workshop on Runtime Verification held in Paris, July 2001 (RV'01)
Klaus Havelund, Grigore Rosu |
Formal Methods Syst. Des. | 1 |
| 2004 | An Overview of the Runtime Verification Tool Java PathExplorer
Klaus Havelund, Grigore Rosu |
Formal Methods Syst. Des. | 1 |
| 2004 | Efficient monitoring of safety properties
Klaus Havelund, Grigore Rosu |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2003 | Model Checking Programs
Willem Visser, Klaus Havelund, Guillaume Brat, Seungjoon Park, Flavio Lerda |
Autom. Softw. Eng. | 2 |
| 2003 | High-level data racesabstractAbstract Data races are a common problem in concurrent and multi‐threaded programming. Experience shows that the classical notion of a data race is not powerful enough to capture certain types of inconsistencies occurring in practice. This paper investigates data races on a higher abstraction layer. This enables detection of inconsistent uses of shared variables, even if no classical race condition occurs. For example, a data structure representing a coordinate pair may have to be treated atomically. By lifting the meaning of a data race to a higher level, such problems can now be covered. The paper defines the concepts ‘view’ and ‘view consistency’ to give a notation for this novel kind of property. It describes what kinds of errors can be detected with this new definition, and where its limitations are. It also gives a formal guideline for using data structures in a multi‐threaded environment. © US Government copyright Cyrille Artho, Klaus Havelund, Armin Biere |
Softw. Test. Verification Reliab. | 2 |
| 2002 | Synthesizing Monitors for Safety Properties
Klaus Havelund, Grigore Rosu |
TACAS | 1 |
| 2002 | Program model checking as a new trend
Klaus Havelund, Willem Visser |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 2001 | Automata-Based Verification of Temporal Properties on Running ProgramsabstractThis paper presents an approach to checking a running program against Linear Temporal Logic (LTL) specifications. LTL is a widely used logic for expressing properties of programs viewed as sets of executions. Our approach consists of translating LTL formulae to finite-state automata, which are used as observers of the program behavior. The translation algorithm we propose modifies standard LTL to Buchi automata conversion techniques to generate automata that check finite program traces. The algorithm has been implemented in a tool, which has been integrated with the generic JPaX framework for runtime analysis of Java programs. Dimitra Giannakopoulou, Klaus Havelund |
ASE | 2 |
| 2001 | Monitoring Programs Using RewritingabstractWe present a rewriting algorithm for efficiently testing future time Linear Temporal Logic (LTL) formulae on finite execution traces. The standard models of LTL are infinite traces, reflecting the behavior of reactive and concurrent systems which conceptually may be continuously alive. In most past applications of LTL, theorem provers and model checkers have been used to formally prove that down-scaled models satisfy such LTL specifications. Our goal is instead to use LTL for up-scaled testing of real software applications, corresponding to analyzing the conformance of finite traces against LTL formulae. We first describe what it means for a finite trace to satisfy an LTL formula and then suggest an optimized algorithm based on transforming LTL formulae. We use the Maude rewriting logic, which turns out to be a good notation and being supported by an efficient rewriting engine for performing these experiments. The work constitutes part of the Java PathExplorer (JPAX) project, the purpose of which is to develop a flexible tool for monitoring Java program executions. Klaus Havelund, Grigore Rosu |
ASE | 1 |
| 2001 | Mapping Temporal Planning Constraints into Timed AutomataabstractPlanning and model checking are similar in concept. They both deal with reaching a goal state from an initial state by applying specified rules that allow for the transition from one state to another. Exploring the relationship between them is an interesting new research area. We are interested in planning frameworks that combine both planning and scheduling. For that, we focus our attention on real time model checking. As a first step, we developed a mapping from planning domain models into timed automata. Since timed automata are the representation structure of real-time model checkers, we are able to exploit what model checking has to offer for planning domains. We present the mapping algorithm, which involves translating temporal specifications into timed automata, and list some of the planning domain questions someone can answer by using model checking. Lina Khatib, Nicola Muscettola, Klaus Havelund |
TIME | 3 |
| 2001 | Formal Analysis of a Space-Craft Controller Using SPINabstractThe paper documents an application of the finite state model checker SPIN to formally analyze a multithreaded plan execution module. The plan execution module is one component of NASA's New Millennium Remote Agent, an artificial intelligence-based spacecraft control system architecture which launched in October of 1998 as part of the DEEP SPACE 1 mission. The bottom layer of the plan execution module architecture is a domain specific language, named ESL (Executive Support Language), implemented as an extension to multithreaded COMMON LISP. ESL supports the construction of reactive control mechanisms for autonomous robots and spacecraft. For the case study, we translated the ESL services for managing interacting parallel goal-and-event driven processes into the PROMELA input language of SPIN. A total of five previously undiscovered concurrency errors were identified within the implementation of ESL. According to the Remote Agent programming team, the effort has had a major impact, locating errors that would not have been located otherwise and, in one case, identifying a major design flaw. In fact, in a different part of the system, a concurrency bug identical to one discovered by this study escaped testing and caused a deadlock during an in-flight experiment, 96 million kilometers from Earth. The work additionally motivated the introduction of procedural abstraction in terms of inline procedures into SPIN. Klaus Havelund, Michael R. Lowry, John Penix |
IEEE Trans. Software Eng. | 1 |
| 2000 | Model Checking ProgramsabstractThe majority of the work carried out in the formal methods community throughout the last three decades has (for good reasons) been devoted to special languages designed to make it easier to experiment with mechanized formal methods such as theorem provers and model checkers. In this paper, we give arguments for why we believe it is time for the formal methods community to shift some of its attention towards the analysis of programs written in modern programming languages. In keeping with this philosophy, we have developed a verification and testing environment for Java, called Java PathFinder (JPF), which integrates model checking, program analysis and testing. Part of this work has consisted of building a new Java Virtual Machine that interprets Java bytecode. JPF uses state compression to handle large states, and partial order reduction, slicing, abstraction and run-time analysis techniques to reduce the state space. JPF has been applied to a real-time avionics operating system developed at Honeywell, illustrating an intricate error, and to a model of a spacecraft controller, illustrating the combination of abstraction, run-time analysis and slicing with model checking. Willem Visser, Klaus Havelund, Guillaume Brat, Seungjoon Park |
ASE | 2 |
| 2000 | Model Checking JAVA Programs using JAVA PathFinder
Klaus Havelund, Thomas Pressburger |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 1997 | Verification and Validation of AI Systems that Control Deep-Space Spacecraft
Michael R. Lowry, Klaus Havelund, John Penix |
ISMIS | 2 |
| 1997 | Declarative Specification of Software ArchitecturesabstractScaling formal methods to large, complex systems requires methods of modeling systems at high levels of abstraction. In this paper, we describe such a method for specifying system requirements at the software architecture level. An architecture represents a way breaking down a system into a set of interconnected components. We use architecture theories to specify the behavior of a system in terms of the behavior of its components via a collection of axioms. The axioms describe the effects and limits of component variation and the assumptions a component can make about the environment provided by the architecture. As a result of the method the verification of the basic architecture can be separated from the verification of the individual component instantiations. We present an example of using architecture theories to model the task coordination architecture of a multi-threaded plan execution system. John Penix, Perry Alexander, Klaus Havelund |
ASE | 3 |
| 1997 | Formal modeling and analysis of an audio/video protocol: an industrial case study using UPPAALabstractA formal and automatic verification of a real-life protocol is presented. The protocol, about 2800 lines of assembler code, has been used in products from the audio/video company Bang & Olufsen throughout more than a decade, and its purpose is to control the transmission of messages between audio/video components over a single bus. Such communications may collide, and one essential purpose of the protocol is to detect such collisions. The functioning is highly dependent on real-time considerations. Though the protocol was known to be faulty in that messages were lost occasionally, the protocol was too complicated in order for Bang & Olufsen to locate the bug using normal testing. However using the real-time verification tool UPPAAL, an error trace was automatically generated, which caused the detection of "the error" in the implementation. The error was corrected and the correction was automatically proven correct, again using UPPAAL. A future, and more automated, version of the protocol, where this error is fatal, will incorporate the correction. Hence, this work is an elegant demonstration of how model checking has had an impact on practical software development. The effort of modeling this protocol has in addition generated a number of suggestions for enriching the UPPAAL language. Hence, it's also an excellent example of the reverse impact. Klaus Havelund, Arne Skou, Kim G. Larsen, Kristian Lund |
RTSS | 1 |
| 1993 | The Fork Calculus
Klaus Havelund, Kim G. Larsen |
ICALP | 1 |
| 1992 | Formal, model-oriented software development methods: From VDM to ProCoS & from RAISE to LaCoS
Dines Bjørner, Anne E. Haxthausen, Klaus Havelund |
Future Gener. Comput. Syst. | 3 |
| 1989 | The RAISE Language, Method and ToolsabstractAbstract This paper presents the RAISE 1 software development method, its associated specification language, and the tools supporting it. The RAISE method enables the stepwise development of both sequential and concurrent software from abstract specification through design to implementation. All stages of RAISE software development are expressed in the wide-spectrum RAISE specification language. The RAISE tools form an integrated tool environment supporting both language and method. The paper surveys RAISE and furthermore, more detailed presentations of major RAISE results are provided. The subjects of these are (a) an example of the use of the RAISE method and language, and (b) a presentation of the mathematical semantics of the RAISE specification language. Mogens Nielsen, Klaus Havelund, Kim Ritter Wagner, Chris George |
Formal Aspects Comput. | 2 |