VLDB 2026 Research / reviewers in the wild / expert
Lori A. Clarke
dblp:c/LoriAClarke
· DBLP profile ↗
58ranked-venue papers
10as first author
1since 2021 · last 2025
—ORCID · none
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 52 · 10 first-author · 1 since 2021Applied, interdisciplinary, general and emerging computing · 6 · 1 first-authorArtificial intelligence and machine learning · 1Security and privacy · 1Databases, data management, data science and information retrieval · 1Human-computer interaction and ubiquitous computing · 1Theory of computation · 1 · 1 first-author
Expertise — from the expertise taxonomy: the topics of the expert's papers under the CCF categories. A weight counts papers with recency: 1 for a paper about the topic, 0.3 when the topic is its context, halved every five years.
| Software engineering, system software, and programming languages
43 papers |
Program analysis · 38% Program verification · 36% Requirements engineering and software design · 10% | |
| Interdisciplinary, comprehensive, and emerging computing
3 papers |
Computational science and engineering · 74% Medical and health informatics · 26% | |
| Theoretical computer science
4 papers |
Automated reasoning and model checking · 90% Automata and formal languages · 10% Mathematical optimization · 0% |
Topics — the 30 heaviest of 62, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program analysis
symbolic execution |
0.9 | 3 | 2025 | A Personal Retrospective on Symbolic Execution · IEEE Trans. Software Eng. 2025 Using model checking with symbolic execution to verify parallel numerical programs · ISSTA 2006 A System to Generate Test Data and Symbolically Execute Programs · IEEE Trans. Software Eng. 1976 |
Program verification › model checking
finite-state verification |
0.4 | 10 | 2008 | Analyzing medical processes · ICSE 2008 Breaking up is hard to do: an investigation of decomposition for assume-guarantee reasoning · ISSTA 2006 Managing space for finite-state verification · ICSE 2006 |
Software testing
test generation |
0.3 | 1 | 2025 | A Personal Retrospective on Symbolic Execution · IEEE Trans. Software Eng. 2025 |
Program verification
model checking |
0.2 | 3 | 2008 | Breaking up is hard to do: An evaluation of automated assume-guarantee reasoning · ACM Trans. Softw. Eng. Methodol. 2008 Using model checking with symbolic execution to verify parallel numerical programs · ISSTA 2006 Heuristic-guided counterexample search in FLAVERS · SIGSOFT FSE 2004 |
Program verification › modular reasoning
rely-guarantee reasoning |
0.1 | 2 | 2008 | Breaking up is hard to do: An evaluation of automated assume-guarantee reasoning · ACM Trans. Softw. Eng. Methodol. 2008 Breaking up is hard to do: an investigation of decomposition for assume-guarantee reasoning · ISSTA 2006 |
Program analysis
data flow analysis |
0.1 | 8 | 2004 | Flow analysis for verifying properties of concurrent software systems · ACM Trans. Softw. Eng. Methodol. 2004 Data Flow Analysis for Checking Properties of Concurrent Java Programs · ICSE 1999 Verification of Concurrent Software with FLAVERS · ICSE 1997 |
Program verification › model checking
state space explosion |
0.1 | 2 | 2008 | Breaking up is hard to do: An evaluation of automated assume-guarantee reasoning · ACM Trans. Softw. Eng. Methodol. 2008 Breaking up is hard to do: an investigation of decomposition for assume-guarantee reasoning · ISSTA 2006 |
Requirements engineering and software design › specification
property specification |
0.1 | 2 | 2006 | User guidance for creating precise and accessible property specifications · SIGSOFT FSE 2006 PROPEL: an approach supporting property elucidation · ICSE 2002 |
Requirements engineering and software design › specification
specification patterns |
0.1 | 2 | 2006 | User guidance for creating precise and accessible property specifications · SIGSOFT FSE 2006 PROPEL: an approach supporting property elucidation · ICSE 2002 |
Computational science and engineering
scientific data management |
0.1 | 1 | 2008 | Experience in using a process language to define scientific workflow and generate dataset provenance · SIGSOFT FSE 2008 |
Computational science and engineering
scientific workflow |
0.1 | 1 | 2008 | Experience in using a process language to define scientific workflow and generate dataset provenance · SIGSOFT FSE 2008 |
Program verification
equivalence checking |
0.1 | 1 | 2006 | Using model checking with symbolic execution to verify parallel numerical programs · ISSTA 2006 |
Concurrent programming
concurrency analysis |
0.1 | 4 | 1996 | A Compact Petri Net Representation and Its Implications for Analysis · IEEE Trans. Software Eng. 1996 Improving the Accuracy of Petri Net-Based Analysis of Concurrent Programs · ISSTA 1996 A Compact Petri Net Representation for Concurrent Programs · ICSE 1995 |
Program verification › model checking
counterexample generation |
0.0 | 1 | 2004 | Heuristic-guided counterexample search in FLAVERS · SIGSOFT FSE 2004 |
Program verification › refinement
model refinement |
0.0 | 1 | 2004 | Heuristic-Based Model Refinement for FLAVERS · ICSE 2004 |
Automated reasoning and model checking › model checking
counterexample generation |
0.0 | 1 | 2004 | Heuristic-guided counterexample search in FLAVERS · SIGSOFT FSE 2004 |
Automated reasoning and model checking › model checking
finite-state verification |
0.0 | 1 | 2004 | Heuristic-guided counterexample search in FLAVERS · SIGSOFT FSE 2004 |
Program verification
property checking |
0.0 | 2 | 1999 | Data Flow Analysis for Checking Properties of Concurrent Java Programs · ICSE 1999 Verification of Concurrent Software with FLAVERS · ICSE 1997 |
Program analysis
static analysis |
0.0 | 4 | 1996 | A Compact Petri Net Representation and Its Implications for Analysis · IEEE Trans. Software Eng. 1996 Improving the Accuracy of Petri Net-Based Analysis of Concurrent Programs · ISSTA 1996 Verification of Communication Protocols Using Data Flow Analysis · SIGSOFT FSE 1996 |
Program analysis
concurrent program analysis |
0.0 | 2 | 1999 | Data Flow Analysis for Checking Properties of Concurrent Java Programs · ICSE 1999 Improving the Accuracy of Petri Net-Based Analysis of Concurrent Programs · ISSTA 1996 |
Medical and health informatics › clinical informatics
clinical information systems |
0.0 | 1 | 2010 | 2nd International Workshop on Software Engineering in Health Care (SEHC 2010) · ICSE (2) 2010 |
Program analysis › concurrent system analysis
petri net analysis |
0.0 | 2 | 1996 | A Compact Petri Net Representation and Its Implications for Analysis · IEEE Trans. Software Eng. 1996 Improving the Accuracy of Petri Net-Based Analysis of Concurrent Programs · ISSTA 1996 |
Parallel and multicore computing
parallel programming models |
0.0 | 1 | 2008 | Combining symbolic execution with model checking to verify parallel numerical programs · ACM Trans. Softw. Eng. Methodol. 2008 |
Data models and query languages › object-oriented database
object manager |
0.0 | 1 | 1998 | Consistency Management for Complex Applications · ICSE 1998 |
Software maintenance and evolution › software configuration management
consistency management |
0.0 | 1 | 1998 | Consistency Management for Complex Applications · ICSE 1998 |
Program analysis › data flow analysis
incremental data flow analysis |
0.0 | 1 | 1997 | Verification of Concurrent Software with FLAVERS · ICSE 1997 |
Program verification
protocol verification |
0.0 | 1 | 1996 | Verification of Communication Protocols Using Data Flow Analysis · SIGSOFT FSE 1996 |
Program verification › model checking › state space exploration
reachability analysis |
0.0 | 1 | 1996 | A Compact Petri Net Representation and Its Implications for Analysis · IEEE Trans. Software Eng. 1996 |
Compilers and program optimization › loop optimization
reduction optimization |
0.0 | 1 | 1996 | A Compact Petri Net Representation and Its Implications for Analysis · IEEE Trans. Software Eng. 1996 |
Concurrent programming
concurrency verification |
0.0 | 1 | 1994 | Data Flow Analysis for Verifying Properties of Concurrent Programs · SIGSOFT FSE 1994 |
Methods — techniques the papers use, named apart from their topics
symbolic execution · 1.1model checking · 0.3process modeling · 0.2finite-state verification · 0.2process definition graph · 0.1floating-point equivalence · 0.1dataset derivation graph · 0.1automated assumption generation · 0.1assume-guarantee reasoning · 0.1zero-suppressed binary decision diagrams · 0.1finite-state automaton · 0.1decomposition · 0.1binary decision diagrams · 0.1two-stage search strategy · 0.0heuristic-guided search · 0.0depth-first search · 0.0breadth-first search · 0.0finite-state automata · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 2025 | A Personal Retrospective on Symbolic ExecutionabstractThe 1976 paper describes the early development of a Symbolic Execution systems including some of the software engineering challenges, before internet communication and interactive computing were the norm. It describes the early expectations for such systems and contrasts those with the actual benefits and difficulties that arose. It also describes some of the surprising lessons learned. Lori A. Clarke |
IEEE Trans. Software Eng. | 1 |
| 2018 | Process Driven Guidance for Complex Surgical Procedures
George S. Avrunin, Stefan Christov, Lori A. Clarke, Heather M. Conboy, Leon J. Osterweil, Marco A. Zenati |
AMIA | 3 |
| 2017 | Iterative Analysis to Improve Key Properties of Critical Human-Intensive Processes: An Election Security ExampleabstractIn this article, we present an approach for systematically improving complex processes, especially those involving human agents, hardware devices, and software systems. We illustrate the utility of this approach by applying it to part of an election process and show how it can improve the security and correctness of that subprocess. We use the Little-JIL process definition language to create a precise and detailed definition of the process. Given this process definition, we use two forms of automated analysis to explore whether specified key properties, such as security and safety policies, can be undermined. First, we use model checking to identify process execution sequences that fail to conform to event-sequence properties. After these are addressed, we apply fault tree analysis to identify when the misperformance of steps might allow undesirable outcomes, such as security breaches. The results of these analyses can provide assurance about the process; suggest areas for improvement; and, when applied to a modified process definition, evaluate proposed changes. Leon J. Osterweil, Matt Bishop, Heather M. Conboy, Huong Phan, Borislava I. Simidchieva, George S. Avrunin, Lori A. Clarke, Sean Peisert |
ACM Trans. Priv. Secur. | 7 |
| 2014 | Online Deviation Detection for Medical Processes
Stefan Christov, George S. Avrunin, Lori A. Clarke |
AMIA | 3 |
| 2014 | Impact of barcode design on the medication administration process
Junghee Jo, Jenna L. Marquard, Lori A. Clarke, Philip L. Henneman |
AMIA | 3 |
| 2013 | Using process modeling and analysis techniques to reduce errors in healthcareabstractSummary form only given. As has been widely reported in the news lately, healthcare errors are a major cause of death and suffering. In the University of Massachusetts Medical Safety Project, we are exploring the use of process modeling and analysis technologies to help reduce medical errors and improve efficiency. Specifically, we are modeling healthcare processes using a process definition language and then analyzing these processes using model checking, fault-tree analysis, discrete event simulation, and other techniques. Working with the UMASS School of Nursing and the Baystate Medical Center, we are undertaking in-depth case studies on error-prone and life-critical healthcare processes. In many ways, these processes are similar to complex, distributed systems with many interacting, concurrent threads and numerous exceptional conditions that must be handled carefully. This talk describes the technologies we are using, discusses case studies, and presents our observations and findings to date. Although presented in terms of the healthcare domain, the described approach could be applied to human-intensive processes in other domains to provide a technology-driven approach to process improvement. Lori A. Clarke |
FMCAD | 1 |
| 2012 | Computational Predictors in Online Social Deliberations
Beverly P. Woolf, Tom Murray 0001, Xiaoxi Xu, Leon J. Osterweil, Lori A. Clarke, Leah Wing, Ethan Katsh |
ICWSM | 5 |
| 2010 | 2nd International Workshop on Software Engineering in Health Care (SEHC 2010)abstractSociety faces increasing reliance on software-intensive systems to manage health services, from scheduling, billing, and patient records to the control of life-critical devices and procedures. There are important concerns about software quality, security, and privacy, user interfaces, system interoperability, process automation and improvement, and many other issues of current concern to software engineering practitioners and researchers. It is widely recognized that information and communication technologies (ICTs) will transform healthcare of the future, being a driving force for improving care and access, while reducing the overall cost when broadly calculated based on overall productivity and quality of life. Lori A. Clarke, Jens H. Weber |
ICSE (2) | 1 |
| 2010 | An Automatic Failure Mode and Effect Analysis Technique for Processes Defined in the Little-JIL Process Definition Language
Danhua Wang, Jingui Pan, George S. Avrunin, Lori A. Clarke, Bin Chen 0018 |
SEKE | 4 |
| 2010 | Clear and Precise Specification of Ecological Data Management Processes and Dataset ProvenanceabstractWith the availability of powerful computational and communication systems, scientists now readily access large, complicated derived datasets and build on those results to produce, through further processing, yet other derived datasets of interest. The scientific processes used to create such datasets must be clearly documented so that scientists can evaluate their soundness, reproduce the results, and build upon them in responsible and appropriate ways. Here, we present the concept of ananalytic web, which defines the scientific processes employed and details the exact application of those processes in creating derived datasets. The work described here is similar to work often referred to as “scientific workflow,” but emphasizes the need for a semantically rich, rigorously defined process definition language. We illustrate the information that comprises an analytic web for a scientific process that measures and analyzes the flux of water through a forested watershed. This is a complex and demanding scientific process that illustrates the benefits of using a semantically rich, executable language for defining processes and for supporting automatic creation of process provenance metadata. Leon J. Osterweil, Lori A. Clarke, Aaron M. Ellison, Emery R. Boose, Rodion M. Podorozhny, Alexander E. Wise |
IEEE Trans Autom. Sci. Eng. | 2 |
| 2008 | Analyzing medical processesabstractThis paper shows how software engineering technologies used to define and analyze complex software systems can also be effective in detecting defects in human-intensive processes used to administer healthcare. The work described here builds upon earlier work demonstrating that healthcare processes can be defined precisely. This paper describes how finite-state verification can be used to help find defects in such processes as well as find errors in the process definitions and property specifications. The paper includes a detailed example, based upon a real-world process for transfusing blood, where the process defects that were found led to improvements in the process. Bin Chen 0018, George S. Avrunin, Elizabeth A. Henneman, Lori A. Clarke, Leon J. Osterweil, Philip L. Henneman |
ICSE | 4 |
| 2008 | Experience in using a process language to define scientific workflow and generate dataset provenanceabstractThis paper describes our experiences in exploring the applicability of software engineering approaches to scientific data management problems. Specifically, this paper describes how process definition languages can be used to expedite production of scientific datasets as well as to generate documentation of their provenance. Our approach uses a process definition language that incorporates powerful semantics to encode scientific processes in the form of a Process Definition Graph (PDG). The paper describes how execution of the PDG-defined process can generate Dataset Derivation Graphs (DDGs), metadata that document how the scientific process developed each of its product datasets. The paper uses an example to show that scientific processes may be complex and to illustrate why some of the more powerful semantic features of the process definition language are useful in supporting clarity and conciseness in representing such processes. This work is similar in goals to work generally referred to as Scientific Workflow. The paper demonstrates the contribution that software engineering can make to this domain. Leon J. Osterweil, Lori A. Clarke, Aaron M. Ellison, Rodion M. Podorozhny, Alexander E. Wise, Emery R. Boose, Julian L. Hadley |
SIGSOFT FSE | 2 |
| 2008 | Breaking up is hard to do: An evaluation of automated assume-guarantee reasoningabstractFinite-state verification techniques are often hampered by the state-explosion problem. One proposed approach for addressing this problem is assume-guarantee reasoning, where a system under analysis is partitioned into subsystems and these subsystems are analyzed individually. By composing the results of these analyses, it can be determined whether or not the system satisfies a property. Because each subsystem is smaller than the whole system, analyzing each subsystem individually may reduce the overall cost of verification. Often the behavior of a subsystem is dependent on the subsystems with which it interacts, and thus it is usually necessary to provide assumptions about the environment in which a subsystem executes. Because developing assumptions has been a difficult manual task, the evaluation of assume-guarantee reasoning has been limited. Using recent advances for automatically generating assumptions, we undertook a study to determine if assume-guarantee reasoning provides an advantage over monolithic verification. In this study, we considered all two-way decompositions for a set of systems and properties, using two different verifiers, FLAVERS and LTSA. By increasing the number of repeated tasks in these systems, we evaluated the decompositions as they were scaled. We found that in only a few cases can assume-guarantee reasoning verify properties on larger systems than monolithic verification can, and in these cases the systems that can be analyzed are only a few sizes larger. Although these results are discouraging, they provide insight about research directions that should be pursued and highlight the importance of experimental evaluation in this area. Jamieson M. Cobleigh, George S. Avrunin, Lori A. Clarke |
ACM Trans. Softw. Eng. Methodol. | 3 |
| 2008 | Combining symbolic execution with model checking to verify parallel numerical programsabstractWe present a method to verify the correctness of parallel programs that perform complex numerical computations, including computations involving floating-point arithmetic. This method requires that a sequential version of the program be provided, to serve as the specification for the parallel one. The key idea is to use model checking, together with symbolic execution, to establish the equivalence of the two programs. In this approach the path condition from symbolic execution of the sequential program is used to constrain the search through the parallel program. To handle floating-point operations, three different types of equivalence are supported. Several examples are presented, demonstrating the approach and actual errors that were found. Limitations and directions for future research are also described. Stephen F. Siegel, Anastasia Mironova, George S. Avrunin, Lori A. Clarke |
ACM Trans. Softw. Eng. Methodol. | 4 |
| 2006 | Managing space for finite-state verificationabstractFinite-state verification (FSV) techniques attempt to prove properties about a model of a system by examining all possible behaviors of that model. This approach suffers from the state-explosion problem, where the size of the model or the analysis costs may be exponentially large with respect to the size of the system. Using symbolic data structures to represent subsets of the state space has been shown to usually be an effective optimization approach for hardware verification. The value for software verification, however, is still unclear. In this paper, we investigate applying two symbolic data structures, Binary Decision Diagrams (BDDs) and Zero-suppressed Binary Decision Diagrams (ZDDs), in two FSV tools, LTSA and FLAVERS. We describe an experiment showing that these two symbolic approaches can improve the performance of both FSV tools and are more efficient than two other algorithms that store the state space explicitly. Moreover, the ZDD-based approach often runs faster and can handle larger systems than the BDD-based approach. Jianbin Tan, George S. Avrunin, Lori A. Clarke |
ICSE | 3 |
| 2006 | Breaking up is hard to do: an investigation of decomposition for assume-guarantee reasoningabstractFinite-state verification techniques are often hampered by the stateexplosion problem. One proposed approach for addressing this problem is assume-guarantee reasoning. Using recent advances in assume-guarantee reasoning that automatically generate assumptions, we undertook a study to determine if assume-guarantee reasoning provides an advantage over monolithic verification. In this study, we considered all two-way decompositions for a set of systems and properties, using two different verifiers, FLAVERS and LTSA. By increasing the number of repeated tasks, we evaluated the decompositions as the systems were scaled. In only a few cases could assume-guarantee reasoning verify properties on larger systems than monolithic verification and, in these cases, assumeguarantee reasoning could only verify these properties on systems a few sizes larger than monolithic verification. This discouraging result, although preliminary, raises doubts about the usefulness of assume-guarantee reasoning. Jamieson M. Cobleigh, George S. Avrunin, Lori A. Clarke |
ISSTA | 3 |
| 2006 | Using model checking with symbolic execution to verify parallel numerical programsabstractWe present a method to verify the correctness of parallel programs that perform complex numerical computations, including computations involving floating-point arithmetic. The method requires that a sequential version of the program be provided, to serve as the specification for the parallel one. The key idea is to use model checking, together with symbolic execution, to establish the equivalence of the two programs. Stephen F. Siegel, Anastasia Mironova, George S. Avrunin, Lori A. Clarke |
ISSTA | 4 |
| 2006 | User guidance for creating precise and accessible property specificationsabstractProperty specifications concisely describe aspects of what a system is supposed to do. No matter what notation is used to describe them, however, it is difficult to represent these properties correctly, since there are often subtle, but important, details that need to be considered. Propel aims to guide users through the process of creating properties that are both accessible and mathematically precise, by providing templates for commonly-occurring property patterns. These templates explicitly represent these subtle details as options. In this paper, we present a new representation of these templates, a Question Tree that asks users a hierarchical sequence of questions about their intended properties. The Question Tree representation is particularly useful for helping users select the appropriate template, but it also complements the finite-state automaton and disciplined natural language representations provided by Propel. We also report on some case studies and on an experimental evaluation of the understandability of the disciplined natural language representation. Rachel L. Cobleigh, George S. Avrunin, Lori A. Clarke |
SIGSOFT FSE | 3 |
| 2004 | Heuristic-Based Model Refinement for FLAVERSabstractFLAVERS is a finite-state verification approach that allows an analyst to incrementally add constraints to improve the precision of the model of the system being analyzed. Except for trivial systems, however, it is impractical to compute which constraints should be selected to produce precise results for the least cost. Thus, constraint selection has been a manual task, guided by the intuition of the analyst. In this paper, we investigate several heuristics for selecting task automaton constraints, a kind of constraint that tends to reduce infeasible task interactions. We describe an experiment showing that one of these heuristics is extremely effective at improving the precision of the analysis results without significantly degrading performance. Jianbin Tan, George S. Avrunin, Lori A. Clarke |
ICSE | 3 |
| 2004 | Heuristic-guided counterexample search in FLAVERSabstractOne of the benefits of finite-state verification (FSV) tools, such as model checkers, is that a counterexample is provided when the property cannot be verified. Not all counterexamples, however, are equally useful to the analysts trying to understand and localize the fault. Often counterexamples are so long that they are hard to understand. Thus, it is important for FSV tools to find short counterexamples and to do so quickly. Commonly used search strategies, such as breadth-first and depth-first search, do not usually perform well in both of these dimensions. In this paper, we investigate heuristic-guided search strategies for the FSV tool FLAVERS and propose a novel two-stage counterexample search strategy. We describe an experiment showing that this two-stage strategy, when combined with appropriate heuristics, is extremely effective at quickly finding short counterexamples for a large set of verification problems. Jianbin Tan, George S. Avrunin, Lori A. Clarke, Shlomo Zilberstein, Stefan Leue |
SIGSOFT FSE | 3 |
| 2004 | Flow analysis for verifying properties of concurrent software systemsabstractThis article describes FLAVERS, a finite-state verification approach that analyzes whether concurrent systems satisfy user-defined, behavioral properties. FLAVERS automatically creates a compact, event-based model of the system that supports efficient dataflow analysis. FLAVERS achieves this efficiency at the cost of precision. Analysts, however, can improve the precision of analysis results by selectively and judiciously incorporating additional semantic information into an analysis.We report on an empirical study of the performance of the FLAVERS/Ada toolset applied to a collection of multitasking Ada systems. This study indicates that sufficient precision for proving system properties can usually be achieved and that the cost for such analysis typically grows as a low-order polynomial in the size of the system. Matthew B. Dwyer, Lori A. Clarke, Jamieson M. Cobleigh, Gleb Naumovich |
ACM Trans. Softw. Eng. Methodol. | 2 |
| 2002 | PROPEL: an approach supporting property elucidationabstractProperty specifications concisely describe what a software system is supposed to do. It is surprisingly difficult to write these properties correctly. There are rigorous mathematical formalisms for representing properties, but these are often difficult to use. No matter what notation is used, however, there are often subtle, but important, details that need to be considered. Propel aims to make the job of writing and understanding properties easier by providing templates that explicitly capture these details as options for commonly-occurring property patterns. These templates are represented using both "disciplined" natural language and finite-state automata, allowing the specifier to easily move between these two representations. Rachel L. Smith, George S. Avrunin, Lori A. Clarke, Leon J. Osterweil |
ICSE | 3 |
| 2001 | The Right Algorithm at the Right Time: Comparing Data Flow Analysis Algorithms for Finite State VerificationabstractFinite-state verification is emerging as an important technology for proving properties about software. In our experience, we have found that analysts have different expectations at different times. When an analyst is in an exploratory mode, initially formulating and verifying properties, analyses usually find inconsistencies because of flaws in the properties or in the software artifacts being analyzed. Once an inconsistency is found, the analyst begins to operate in a fault-finding mode, during which meaningful counter-example traces are needed to help determine the cause of the inconsistency. Eventually, systems become relatively stable, but still require re-verification as evolution occurs. During such periods, the analyst is operating in a maintenance mode and would expect re-verification to usually report consistent results. Although it could be that one algorithm suits all three of these modes of use, the hypothesis explored in this paper is that each would be best served by an algorithm optimized for the expectations of the analyst. Jamieson M. Cobleigh, Lori A. Clarke, Leon J. Osterweil |
ICSE | 2 |
| 2001 | An architecture for flexible, evolvable process-driven user-guidance environmentsabstractComplex toolsets can be difficult to use. User interfaces can help by guiding users through the alternative choices that might be possible at any given time, but this tends to lock users into the fixed interaction models dictated by the user-interface designers. Alternatively, we propose an approach where the tool utilization model is specified by a process, written in a process definition langauge. Our approach incorporates a user-interface specification that describes how the user-interface is to respond to, or reflect, progress through the execution of the process definition. By not tightly binding the user-guidance process, the associated user-interfaces, and the toolset, it is easy to develop alternative processes that provide widely varying levels and styles of guidance and to be responsive to evolution in the processes, user interfaces, or toolset. In this paper, we describe this approach for developing process-driven user-guidance environments, a lossely coupled architecture for supporting this separation of concerns, and a generator for automatically binding the process and the user interface. We report on a case study using this approach. Although this case study used a specific process definition language and a specific toolset, the approach is applicable to other process definition languages and toolsets, provided they meet some basic, sound software engineering requirements. Timothy J. Sliski, Matthew P. Billmers, Lori A. Clarke, Leon J. Osterweil |
ESEC / SIGSOFT FSE | 3 |
| 2000 | Finite state verification: An emerging technology for validating software systems (abstract only)abstractEver since formal verification was first proposed in the late sixties, the idea of being able to definitively determine if a program meets its specifications has been an appealing, but elusive, goal. Although verification systems based on theorem proving have improved considerably over the years, they are still inherently undecidable and require significant guidance from mathematically astute users. The human effort required for formal verification is so significant that it is usually only applied to the most critical software components. Lori A. Clarke |
ISSTA | 1 |
| 2000 | Verifying properties of process definitionsabstractIt seems imperative that the complex processes that syner-gize humans and computers to solve widening classes of societal problems be subjected to rigorous analysis. One approach is to use a process definition language to spec-ify these processes and to then use analysis techniques to evaluate these definitions for important correctness proper-ties. Because humans demand flexibility in their participa-tion in complex processes, process definition languages must incorporate complicated control structures, such as various concurrency, choice, reactive control, and exception mecha-nisms. Well-designed process languages provide powerful abstractions for concise and precise specification of such control, but balance this with visualization support to help users also obtain intuitive insights. The underlying complex-ity of these control abstractions, however, often confounds these intuitions as well as complicates any analysis. Thus, the control abstraction complexity in process def-inition languages presents analysis challenges beyond those posed by traditional programming languages. This paper ex-plores some of the difficulties of analyzing process defini-tions. Specifically, we explore issues arising when applying the FLAVERS finite state verification system to processes written in the Little-JIL process definition language and il-lustrate these issues using a realistic ecommerce auction ex-ample. Although we employ a particular process definition language and analysis technique, our results seem more gen-erally applicable. Jamieson M. Cobleigh, Lori A. Clarke, Leon J. Osterweil |
ISSTA | 2 |
| 2000 | Classifying properties: an alternative to the safety-liveness classificationabstractTraditionally, verification properties have been classified as safety or liveness properties. While this taxonomy has an attractive simplicity and is useful for identifying the appropriate analysis algorithm for checking a property, determining whether a property is safety, liveness, or neither can require significant mathematical insight on the part of the analyst. In this paper, we present an alternative property taxonomy. We argue that this taxonomy is a more natural classification of the kinds of questions that analysts want to ask. Moreover, most classes in our taxonomy have a known, direct mapping to the safety-liveness classification, and thus the appropriate analysis algorithm can be automatically determined. Gleb Naumovich, Lori A. Clarke |
SIGSOFT FSE | 2 |
| 2000 | The impact project: determining the impact of software engineering research upon practice (panel session)abstractThe purpose of this panel is to introduce the Impact Project to the community, and to engage the community in a broad ranging discussion of the project's goals, approaches, and methods. Some of the project's early findings and directions will be presented. Leon J. Osterweil, Lori A. Clarke, Michael Evangelist, Jeff Kramer, H. Dieter Rombach, Alexander L. Wolf |
SIGSOFT FSE | 2 |
| 1999 | Data Flow Analysis for Checking Properties of Concurrent Java ProgramsabstractIn this paper we show how the FLAVERS data flow analysis technique, originally formulated for programs with the rendezvous model of concurrency, can be applied to concurrent Java programs. The general approach of FLAVERS is based on modeling a concurrent program as a flow graph and using a data flow analysis algorithm over this graph to check statically if a property holds on all executions of the program. The accuracy of this analysis can be improved by supplying additional information, represented as finite state automata, to the data flow analysis algorithm. In this paper we present a straightforward approach for modeling Java programs that uses the accuracy improving mechanism to represent the possible communications among threads in Java programs, instead of representing them directly in the flow graph model. We also discuss a number of error-prone thread communication patterns that can arise in Java and describe how FLAVERS can be used to check for the presence of these. Gleb Naumovich, George S. Avrunin, Lori A. Clarke |
ICSE | 3 |
| 1999 | Using Partial Order Techniques to Improve Performance of Data Flow Analysis Based VerificationabstractPartial order optimization techniques for distributed systems improve the performance of finite state verification approaches by avoiding redundant exploration of some portions of the state space. Previously, such techniques have been applied in the context of model checking approaches. In this paper we propose a partial order optimization of the program model used by FLAVERS, a data flow based finite state verification approach for checking user-specified properties of distributed software. We demonstrate experimentally that this optimization often leads to significant reductions in the run time of the analysis algorithm of FLAVERS. On average, for those cases where this optimization could be applied, we observed a speedup of 21%. For one of the cases, the optimization resulted in an analysis speedup of 91%. Gleb Naumovich, Lori A. Clarke, Jamieson M. Cobleigh |
PASTE | 2 |
| 1998 | An Adaptable Generation Approach to Agenda ManagementabstractAs software engineering efforts move to more complex, distributed environments, coordinating the activities of people and tools becomes very important. While groupware systems address user level communication needs and distributed computing technologies address tool level communication needs, few attempts have been made to synthesize the common needs of both. This paper describes our attempt to do exactly that. We describe a framework for generating an agenda management system (AMS) from a specification of the system's requirements. The framework can meet a variety of requirements and produces a customized AMS appropriate for use by both humans and software tools. The framework and generated system support evolution in several ways, allowing existing systems to be extended as requirements change. We also describe our experiences using this approach to create an AMS to support a process programming environment. Eric K. McCall, Lori A. Clarke, Leon J. Osterweil |
ICSE | 2 |
| 1998 | Consistency Management for Complex ApplicationsabstractConsistency management is important in many complex applications, but current languages and database systems inadequately support it. To address this limitation, we defined a consistency management model and incorporated it into the PLEIADES object management system. This paper illustrates some typical consistency management requirements and discusses the requirements in terms of both functionality and cross-cutting concerns that affect how this functionality is provided. It then describes the model and some design and implementation issues that arose in instantiating it. Finally, we discuss user feedback and future research plans. Peri L. Tarr, Lori A. Clarke |
ICSE | 2 |
| 1998 | Efficient Composite Data Flow Analysis Applied to Concurrent ProgramsabstractFLAVERS, a tool for verifying properties of concurrent systems, uses composite data flow analysis to incrementally improve the precision of the results of its verifications. Although FLAVERS is one of the few static analysis techniques for concurrent systems that has the potential to handle large scale systems, it sometimes can still be very expensive to use. In this paper we experimentally compare the cost of two versions of this approach for solving composite data flow analysis problems. The first version, product-based, uses the more straightforward approach, and the second, tuple-based, is built around the idea of reducing analysis space requirements at the expense of analysis time. We demonstrate experimentally, by analyzing properties of actual concurrent programs, that the tuple-based version is comparable in time to the product-based version but for large composite data flow problems it requires several orders of magnitude less space. Gleb Naumovich, Lori A. Clarke, Leon J. Osterweil |
PASTE | 2 |
| 1997 | Verification of Concurrent Software with FLAVERSabstractIn this demonstration we give a scenario of how FLAVERS, an implementation of the incremental accuracy improving data flow analysis approach [I], is used to verify event sequence properties of concurrent or distributed software programs. Gleb Naumovich, Lori A. Clarke, Leon J. Osterweil, Matthew B. Dwyer |
ICSE | 2 |
| 1996 | A Flexible Architecture for Building Data Flow Analyzers
Matthew B. Dwyer, Lori A. Clarke |
ICSE | 2 |
| 1996 | Improving the Accuracy of Petri Net-Based Analysis of Concurrent ProgramsabstractSpurious results are an inherent problem of most static analysis methods. These methods, in an effort to produce conservative results, overestimate the executable behavior of a program. Infeasible paths and imprecise alias resolution are the two causes of such inaccuracies. In this paper we present an approach for improving the accuracy of Petri net-based analysis of concurrent programs by including additional program state information in the Petri net. We present empirical results that demonstrate the improvements in accuracy and, in some cases, the reduction in the search space that result from applying this approach to concurrent Ada programs. A. T. Chamillard, Lori A. Clarke |
ISSTA | 2 |
| 1996 | Verification of Communication Protocols Using Data Flow AnalysisabstractIn this paper we demonstrate the effectiveness of data flow analysis for verifying requirements of communication protocols. Data flow analysis is a static analysis method for increasing confidence in the correctness of software systems by automatically verifying that a given software artifact (e.g., design or code) must behave consistently with a specified requirement. In this case study, we apply the FLAVERS data flow analysis tool to pseudocode designs of the three way handshake connection establishment protocol and of the alternating bit protocol and prove that the behavior of the pseudocode is consistent with protocol behavioral requirement specifications. We show how FLAVERS is a particularly effective because it is computationally inexpensive, requires minimal human interaction, and is a general approach that can be applied incrementally until the desired accuracy is achieved. In addition, we show how assumptions about the environment in which a software system is executed can be incorporated into the analysis, using message losses as an example. We present experimental results and derive some guidelines about the classes of protocol requirement specifications that may be amenable to verification using FLAVERS. Gleb Naumovich, Lori A. Clarke, Leon J. Osterweil |
SIGSOFT FSE | 2 |
| 1996 | A Framework for Event-Based Software IntegrationabstractAlthough event-based software integration is one of the most prevalent approaches to loose integration, no consistent model for describing it exists. As a result, there is no uniform way to discuss event-based integration, compare approaches and implementations, specify new event-based approaches, or match user requirements with the capabilities of event-based integration systems. We attempt to address these shortcomings by specifying a generic framework for event-based integration , the EBI framework, that provides a flexible, object-oriented model for discussing and comparing event-based integration approaches. The EBI framework can model dynamic and static specification, composition, and decomposition and can be instantiated to describe the features of most common event-based integration approaches. We demonstrate how to use the framework as a reference model by comparing and contrasting three well-known integration systems: FIELD, Polylith, and CORBA. Daniel J. Barrett, Lori A. Clarke, Peri L. Tarr, Alexander E. Wise |
ACM Trans. Softw. Eng. Methodol. | 2 |
| 1996 | A Compact Petri Net Representation and Its Implications for AnalysisabstractWe explore a property-independent, coarsened, multilevel representation for supporting state reachability analysis for a number of different properties. This multilevel representation comprises a reachability graph derived from a highly optimized Petri net representation that is based on task interaction graphs and associated property-specific summary information. This highly optimized representation reduces the size of the reachability graph but may increase the cost of the analysis algorithm for some types of analyses. We explore this tradeoff. To this end, we have developed a framework for checking a variety of properties of concurrent programs using this optimized representation and present empirical results that compare the cost to an alternative Petri net representation. In addition, we present reduction techniques that can further improve the performance and yet still preserve analysis information. Although worst-case bounds for most concurrency analysis techniques are daunting, we demonstrate that the techniques that we propose significantly broaden the applicability of reachability analyses. Matthew B. Dwyer, Lori A. Clarke |
IEEE Trans. Software Eng. | 2 |
| 1995 | A Compact Petri Net Representation for Concurrent ProgramsabstractThis paper presents a compactPetri net representa- Matthew B. Dwyer, Lori A. Clarke, Kari A. Nies |
ICSE | 2 |
| 1994 | Data Flow Analysis for Verifying Properties of Concurrent ProgramsabstractClassification D.2.4 Software/Program Verification, D.1.3 Concurrent Programming This paper describes FLAVERS, a finite-state verification approach that analyzes whether concurrent systems satisfy user-defined, behavioral properties. FLAVERS automatically creates a compact, event-based model of the system that supports efficient data-flow analysis. FLAVERS achieves this efficiency at the cost of precision. Analysts, however, can improve the precision of analysis results by selectively and judiciously incorporating additional semantic information into an analysis. We report on an empirical study of the performance of the FLAVERS/Ada toolset applied to a collection of multitasking Ada systems. This study indicates that sufficient precision for proving system properties can usually be Matthew B. Dwyer, Lori A. Clarke |
SIGSOFT FSE | 2 |
| 1993 | An Information Flow Model of Fault DetectionabstractRELAY is a model of how a fault causes a failure on execution of some test datum. This process begins with introduction of an original state potential failure at a fault location and continues as the potential failure(s) transfers to output. Here we describe the second stage of this process, transfer of an incorrect intermediate state from a faulty statement to output. Margaret C. Thompson, Debra J. Richardson, Lori A. Clarke |
ISSTA | 3 |
| 1993 | PLEIADES: An Object Management System for Software Engineering EnvironmentsabstractSoftware engineering environments impose challenging requirements on the design and implementation of an object management system. Existing object management systems have been limited in both the kinds of functionality they have provided and in the models of support they define. This paper describes a system, called PLEIADES, which provides many of the object management capabilities required to support software engineering environments. Peri L. Tarr, Lori A. Clarke |
SIGSOFT FSE | 2 |
| 1990 | A Comparative Evaluation of Object Definition TechniquesabstractAlthough prototyping has long been touted as a potentially valuable software engineering activity, it has never achieved widespread use by developers of large-scale, production software. This is probably due in part to an incompatibility between the languages and tools traditionally available for prototyping (e.g., LISP or Smalltalk) and the needs of large-scale-software developers, who must construct and experiment with large prototypes. The recent surge of interest in applying prototyping to the development of large-scale, production software will necessitate improved prototyping languages and tools appropriate for constructing and experimenting with large, complex prototype systems. We explore techniques aimed at one central aspect of prototyping that we feel is especially significant for large prototypes, namely that aspect concerned with the definition of data objects. We characterize and compare various techniques that might be useful in defining data objects in large prototype systems, after first discussing some distinguishing characteristics of large prototype systems and identifying some requirements that they imply. To make the discussion more concrete, we describe our implementations of three techniques that represent different possibilities within the range of object definition techniques for large prototype systems. Jack C. Wileden, Lori A. Clarke, Alexander L. Wolf |
ACM Trans. Program. Lang. Syst. | 2 |
| 1990 | A Formal Model of Program Dependences and Its Implications for Software Testing, Debugging, and MaintenanceabstractA formal, general model of program dependences is presented and used to evaluate several dependence-based software testing, debugging, and maintenance techniques. Two generalizations of control and data flow dependence, called weak and strong syntactic dependence, are introduced and related to a concept called semantic dependence. Semantic dependence models the ability of a program statement to affect the execution behavior of other statements. It is shown that weak syntactic dependence is a necessary but not sufficient condition for semantic dependence and that strong syntactic dependence is necessary but not sufficient condition for a restricted form of semantic dependence that is finitely demonstrated. These results are used to support some proposed uses of program dependences, to controvert others, and to suggest new uses.> Andy Podgurski, Lori A. Clarke |
IEEE Trans. Software Eng. | 2 |
| 1989 | Task Interaction Graphs for Concurrency AnalysisabstractA representation for concurrent programs, called task inter-action graphs, is presented. Task interaction graphs divide a program into maximal sequential regions connected by edges rep-resenting task interactions. This representation is illustrated and it is shown how it can be used to create concurrency graph rep-resentations that are much smaller than those created from con-trol flow graph representations. Both task interaction graphs and their corresponding concurrency graphs facilitate analysis of concurrent programs. Some analyses and optimizations on these representations are also described. 1 Douglas L. Long, Lori A. Clarke |
ICSE | 2 |
| 1989 | A Formal Evaluation of Data Flow Path Selection CriteriaabstractThe authors report on the results of their evaluation of path-selection criteria based on data-flow relationships. They show how these criteria relate to each other, thereby demonstrating some of their strengths and weaknesses. A subsumption hierarchy showing their relationship is presented. It is shown that one of the major weaknesses of all the criteria is that they are based solely on syntactic information and do not consider semantic issues such as infeasible paths. The authors discuss the infeasible-path problem as well as other issues that must be considered in order to evaluate these criteria more meaningfully and to formulate a more effective path-selection criterion.> Lori A. Clarke, Andy Podgurski, Debra J. Richardson, Steven J. Zeil |
IEEE Trans. Software Eng. | 1 |
| 1989 | The AdaPIC Tool Set: Supporting Interface Control and Analysis Throughout the Software Development ProcessabstractThe AdaPIC tool set, an important component of an Ada software development environment, is discussed. The AdaPIC tool set is one particular instantiation, specifically adapted for use with Ada, of the more general collection of language features and analysis capabilities that constitute the PIC approach to describing and analyzing relationships among software system components. This tool set is being tailored to support an incremental approach to the interface control aspects of the software development process. Following a discussion of the PIC interface control and incremental development concepts, the AdaPIC tool set is described, concentrating on its analysis tools and support for incremental development and demonstrating how it contributes to the technology for developing large Ada software systems.> Alexander L. Wolf, Lori A. Clarke, Jack C. Wileden |
IEEE Trans. Software Eng. | 2 |
| 1988 | A Model of Visibility ControlabstractA formal model for describing and evaluating visibility control mechanisms is introduced. The model reflects a general view of visibility in which the concepts of requisition of access and provision of access are distinguished. This model provides a means for characterizing and reasoning about the various properties of visibility control mechanisms. Specifically, the notion of preciseness is defined. The utility of the model is illustrated by using it to evaluate and compare the relative strengths and weaknesses, with respect to preciseness, of the visibility control mechanisms found in Algol 60, Ada, Gypsy, and an approach called PIC, which specifically addresses the concerns of visibility control in large software systems.> Alexander L. Wolf, Lori A. Clarke, Jack C. Wileden |
IEEE Trans. Software Eng. | 2 |
| 1985 | A Comparison of Data Flow Path Selection Criteria
Lori A. Clarke, Andy Podgurski, Debra J. Richardson, Steven J. Zeil |
ICSE | 1 |
| 1985 | Interface Control and Incremental Development in the PIC Environment
Alexander L. Wolf, Lori A. Clarke, Jack C. Wileden |
ICSE | 2 |
| 1985 | Applications of symbolic evaluation
Lori A. Clarke, Debra J. Richardson |
J. Syst. Softw. | 1 |
| 1985 | Partition Analysis: A Method Combining Testing and VerificationabstractThe partition analysis method compares a procedure's implementation to its specification, both to verify consistency between the two and to derive test data. Unlike most verification methods, partition analysis is applicable to a number of different types of specification languages, including both procedural and nonprocedural languages. It is thus applicable to high-level descriptions as well as to low-level designs. Partition analysis also improves upon existing testing criteria. These criteria usually consider only the implementation, but partition analysis selects test data that exercise both a procedure's intended behavior (as described in the specifications) and the structure of its implementation. To accomplish these goals, partition analysis divides or partitions a procedure's domain into subdomains in which all elements of each subdomain are treated uniformly by the specification and processed uniformly by the implementation. This partition divides the procedure domain into more manageable units. Information related to each subdomain is used to guide in the selection of test data and to verify consistency between the specification and the implementation. Moreover, the testing and verification processes are designed to enhance each other. Initial experimentation has shown that through the integration of testing and verification, as well as through the use of information derived from both the implementation and the specification, the partition analysis method is effective for evaluating program reliability. This paper describes the partition analysis method and reports the results obtained from an evaluation of its effectiveness. Debra J. Richardson, Lori A. Clarke |
IEEE Trans. Software Eng. | 2 |
| 1982 | A Close Look at Domain TestingabstractWhite and Cohen have proposed the domain testing method, which attempts to uncover errors in a path domain by selecting test data on and near the boundary of the path domain. The goal of domain testing is to demonstrate that the boundary is correct within an acceptable error bound. Domain testing is intuitively appealing in that it provides a method for satisfying the often suggested guideline that boundary conditions should be tested. Lori A. Clarke, Johnette Hassell, Debra J. Richardson |
IEEE Trans. Software Eng. | 1 |
| 1981 | A Partition Analysis Method to Increase Program Reliability
Debra J. Richardson, Lori A. Clarke |
ICSE | 2 |
| 1979 | Compile-Time Analysis of Data List-Format List CorrespondencesabstractFormatted input-output is available in a number of programming languages. In the most general case, the correspondence between data items and format items cannot be determined during compilation, and so it is determined dynamically during execution. However, in most pairs of data and format lists that occur in practice, determination of the correspondence is in fact possible during compilation. Although some commercial compilers make this determination, there is little published literature on the subject. In this paper, we briefly examine three areas in which compile-time determination of the data-format correspondence is useful: optimization, program validation, and automatic test data generation. A formalism for stating the problem is given, and a solution is discussed in terms of formal language theory. Using this formalism, an algorithm for determining the correspondence is given, and its application is illustrated by examples in both PL/I and Fortran. Paul W. Abrahams, Lori A. Clarke |
IEEE Trans. Software Eng. | 2 |
| 1978 | Testing: Achievements and FrustrationsabstractAn overview of some of the current program validation techniques is given. Though a variety of such techniques exist, it is now commonly agreed that program testing is an essential part of the program development process. Two testing methodologies, functional and structural, are described and a case made for combining both methodologies. Finally, a system that aids in structural testing is described. Lori A. Clarke |
COMPSAC | 1 |
| 1976 | A System to Generate Test Data and Symbolically Execute ProgramsabstractThis paper describes a system that attempts to generate test data for programs written in ANSI Fortran. Given a path, the system symbolically executes the path and creates a set of constraints on the program's input variables. If the set of constraints is linear, linear programming techniques are employed to obtain a solution. A solution to the set of constraints is test data that will drive execution down the given path. If it can be determined that the set of constraints is inconsistent, then the given path is shown to be nonexecutable. To increase the chance of detecting some of the more common programming errors, artificial constraints are temporarily created that simulate error conditions and then an attempt is made to solve each augmented set of constraints. A symbolic representation of the program's output variables in terms of the program's input variables is also created. The symbolic representation is in a human readable form that facilitates error detection as well as being a possible aid in assertion generation and automatic program documentation. Lori A. Clarke |
IEEE Trans. Software Eng. | 1 |