Abstracts of Recent Publications of George Avrunin
Designing property
specifications to improve the safety of the blood transfusion
process. Elizabeth A. Henneman, Rachel
Cobleigh, George S. Avrunin, Lori A. Clarke, Leon J. Osterweil,
and Philip L. Henneman. Transfusion Medicine
Reviews, 22(4):291-299, October 2008.
- Abstract:
Computer scientists use a number of well-established techniques that
have the potential to improve the safety of patient care processes.
One is the formal definition of the properties of a
process. Even highly regulated processes, such as laboratory
specimen acquisition and transfusion therapy, use guidelines that
may be vague, misunderstood, and hence erratically implemented.
Examining processes in a systematic way has led us to appreciate the
potential variability in routine health care practical and the impact
of this variability on patient safety in the clinical setting. The
purpose of this article is to discuss the use of innovative computer
science techniques as a means of formally defining and specifying
certain desirable goals of common, high-risk, patient care
processes. Our focus is on describing the specification of
process properties, that is, the high-level goals of a
process that ultimately dictate why a process should be performed in
a given manner.
Plug-and-play
architectural design and verification.
Shangzhu Wang, George S. Avrunin, and Lori A. Clarke. In Rogerio de
Limos, Felicita Di Giandomenico, Cristina Gacek, Henry
Muccini, and Marlon Vieira, editors, Architecting Dependable
Systems V, number 5135 in LNCS, pages 273--297. Springer, 2008.
- Abstract: In software architecture, components represent
the computational units of a system and connectors represent the
interactions among those units. Making decisions about the semantics
of these interactions is a key part of the design process. It is
often difficult, however, to choose the appropriate interaction
semantics due to the wide range of alternatives and the complexity
of the system behavior affected by those choices. Techniques such
as finite-state verification can be used to evaluate the impact of
these design choices on the overall system behavior.
This paper
presents the Plug-and-Play approach that allows designers to
experiment with alternative design choices of component interactions
in a plug-and-play manner. With this approach, connectors
representing specific interaction semantics are composed from a
library of predefined, reusable building blocks. In addition,
standard interfaces for components are defined that reduce the
impact of interaction changes on the components’ computations. This
approach facilitates design-time verification by improving the
reusability of component models and by providing reusable formal
models for the connector building blocks, thereby reducing
model-construction time for finite-state verification.
- PDF
Analyzing medical
processes. Bin Chen, George S. Avrunin, Elizabeth A. Henneman,
Lori A. Clarke, Leon J. Osterweil, and Philip L. Henneman.
In Proceedings of the 30th International Conference on Software
Engineering, pages 623-632, Leipzig, May 2008.
- Abstract:
This 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.
- PDF
Using software technology to
improve the quality of medical processes (Keynote Address).
Lori A. Clarke, George S. Avrunin, and Leon J. Osterweil.
In Companion of the 30th International Conference on Software
Engineering, pages 889-898, Leipzig, May 2008.
- Abstract:
In this paper, we describe some of the key observations resulting
from our work on using software engineering technologies to help
detect errors in medical processes. In many ways, medical
processes are similar to distributed systems in their complexity
and proneness to contain errors. We have been investigating the
application of a continuous process improvement approach to
medical processes in which detailed and semantically rich models
of the medical processes are created and then subjected to
rigorous analyses. The technologies we applied helped improve
understanding about the processes and led to the detection of
errors and subsequent improvements to those processes. This
work is still preliminary, but is suggesting new research directions
for medical process improvement, software engineering
technologies, and the applicability of these technologies to other
domains involving human-intensive processes.
- PDF
Combining symbolic
execution with model checking to verify parallel numerical
programs.Stephen F. Siegel, Anastasia Mironova, George
S. Avrunin, and Lori A. Clarke. ACM Transactions on Software
Engineering and Methodology, 17(2): Article 10, 1--34, 2008.
- Abstract:
We 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. [This is a
revised and extended version of a paper that appeared in ISSTA
2006.]
- PDF
Breaking up is hard to do: An
evaluation of automated assume-guarantee reasoning.Jamieson
M. Cobleigh, George S. Avrunin, and Lori A. Clarke. ACM
Transactions on Software Engineering and Methodology, 17(2):
Article 7, 1--52, 2008.
Abstract:
Finite-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. [This is a
revised and extended version of a paper that appeared in ISSTA
2006.]
- PDF
Verification of halting properties
for MPI programs using nonblocking operations. Stephen F. Siegel
and George S. Avrunin. To appear in Proceedings of the 14th
European PVM/MPI Users' Group Conference, Paris, October 2007.
- Abstract:
We show that many important properties of certain MPI programs can
be verified by considering only a class of executions in which all
communication takes place synchronously. In previous work,
we showed that similar results hold for MPI programs that use only
blocking communication (and avoid certain other constructs, such as
MPI_ANYSOURCE); in this paper we show that the same conclusions hold
for programs that also use the nonblocking functions
MPI_ISEND, MPI_IRECV, and MPI_WAIT. These facts can be used to
dramatically reduce the number of states explored when using model
checking techniques to verify properties such as freedom from
deadlock in such programs.
- PDF
Rigorously defining and analyzing medical
processes: An experience report. Stefan Christov, Bin Chen,
George S. Avrunin, Lori A. Clarke, Leon J. Osterweil, David Brown,
Lucinda Cassells, and Wilson Mertens. To appear in Workshop on
Model-Based Trustworthy Health Information Systems, Nashville,
September 2007.
- Abstract:
This paper describes experiences in using the precise definition of
a process for chemotherapy administration and as the basis for
analyses aimed at finding and correcting defects, leading to
improvements in efficiency and patient safety. The work is a
collaboration between Computer Science researchers and members of
the professional staff of a major regional cancer center. The work
entails the use of the Little-JIL process definition language for
creating the precise definitions, the PROPEL system for creating
precise specifications of process requirements, and the FLAVERS
systems for analyzing process definitions. The paper describes the
details of using these technologies, by demonstrating how they
have been applied to successfully identify defects in the
chemotherapy process. Although this work is still ongoing, early
experiences suggest that our approach is viable and promising. The
work has also helped us to learn about the desiderata for process
definition and analysis technologies that are expected to be more
broadly applicable to other domains.
- PDF
Engineering medical processs to improve
their safety: An experience report. Leon J. Osterweil, George
S. Avrunin, Bin Chen, Lori A. Clarke, Rachel L. Cobleigh, Elizabeth
A. Henneman, and Philip L. Henneman. To appear in Proceedings of
the IFIP WG8.1 Working Conference on Situational Method Engineering:
Fundamentals and Experiences (ME07), Geneva, September 2007.
- Abstract:
This paper describes experiences in using precise definitions of
medical processes as the basis for analyses aimed at finding and
correcting defects leading to improvements in patient safety. The
work entails the use of the Little-JIL process definition language
for creating the precise definitions, the Propel system for creating
precise specifications of process requirements, and the FLAVERS
systems for analyzing process definitions. The paper describes the
details of using these technologies, employing a blood transfusion
process as an example. Although this work is still ongoing, early
experiences suggest that our approach is viable and promising. The
work has also helped us to learn about the desiderata for process
definition and analysis technologies that are intended to be used to
engineer methods.
- PDF
Increasing patient safety
and efficiency in transfusion therapy using formal process
definitions. Elizabeth A. Henneman, George S. Avrunin, Lori
A. Clarke, Leon J. Osterweil, Chester Andrzejewski, Jr., Karen
Merrigan, Rachel Cobleigh , Kimberly Frederick, Ethan Katz-Bassett,
and Phillip L. Henneman. Transfusion Medicine Reviews,
volume 21, number 1, January 2007, pages 49-57.
- Abstract:
The administration of blood products is a common, resource-intensive,
and potentially problem-prone area that may place patients at elevated
risk in the clinical setting. Much of the emphasis in transfusion
safety has been targeted toward quality control measures in laboratory
settings where blood products are prepared for administration as well
as in automation of certain laboratory processes. In contrast, the
process of transfusing blood in the clinical setting (ie, at the point
of care) has essentially remained unchanged over the past several
decades. Many of the currently available methods for improving the
quality and safety of blood transfusions in the clinical setting rely
on informal process descriptions, such as flow charts and medical
algorithms, to describe medical processes. These informal
descriptions, although useful in presenting an overview of standard
processes, can be ambiguous or incomplete. For example, they often
describe only the standard process and leave out how to handle
possible failures or exceptions. One alternative to these informal
descriptions is to use formal process definitions, which can serve as
the basis for a variety of analyses because these formal definitions
offer precision in the representation of all possible ways that a
process can be carried out in both standard and exceptional
situations. Formal process definitions have not previously been used
to describe and improve medical processes. The use of such formal
definitions to prospectively identify potential error and improve the
transfusion process has not previously been reported. The purpose of
this article is to introduce the concept of formally defining
processes and to describe how formal definitions of blood transfusion
processes can be used to detect and correct transfusion process errors
in ways not currently possible using existing quality improvement
methods.
- PDF
User guidance for creating precise and
accessible property specifications. Rachel L. Cobleigh, George
S. Avrunin, and Lori A. Clarke. In Proceedings of the 14th ACM
Symposium on the Foundations of Software Engineering, pages
208-218, Portland, OR, November 2006.
- Abstract:
Property specifications concisely describe 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 notation that asks users a hierarchical sequence of
questions about their intended properties. The Question Tree notation
is particularly useful for helping to 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 that are using Propel and on an experimental
evaluation of the understandability of the disciplined natural
language representation.
- PDF
Breaking up is hard to do: An
investigation of decomposition for assume-guarantee reasoning.
Jamieson M. Cobleigh, George S. Avrunin, and Lori A. Clarke. In Lori
Pollock and Mauro Pezzé, editors, Proceedings of the ACM SIGSOFT
International Symposium on Software Testing and Analysis, pages
97-108, Portland, ME, July 2006.
- Abstract:
Finite-state verification techniques are often hampered by the
state-explosion problem. One proposed approach for addressing this
problem is assume-guarantee reasoning. With assume-guarantee
reasoning, a system is decomposed into subsystems and, after
appropriate assumptions are selected about the behavior of these
subsystems, the verification of the original system is accomplished
via the verification of these smaller subsystems.
We were interested in determining if assume-guarantee reasoning could
provide an advantage over monolithic verification. Taking advantage
of recent advances in assume-guarantee reasoning that automatically
generate the assumptions, we undertook a study that considered
all two-way decompositions for a set of systems and properties
using two different verifiers. By increasing the number of repeated
tasks for a system, we evaluated the decompositions as the systems
were scaled to larger sizes. In very few cases were we able to show
that assume-guarantee reasoning could verify properties on larger
systems than monolithic verification could. Additionally, on these
properties, assume-guarantee reasoning could only verify properties on
systems a few sizes larger than monolithic verification. This
negative result, although preliminary, raises doubts about the
usefulness of assume-guarantee reasoning as an effective compositional
analysis technique.
- PDF
Using model checking with symbolic execution to verify parallel
numerical programs.
Stephen F. Siegel, Anastasia Mironova, George S. Avrunin, and Lori
A. Clarke. In Lori Pollock and Mauro Pezzé, editors, Proceedings
of the ACM SIGSOFT International Symposium on Software Testing and
Analysis, pages 157-168, Portland, ME, July 2006.
- Abstract:
We 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 computation, to
establish the equivalence of the two programs.
- PDF
Property inference from
program executions. Richard M. Chang, George S. Avrunin, and Lori
A. Clarke. Technical report UM-CS-2006-26, Department of Computer
Science, University of Massachusetts, 2006.
- Abstract:
Software verification techniques require properties that define the
intended behavior of a system be specified. Generating such properties
is often very difficult and serves as an impediment to the adoption of
verification techniques. Techniques that leverage program executions
to infer these properties are a promising avenue for automatically
generating these properties. In this paper, we propose a property
inference approach that leverages event traces derived from program
executions to efficiently infer properties that are subtle variations
of commonly occurring properties. We define inference
templates that represent sets of these properties and describe
our inference algorithm that refines these templates based on event
traces.
- PDF
Verification support for plug-and-play architectural design.
Shangzhu Wang, George S. Avrunin, and Lori A. Clarke. Extended
abstract to appear in Proceedings the Workshop on the Role of
Software Architecture in Testing and Analysis, Portland, ME, July 2006.
- Abstract:
In software architecture, components are intended to represent the
computational units of the system and connectors are intended to
represent the interactions between those units. Choosing the semantics
of these interactions is a key part of the design process, but the
wide range of alternatives from which to choose and the complexity of
the behavior affected by the choices makes it difficult to get them
right.
We propose an approach in which connectors with particular semantics
are constructed from a library of pre-defined building blocks and
changes in the semantics of a connector can be accomplished by
replacing some of its building blocks with others. In our approach, a
small set of standard interfaces allows components to communicate with
each other through a wide variety of connectors, so the impact on
components for even substantial changes in the semantics of the
connectors is minimized.
In this paper, we focus on the way this approach supports design-time
verification to provide feedback about the correctness of the design.
By enhancing the re-use of models of both components and connectors,
this approach has the potential to significantly reduce the cost of
verification as a design evolves.
- Extended abstract
(PDF)
- Full technical report (PDF)
Architectural building blocks for
plug-and-play system design. Shangzhu Wang, George S. Avrunin, and
Lori A. Clarke. In Ian Gorton, George T. Heineman, Ivica Crnkovic,
Heinz W. Schmidt, Judith A. Stafford, Clemens A. Szyperski, and Kurt
Wallnau, editors, Proceedings of the 9th International SIGSOFT
Symposium on Component-Based Software Engineering (CBSE 2006),
number 4063 in LNCS, pages 98--113, Västerås, Sweden, June
2006.
- Abstract:
One of the distinguishing features of distributed systems is the
importance of the interaction mechanisms that are used to define how
the sequential components interact with each other. Given the
complexity of the behavior that is being described and the large
design space of various alternatives, choosing appropriate interaction
mechanisms is difficult. In this paper, we propose a component-based
specification approach that allows designers to experiment with
alternative interaction semantics. Our approach is also integrated
with design-time verification to provide feedback about the
correctness of the overall system design. In this approach, connectors
representing specific interaction semantics are composed from reusable
building blocks. Standard communication interfaces for components are
defined to reduce the impact of changing interactions on components'
computations. The increased reusability of both components and
connectors also allows savings at model-construction time for
finite-state verification.
- PDF
- complete tech report
Managing space for finite-state
verification. Jianbin Tan, George S. Avrunin, and Lori A. Clarke.
In Proceedings of the 28th International Conference on Software
Engineering, pages 152-161, Shanghai, May 2006.
- Abstract:
Finite-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 so-called
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. Approaches that use symbolic data structures to represent
the examined state space appear to provide an important
optimization. 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.
- PDF
Automatic fault tree derivation from
Little-JIL process definitions. Bin Chen, George S. Avrunin, Lori
A. Clarke, and Leon J. Osterweil. In Qing Wang, Dietmar Pfahl, David
M. Raffo, and Paul Werinck, editors, Software Process Change:
Proceedings of The
International Software Process Workshop and the International Workshop
on Software Process Simulation and Modeling (SPW/ProSim 2006),
number 3966 in LNCS, 150--158, Shanghai, May 2006.
- Abstract:
Defects in safety critical processes can lead to accidents that result
in harm to people or damage to property. Therefore, it is important to
find ways to detect and remove defects from such processes. Earlier
work has shown that Fault Tree Analysis (FTA) can be effective in
detecting safety critical process defects. Unfortunately, it is
difficult to build a comprehensive set of Fault Trees for a complex
process, especially if this process is not completely
well-defined. The Little-JIL process definition language has been
shown to be effective for defining complex processes clearly and
precisely at whatever level of granularity is desired. In this
work, we present an algorithm for generating Fault Trees from
Little-JIL process definitions. We demonstrate the value of this work
by showing how FTA can identify safety defects in the process from
which the Fault Trees were automatically derived.
- PDF
Complex medical processes as context for
embedded systems.
George S. Avrunin, Lori A. Clakre, Elizabeth A. Henneman, and Leon
J. Osterweil. In Proceedings of the Workshop on
Innovative Techniqes for Certification of Embedded Systems,
San Jose, April 4, 2006. (Proceedings published in SIGBED
Review 3(4), 2006.)
- Abstract:
Certification is aimed at ensuring that the requirements for a
system are appropriate and complete and that the system satisfies
those requirements. Even for cases where the requirements are
relatively clear and unchanging and the main issue is making sure that
the system satisfies them, certification presents a variety of
difficult problems, and the presence of significant software
components in the system exacerbates many of these difficulties.
Certification must address the interaction of the software with the
rest of the system (and with users), the correspondence between the
software and the requirements, and the potential behavior of software
that may have an extremely large number of possible inputs and
executions. A growing number of embedded systems, moreover, are
intended for use in complex processes where the requirements for the
system depend critically on the details of the process. If
certification is to be useful for such systems, it must take the
details of the process into account. We briefly describe our current
work related to the description and analysis of complex medical
processes and discuss ways in which it may
provide a basis for more complete understanding of the behavior of
devices in the context of the processes in which they are used, and
thus for certification methods for sophisticated embedded systems.
- PDF
Modeling wildcard-free MPI
programs for verification. Stephen F. Siegel and George
S. Avrunin. In Proceedings of the ACM SIGPLAN Symposium on
Principles and Practices of Parallel Programming, pages
95-106, Chicago, June 2005.
- Abstract: We give several theorems that can be used to
substantially reduce the state space that must be considered in
applying finite-state verification techniques, such as model checking,
to parallel programs written using a subset of MPI. We illustrate the
utility of these theorems by applying them to a small but realistic
example.
- PDF
Finite-state verification for high performance computing.
George S. Avrunin, Stephen F. Siegel, and Andrew R. Siegel. In
Proceedings of the Second International Workshop on Software
Engineering for High Performance Computing System Applications,
pages 68-73,
St. Louis, May 2005.
- Abstract:
In this paper, we discuss some preliminary results in applying finite-state
verification techniques to high performance parallel codes, with a particular
emphasis on scientific programs that employ the widely-used Message Passing
Interface (MPI). These results suggest that such techniques may have
significant potential for improving both the productivity of developers of
parallel scientific programs and the quality of those programs. We also
briefly sketch some of the research issues that must be addressed to achieve
that potential.
- PDF
Process programming to support medical
safety: A case study on blood transfusion. Lori A. Clarke, Yao
Chen, George S. Avrunin, Bin Chen, Rachel Cobleigh, Kim Frederick,
Elizabeth A. Henneman, and Leon J. Osterweil. In Proceedings of
the Software Process Workshop, Beijing, May 2005, LNCS volume
3840, pages 347-359..
- Abstract:
Medical errors are now recognized as a major cause of untimely deaths
or other adverse medical outcomes. To reduce the number of medical
errors, the Medical Safety Project at the University of Massachusetts
is exploring using a process programming language to define medical
processes, a requirements elicitation framework for specifying
important medical properties, and finite-state verification tools to
evaluate whether the process definitions adhere to these properties.
In this paper, we describe our experiences to date. Although our
findings are preliminary, we have found that defining and evaluating
processes helps to detect weaknesses in these processes and leads to
improved medical processes definitions.
- PDF
Heuristic-guided counterexample search in
FLAVERS. Jianbin Tan, George S. Avrunin, Lori A. Clarke, Shlomo
Zilberstein, and Stefan Leue. In Proceedings of the
12th ACM Symposium on the Foundations of Software Engineering,
pages 201-210, Newport Beach, CA, November 2004.
- Abstract: One 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.
- PDF
Heuristic-based model refinement for
FLAVERS. Jianbin Tan, George S. Avrunin, and Lori
A. Clarke. In Proceedings of the 26th International
Conference on Software Engineering, pages 635-644, Edinburgh, May
2004.
- Abstract:
FLAVERS 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.
- PDF
Verification of MPI-based software
for scientific computation Stephen F. Siegel and
George S. Avrunin. In Proceedings of the 11th
International SPIN Workshop on Model Checking Software,
Barcelona, April 2004, LNCS volume 2989, pages 286-303.
- Abstract:
We explore issues related to the application of finite-state
verification techniques to scientific computation software employing
the widely-used Message-Passing Interface (MPI). Many of the features
of MPI that are important for programmers present significant
difficulties for model checking. In this paper, we examine a small
parallel program that computes the evolution in time of a discretized
function u defined on a 2-dimensional domain and governed by the
diffusion equation. Although this example is simple, it makes use of
many of the problematic features of MPI. We discuss the modeling of
these features and use Spin and INCA to verify several
correctness properties for various configurations of this program.
Finally, we describe some general theorems that can be used to justify
simplifications in finite-state models of MPI programs and that
guarantee certain properties must hold for any program using only a
particular subset of MPI.
- PDF
- PostScript
From natural language requirements to rigorous property
specifications. Rachel L. Smith, George S. Avrunin, and Lori
A. Clarke. In Workshop on Software Engineering for Embedded
Systems (SEES 2003): From Requirements to Implementation,
pages 40-46, Chicago, IL, September 2003.
- Abstract:
Property specifications concisely describe selected aspects of
what a software system is supposed to do. It is surprisingly
difficult to write these properties correctly. Although there
are rigorous mathematical formalisms for representing
properties, 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. The Propel
tool 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
"disciplined" natural language, decision trees, and
finite-state automata, allowing the developer to easily move
between these representations.
- PDF
Analysis of MPI programs. Stephen F. Siegel and George
Avrunin. Technical Report UM-CS-2003-036, Department of Computer
Science, University of Massachusetts Amherst. 2003.
- Abstract:
We investigate the application of formal verification techniques to
parallel programs that employ the Message Passing Interface (MPI). We
develop a formal model of a subset of MPI, and then prove a number of
theorems about that model that ameliorate or eliminate altogether the
state explosion problem. As an example, we show that if one wishes to
verify freedom from deadlock, it suffices to consider only synchronous
executions.
- PDF
PROPEL: An approach supporting property elucidation. Rachel
L. Smith, George S. Avrunin, Lori A. Clarke, and Leon
J. Osterweil. In Proceedings of the 24th International Conference
on Software Engineering, Orlando,
FL, May 2002, pages 11-21.
- Abstract:
Property 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.
- PostScript
- Gzipped PostScript
- PDF
A conservative data flow algorithm for
detecting all pairs of statements that may happen in parallel for
rendezvous-based concurrent programs. Gleb Naumovich and
George S. Avrunin.
- Abstract:
Information about which pairs of statements in a concurrent program
can execute in parallel is important for optimizing and debugging
programs, for detecting anomalies, and for improving the accuracy of
data flow analysis. In this paper, we describe a new data flow
algorithm that finds a conservative approximation of the set of all
such pairs for programs that use the rendezvous model of
communication. We have carried out a comparison of the precision of
our algorithm and that of the most precise of the earlier approaches,
Masticola and Ryder's non-concurrency analysis, using a sample of 159
concurrent Ada programs that includes the collection assembled by
Masticola and Ryder. For these examples, our algorithm was almost
always more precise than non-concurrency analysis, in the sense that
the set of pairs identified by our algorithm as possibly happening in
parallel is a proper subset of the set identified by non-concurrency
analysis. In 140 cases, we were able to use an exponential-time
reachability analysis to compute the set of pairs of statements that
may happen in parallel. For these cases, there were a total of only
25 pairs identified by our polynomial-time algorithm that were not
identified by the reachability analysis.
- PostScript
Improving the precision of INCA by eliminating
solutions with spurious cycles. Stephen F. Siegel and
George S. Avrunin. IEEE Transactions on Software
Engineering, volume 28, number 2, February 2002, pages 115-128.
- Abstract:
The Inequality Necessary Condition Analyzer (INCA) is a finite-state
verification tool that has been able to check properties of some
very large concurrent systems. INCA checks a property of a
concurrent system by generating a system of inequalities that must
have integer solutions if the property can be violated. There may,
however, be integer solutions to the inequalities that do not
correspond to an execution violating the property. INCA thus accepts
the possibility of an inconclusive result in exchange for greater
tractability. We describe here a method for eliminating one of the
two main sources of these inconclusive results.
- PostScript
- PDF
Improving the precision of INCA by preventing
spurious cycles. Stephen F. Siegel and
George S. Avrunin. In M. J. Harrold, editor,
Proceedings of the International Symposium on Software Testing and
Analysis (ISSTA '00), Portland, OR, August 2000, pages 191-200.
- Abstract:
The Inequality Necessary Condition Analyzer (INCA) is a finite-state
verification tool that has been able to check properties of some
very large concurrent systems. INCA checks a property of a
concurrent system by generating a system of inequalities that must
have integer solutions if the property can be violated. There may,
however, be integer solutions to the inequalities that do not
correspond to an execution violating the property. INCA thus accepts
the possibility of an inconclusive result in exchange for greater
tractability. We describe here a method for eliminating one of the
two main sources of these inconclusive results.
- PostScript
- Gzipped Postscript
Benchmarking finite-state verifiers.
George S. Avrunin, James C. Corbett, and Matthew
B. Dwyer. Software Tools for Technology Transfer,
2(4):317-320, 2000.
- Abstract:
A variety of largely automated methods have been proposed for
finite-state verification of software systems. Although anecdotal
accounts of success are widely reported, there is very little
empirical data on the relative strengths and weaknesses of those
methods across a broad range of analysis questions and systems. But
this information is critical for the transfer of the technology from
research to practice. We review some of the problems involved in
obtaining this information and suggest several ways in which the
community can facilitate empirical evaluation of finite-state
verification tools.
- PostScript
- Gzipped Postscript
Comparing finite-state verification
techniques for concurrent software George S. Avrunin, James
C. Corbett, Matthew B. Dwyer, Corina S. Pasareanu, and Stephen
F. Siegel. Technical Report UM-CS-1999-069, Department of Computer
Science, University of Massachusetts at Amherst.
- Abstract:
Finite-state verification provides software developers with a powerful
tool to detect errors. Many different analysis techniques have been
proposed and implemented, and the limited amount of empirical data
available shows that the performance of these techniques varies
enormously from system to system. Before this technology can be
transferred from research to practice, the community must provide
guidance to developers on which methods are best for different kinds
of systems. We describe a substantial case study in which several
finite-state verification tools were applied to verify properties of
the Chiron user interface system, a real Ada program of substantial
size. Our study provides important data comparing these different
analysis methods, and points out a number of difficulties in
conducting fair comparisons of finite-state verification tools.
- PostScript
- Gzipped Postscript
An efficient algorithm for computing MHP information for
concurrent Java programs. Gleb Naumovich, George S. Avrunin,
and Lori A. Clarke. In O. Nierstrasz and M. Lemoine,
editors, Software Engineering--ESEC/FSE '99. 7th European Software
Engineering Conference held jointly with the 7th ACM SIGSOFT Symposium
on the Foundations of Software Engineering, volume 1687 of
Lecture Notes in Computer Science,
pages 338-354, Toulouse, September 1999. Springer-Verlag.
- Abstract:
Information about which statements in a concurrent program may
happen in parallel (MHP) has a number of important applications.
It can be used in program optimization, debugging, program
understanding tools, improving the accuracy of data flow approaches,
and detecting synchronization anomalies, such as data races. In
this paper we propose a data flow algorithm for computing a
conservative estimate of the MHP information for Java programs
that has a worst-case time bound that is cubic in the size of the
program. We present a preliminary experimental comparison between
our algorithm and a reachability analysis algorithm that determines
the "ideal" static MHP information for concurrent Java programs.
This initial experiment indicates that our data flow algorithm
precisely computed the ideal MHP information in the vast majority
of cases we examined. In the two out of 29 cases where the MHP
algorithm turned out to be less than ideally precise, the number of
spurious pairs was small compared to the total number of ideal
MHP pairs.
- PostScript
- PostScript of full technical report
- Gzipped PostScript of full technical report
Patterns in Property Specifications
for Finite-State Verification. Matthew B. Dwyer, George
S. Avrunin, and James C. Corbett. In Proceedings of the 21st
International Conference on Software Engineering, Los
Angeles, May 1999, 411-420.
- Abstract:
Model checkers and other finite-state verification tools allow
developers to detect certain kinds of errors automatically.
Nevertheless, the transition of this technology from research to
practice has been slow. While there are a number of potential causes
for reluctance to adopt such formal methods, we believe that a
primary cause is that practitioners are unfamiliar
with specification processes, notations, and strategies. In a recent
paper, we proposed a pattern-based approach to the presentation,
codification and reuse of property specifications for finite-state
verification. Since then, we have carried out a survey of available
specifications, collecting over 500 examples of property
specifications. We found that most are instances of our proposed
patterns. Furthermore, we have updated our pattern system to
accommodate new patterns and variations of existing patterns
encountered in this survey. This paper reports the results of the
survey and the current status of our pattern system.
- PostScript
- Gzipped PostScript
Data flow analysis for checking properties of
concurrent Java programs. Gleb Naumovich, George S. Avrunin,
and Lori A. Clarke. In Proceedings of the
21st International Conference on Software Engineering, Los
Angeles, May 1999, 399-410.
- Abstract:
In 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.
- PostScript
- Gzipped PostScript
A conservative data flow algorithm for
detecting all pairs of statements that may happen in
parallel. Gleb Naumovich and George S. Avrunin.
In Proceedings of the 6th International
Symposium on the Foundations of Software Engineering,
November 1998, pages 24-34. ACM Press.
- Abstract:
Information about which pairs of statements in a concurrent program
can execute in parallel is important for optimizing and debugging
programs, for detecting anomalies, and for improving the accuracy of
data flow analysis. In this paper, we describe a new data flow
algorithm that finds a conservative approximation of the set of all
such pairs. We have carried out an initial comparison of the
precision of our algorithm and that of the most precise of the earlier
approaches, Masticola and Ryder's non-concurrency analysis, using a
sample of 159 concurrent Ada programs that includes the collection
assembled by Masticola and Ryder. For these examples, our algorithm
was almost always more precise than non-concurrency analysis, in the
sense that the set of pairs identified by our algorithm as possibly
happening in parallel is a proper subset of the set identified by
non-concurrency analysis. In 132 cases, we were able to use
reachability analysis to determine exactly the set of pairs of
statements that may happen in parallel. For these cases, there were a
total of only 10 pairs identified by our algorithm that cannot
actually happen in parallel.
- PostScript
- Gzipped PostScript
Analyzing partially-implemented real-time
systems.
G. S. Avrunin, J. C. Corbett, and L. K. Dillon. IEEE
Trans. Softw. Eng., 24(8):602-614, 1998. (This is a revised and
expanded version of a paper of the same title appearing in the
Proceedings of the International Conference on Software
Engineering, Boston, May 1997, 228-238.)
- Abstract. Most analysis methods for real-time systems assume
that all the components of the system are at roughly the same stage of
development and can be expressed in a single notation, such as a
specification or programming language. There are, however, many
situations in which developers would benefit from tools that could
analyze partially-implemented systems, those for which some components
are given only as high-level specifications while others are fully
implemented in a programming language. In this paper, we propose a
method for analyzing such partially-implemented real-time systems.
Here we consider real-time concurrent systems for which some
components are implemented in Ada and some are partially specified
using regular expressions and Graphical Interval Logic (GIL), a
real-time temporal logic. We show how to construct models of the
partially-implemented systems that account for such properties as
run-time overhead and scheduling of processes, yet support tractable
analysis of nontrivial programs. The approach can be fully automated,
and we illustrate it by analyzing a small example.
- PostScript
- Gzipped PostScript
Property specification patterns for
finite-state verification. Matthew B. Dwyer, George. S. Avrunin,
and James C. Corbett. In Proceedings of FMSP '98, The Second
Workshop on Formal Methods in Software Practice (Mark Ardis,
ed.), March 1998, pages 7-15. ACM Press.
- Abstract:
Finite-state verification (e.g., model checking) provides a powerful
means to detect errors that are often subtle and difficult to
reproduce. Nevertheless, the transition of this technology from
research to practice has been slow. While there are a number of
potential causes for reluctance in adopting such formal methods in
practice, we believe that a primary cause rests with the fact that
practitioners are unfamiliar with specification processes,
notations, and strategies. Recent years have seen growing success
in leveraging experience with design and coding patterns. We
propose a pattern-based approach to the presentation, codification and
reuse of property specifications for finite-state verification.
- PostScript
- Gzipped PostScript
Applying static analysis to software
architectures. Gleb Naumovich, George S. Avrunin, Lori A. Clarke
and Leon J. Osterweil. In ESEC/FSE '97 (M. Jazayeri and
H. Schauer, eds.), Springer-Verlag LNCS vol. 1301, 1997, 77-93,
Zurich, Sept. 1997.
- Abstract.
In this paper we demonstrate how static concurrency analysis
techniques can be used to verify application-specific properties of
an architectural description. Specifically, we use two concurrency
analysis tools, INCA, a flow equation based tool, and FLAVERS, a
data flow analysis based tool, to detect errors or prove properties
of a Wright architectural description of the gas station problem.
Although both these tools are research prototypes, they illustrate
the potential of static analysis for verifying that architectural
descriptions adhere to important properties, for detecting
problems early in the lifecycle, and for helping developers understand
the changes that need to be made to satisfy the properties being
analyzed.
- PostScript
- Gzipped PostScript
An empirical comparison of static
concurrency analysis techniques. A. T. Chamillard, Lori A. Clarke,
and George. S. Avrunin. Technical Report 96-84, Department of
Computer Science, University of Massachusetts at Amherst, (Revised
May, 1997).
- Abstract:
This paper reports the results of an empirical comparison of several
static analysis tools for evaluating properties of concurrent
systems and also reports the results of our attempts to build
predictive models for each of the tools based on program and
property characteristics. Although this area seems well-suited
to empirical investigation, we encountered a number of
significant issues that make designing a sound and unbiased
study surprisingly difficult. These experimental design issues
are also discussed in this paper.
- PostScript
- Gzipped PostScript
Symbolic model checking using algebraic
geometry.
G. S. Avrunin. Computer-Aided Verification, 8th
International Conference, CAV '96 (Rajeev Alur and Thomas
A. Henzinger, eds.), Springer-Verlag LNCS vol. 1102, 1996, 26-37.
- Abstract. In this paper, I show that methods from computational
algebraic geometry can be used to carry out symbolic model checking
using an encoding of Boolean sets as the common zeros of sets of
polynomials. This approach could serve as a useful supplement to
symbolic model checking methods based on Ordered Binary Decision
Diagrams and may provide important theoretical insights by bringing
the powerful mathematical machinery of algebraic geometry to bear on
the model checking problem.
- PostScript
- Gzipped PostScript
Using integer programming to verify general
safety and liveness properties. J. C. Corbett and
G. S. Avrunin. Formal Methods in System Design, 6:97-123,
1995.
- Abstract. Analysis of concurrent systems is plagued by the
state explosion problem. The constrained expression analysis
technique uses necessary conditions, in the form of linear
inequalities, to verify certain properties of concurrent systems, thus
avoiding the enumeration of the potentially explosive number of
reachable states of the system. This technique has been shown to be
capable of verifying simple safety properties, like freedom from
deadlock, that can be expressed in terms of the number of certain
events occurring in a finite execution, and has been successfully used
to analyze a variety of concurrent software systems. We extend this
technique to the verification of more complex safety properties that
involve the order of events and to the verification of liveness
properties, which involve infinite executions.
- PostScript
- Gzipped PostScript
Towards scalable compositional
analysis.
J. C. Corbett and G. S. Avrunin. Proc. Second ACM SIGSOFT
Symposium on the Foundations of Software Engineering,
December 1994, 53-61.
- Abstract. Due to the state explosion problem, analysis of large
concurrent programs will undoubtedly require compositional techniques.
Existing compositional techniques are based on the idea of replacing
complex subsystems with simpler processes with the same interfaces to
their environments, and using the simpler processes to analyze the
full system. Most algorithms for proving equivalence between two
processes, however, require enumerating the states of both processes.
When part of a concurrent system consists of many highly coupled
processes, it may not be possible to decompose the system into
components that are both small enough to enumerate and have simple
interfaces with their environments. In such cases, analysis of the
systems by standard methods will be infeasible.
In this paper, we describe a technique for proving trace equivalence of
deterministic and divergence-free systems without
enumerating their states. (For deterministic systems, essentially all
the standard notions of process equivalence collapse to trace
equivalence, so this technique also establishes failures equivalence,
observational equivalence, etc.) Our approach is to generate necessary
conditions for the existence of a trace of one system that is not a trace
of the other; if the necessary conditions cannot be satisfied the systems
are equivalent. We have implemented the technique and used it to
establish the equivalence of some systems with state spaces too large for
enumeration to be practical.
- PostScript
- Gzipped PostScript
Automated derivation of time bounds in
uniprocessor concurrent systems. G. S. Avrunin, J. C. Corbett,
L. K. Dillon, and J. C. Wileden. IEEE Trans. Softw. Eng.,
20(9):708-719, 1994.
- Abstract. The successful development of complex real-time systems
depends on analysis techniques that can accurately assess the timing
properties of those systems. This paper describes a technique for deriving
upper and lower bounds on the time that can elapse between two given events
in an execution of a concurrent software system running on a single
processor under arbitrary scheduling. The technique involves generating
linear inequalities expressing conditions that must be satisfied by all
executions of such a system and using integer programming methods to find
appropriate solutions to the inequalities. The technique does not require
construction of the state space of the system and its feasibility has been
demonstrated by using an extended version of the constrained expression
toolset to analyze the timing properties of some concurrent systems with
very large state spaces.
- PostScript
- Gzipped PostScript
Real-time state machines and circuit
verification with modal functions. Victor Yodaiken and
George S. Avrunin. Technical Report 93-04, Department of
Computer Science, University of Massachusetts at Amherst, 1993.
- Abstract: Recent work on automated verification of
circuits has highlighted the problems of concise representation,
composition, and manipulation of state machines with large state sets.
In this paper, we show how state machines that capture both the
real-time behavior and connective structure of circuits can be
defined, parameterized, composed, and refined, using modal functions.
Our work is currently focused on "by hand" methods of verification as
a step towards automated methods.
- PostScript
- Gzipped PostScript
Nilpotency degree of cohomology rings in
characteristic two. George S. Avrunin and
Jon F. Carlson. Proc. Amer. Math. Soc., 118(2):339-343,
1993.
- Abstract: In this paper, we consider the cohomology ring of a
finite 2-group with coefficients in a field of characteristic two. We
show that, for any positive integer n, there exists a 2-group
whose cohomology ring has elements of nilpotency degree n + 1
and all smaller degrees.
- PostScript
- Gzipped PostScript
A practical method for bounding the time
between events in concurrent systems. J. C. Corbett and
G. S. Avrunin. In Proceedings of the 1993 International Symposium
on Software Testing and Analysis (ISSTA), June 1993, pages
110-116. ACM Press.
(Online version is the August 1993
revision of the paper appearing in the conference proceedings.)
- Abstract. Showing that concurrent systems satisfy timing
constraints on their behavior is difficult, but may be essential for
critical applications. Most methods are based on some form of
reachability analysis and require construction of a state space of
size that is, in general, exponential in the number of components in
the concurrent system. In an earlier paper with L. K. Dillon and
J. C. Wileden, we described a technique for finding bounds on the time
between events without enumerating the state space, but the technique
applies chiefly to the case of logically concurrent systems executing
on a uniprocessor, in which events do not overlap in time. In this
paper, we extend that technique to obtain upper bounds on the time
between events in maximally parallel concurrent systems. Our method
does not require construction of the state space and the results of
preliminary experiments show that, for at least some systems with
large state spaces, it is quite tractable. We also briefly describe
the application of our method to the case in which there are multiple
processors, but several processes run on each processor.
- PostScript
- Gzipped PostScript
Sharpening bounds on the time between
events in maximally parallel systems. G. S. Avrunin.
Technical Report 92-69, Department of Computer Science, University of
Massachusetts at Amherst, 1992.
- Abstract: A recent paper describes a method for obtaining
bounds on the time that can elapse between two given events in an
execution of a concurrent software system running on a single
processor under arbitrary scheduling. The technique involves
generating linear inequalities expressing conditions that must be
satisfied by all executions of such a system and using integer
programming methods to find appropriate solutions to the inequalities.
Corbett has extended this approach to obtain upper bounds on the time
between events in executions of multi-processor concurrent systems in
which each process proceeds unless forced to wait to communicate with
another, the case of maximal parallelism, and processes
communicate by synchronous message passing. Corbett's method does not
strictly enforce the maximal parallelism assumption, however, and may
thus give poor (though valid) bounds in some cases. In this paper, I
show how to modify Corbett's method to obtain sharper bounds.
- PostScript
- Gzipped PostScript
Automated analysis of concurrent systems
with the constrained expression toolset. G. S. Avrunin,
U. A. Buy, J. C. Corbett, L. K. Dillon, and J. C. Wileden. IEEE
Trans. Softw. Eng., 17(11):1204-1222, 1991.
- Abstract: The constrained expression approach to
analysis of concurrent software systems has several attractive
features, including the facts that it can be used with a variety of
design and programming languages and that it does not require a
complete enumeration of the set of reachable states of the concurrent
system. This paper reports on the construction of a toolset
automating the main constrained expression analysis techniques and the
results of experiments with that toolset. The toolset is capable of
carrying out completely automated analyses of a variety of concurrent
systems, starting from source code in an Ada-like design language and
producing system traces displaying the properties represented by the
analyst's queries. It has been successfully used with designs that
involve hundreds of concurrent processes.
- PostScript
- Gzipped PostScript
Back to George Avrunin's Recent Publications
George Avrunin <avrunin@math.umass.edu>