VLDB 2026 Research / reviewers in the wild / expert
George S. Avrunin
dblp:a/GeorgeSAvrunin
· DBLP profile ↗
33ranked-venue papers
9as first author
0since 2021 · last 2018
0000-0002-0833-8036ORCID · verified
Domains — the database's venue-derived domains; a paper can count in several
Software engineering, systems software and programming languages · 27 · 8 first-authorSystems, architecture and hardware · 2Theory of computation · 2 · 1 first-authorApplied, interdisciplinary, general and emerging computing · 2 · 1 first-authorArtificial intelligence and machine learning · 1Security and privacy · 1
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
20 papers |
Program verification · 74% Requirements engineering and software design · 14% Program analysis · 10% | |
| Computer architecture, parallel and distributed computing, and storage systems
9 papers |
Parallel and multicore computing · 34% Electronic design automation · 29% Embedded and real-time systems · 26% | |
| Theoretical computer science
7 papers |
Automated reasoning and model checking · 82% Computational geometry · 8% Automata and formal languages · 6% |
Topics — the 30 heaviest of 44, each with the papers that count most for it
| Topic | Weight | Papers | Last | Evidence papers |
|---|---|---|---|---|
Program verification › model checking
finite-state verification |
0.4 | 8 | 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 |
Program verification
model checking |
0.3 | 5 | 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 Modeling wildcard-free MPI programs for verification · PPoPP 2005 |
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 |
Requirements engineering and software design › specification
specification patterns |
0.1 | 3 | 2006 | User guidance for creating precise and accessible property specifications · SIGSOFT FSE 2006 PROPEL: an approach supporting property elucidation · ICSE 2002 Patterns in Property Specifications for Finite-State Verification · ICSE 1999 |
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 |
Program verification
equivalence checking |
0.1 | 1 | 2006 | Using model checking with symbolic execution to verify parallel numerical programs · ISSTA 2006 |
Program analysis
symbolic execution |
0.1 | 1 | 2006 | Using model checking with symbolic execution to verify parallel numerical programs · ISSTA 2006 |
Program verification › concurrent program verification
MPI program verification |
0.1 | 1 | 2005 | Modeling wildcard-free MPI programs for verification · PPoPP 2005 |
Parallel and multicore computing › parallel programming models › message passing
MPI programming |
0.1 | 1 | 2005 | Modeling wildcard-free MPI programs for verification · PPoPP 2005 |
Electronic design automation › logic synthesis › logic optimization
state minimization |
0.1 | 1 | 2005 | Modeling wildcard-free MPI programs for verification · PPoPP 2005 |
Embedded and real-time systems
real-time system analysis |
0.1 | 3 | 1998 | Analyzing Partially-Implemented Real-Time Systems · IEEE Trans. Software Eng. 1998 Analyzing Partially-Implemented Real-Time Systems · ICSE 1997 Automated Derivation of Time Bounds in Uniprocessor Concurrent Systems · IEEE Trans. Software Eng. 1994 |
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 analysis
data flow analysis |
0.0 | 2 | 1999 | Data Flow Analysis for Checking Properties of Concurrent Java Programs · ICSE 1999 A Conservative Data Flow Algorithm for Detecting All Pairs of Statement That May Happen in Parallel · SIGSOFT FSE 1998 |
Concurrent programming
concurrency analysis |
0.0 | 2 | 1998 | A Conservative Data Flow Algorithm for Detecting All Pairs of Statement That May Happen in Parallel · SIGSOFT FSE 1998 Towards Scalable Compositional Analysis · SIGSOFT FSE 1994 |
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 |
Program analysis
concurrent program analysis |
0.0 | 1 | 1999 | Data Flow Analysis for Checking Properties of Concurrent Java Programs · ICSE 1999 |
Program verification
property checking |
0.0 | 1 | 1999 | Data Flow Analysis for Checking Properties of Concurrent Java Programs · ICSE 1999 |
Automated reasoning and model checking
temporal logic specification |
0.0 | 1 | 1999 | Patterns in Property Specifications for Finite-State Verification · ICSE 1999 |
Program analysis › data flow analysis
may-happen-in-parallel analysis |
0.0 | 1 | 1998 | A Conservative Data Flow Algorithm for Detecting All Pairs of Statement That May Happen in Parallel · SIGSOFT FSE 1998 |
Computational geometry
algebraic geometry |
0.0 | 1 | 1996 | Symbolic Model Checking Using Algebraic Geometry · CAV 1996 |
Automated reasoning and model checking › model checking
symbolic model checking |
0.0 | 1 | 1996 | Symbolic Model Checking Using Algebraic Geometry · CAV 1996 |
Electronic design automation
timing analysis |
0.0 | 2 | 1994 | A Practical Technique for Bounding the Time Between Events in Concurrent Real-Time Systems · ISSTA 1993 Automated Derivation of Time Bounds in Uniprocessor Concurrent Systems · IEEE Trans. Software Eng. 1994 |
Program verification
modular verification |
0.0 | 1 | 1994 | Towards Scalable Compositional Analysis · SIGSOFT FSE 1994 |
Concurrent programming › concurrency semantics
trace equivalence |
0.0 | 1 | 1994 | Towards Scalable Compositional Analysis · SIGSOFT FSE 1994 |
Automata and formal languages
finite automata |
0.0 | 1 | 2002 | PROPEL: an approach supporting property elucidation · ICSE 2002 |
Embedded and real-time systems
real-time scheduling |
0.0 | 1 | 1993 | A Practical Technique for Bounding the Time Between Events in Concurrent Real-Time Systems · ISSTA 1993 |
Methods — techniques the papers use, named apart from their topics
model checking · 0.4finite-state verification · 0.3symbolic execution · 0.2process modeling · 0.2integer linear programming · 0.1floating-point equivalence · 0.1automated assumption generation · 0.1assume-guarantee reasoning · 0.1zero-suppressed binary decision diagrams · 0.1decomposition · 0.1binary decision diagrams · 0.1two-stage search strategy · 0.0heuristic-guided search · 0.0depth-first search · 0.0breadth-first search · 0.0regular expressions · 0.0graphical interval logic · 0.0finite-state automata · 0.0
| Year | Publication | Venue | Position |
|---|---|---|---|
| 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 | 1 |
| 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. | 6 |
| 2014 | Online Deviation Detection for Medical Processes
Stefan Christov, George S. Avrunin, Lori A. Clarke |
AMIA | 2 |
| 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 | 3 |
| 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 | 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. | 2 |
| 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. | 3 |
| 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 | 2 |
| 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 | 2 |
| 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 | 3 |
| 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 | 2 |
| 2005 | Modeling wildcard-free MPI programs for verificationabstractWe 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. Stephen F. Siegel, George S. Avrunin |
PPoPP | 2 |
| 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 | 2 |
| 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 | 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 | 2 |
| 2002 | Improving the Precision of INCA by Eliminating Solutions with Spurious CyclesabstractThe 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. Stephen F. Siegel, George S. Avrunin |
IEEE Trans. Software Eng. | 2 |
| 2000 | Improving the precision of INCA by preventing spurious cyclesabstractThe 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. Stephen F. Siegel, George S. Avrunin |
ISSTA | 2 |
| 2000 | Benchmarking Finite-State Verifiers
George S. Avrunin, James C. Corbett, Matthew B. Dwyer |
Int. J. Softw. Tools Technol. Transf. | 1 |
| 1999 | Patterns in Property Specifications for Finite-State VerificationabstractArticle Patterns in property specifications for finite-state verification Share on Authors: Matthew B. Dwyer Kansas State University, Department of Computing and Information Sciences, Manhattan, KS Kansas State University, Department of Computing and Information Sciences, Manhattan, KSView Profile , George S. Avrunin University of Massachusetts, Department of Mathematics and Statistics, Amherst, MA University of Massachusetts, Department of Mathematics and Statistics, Amherst, MAView Profile , James C. Corbett University of Hawai'i, Department of Information and Computer Science, Honolulu, HI University of Hawai'i, Department of Information and Computer Science, Honolulu, HIView Profile Authors Info & Claims ICSE '99: Proceedings of the 21st international conference on Software engineeringMay 1999 Pages 411–420https://doi.org/10.1145/302405.302672Online:16 May 1999Publication History 956citation2,118DownloadsMetricsTotal Citations956Total Downloads2,118Last 12 Months172Last 6 weeks21 Get Citation AlertsNew Citation Alert added!This alert has been successfully added and will be sent to:You will be notified whenever a record that you have chosen has been cited.To manage your alert preferences, click on the button below.Manage my AlertsNew Citation Alert!Please log in to your account Save to BinderSave to BinderCreate a New BinderNameCancelCreateExport CitationPublisher SiteGet Access Matthew B. Dwyer, George S. Avrunin, James C. Corbett |
ICSE | 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 | 2 |
| 1998 | A Conservative Data Flow Algorithm for Detecting All Pairs of Statement That May Happen in ParallelabstractInformation 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 [8], 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. Gleb Naumovich, George S. Avrunin |
SIGSOFT FSE | 2 |
| 1998 | Analyzing Partially-Implemented Real-Time SystemsabstractMost 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. 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. George S. Avrunin, James C. Corbett, Laura K. Dillon |
IEEE Trans. Software Eng. | 1 |
| 1997 | Analyzing Partially-Implemented Real-Time SystemsabstractWe propose a method for analyzing 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 partiallyimplemented 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. George S. Avrunin, James C. Corbett, Laura K. Dillon |
ICSE | 1 |
| 1996 | Symbolic Model Checking Using Algebraic Geometry
George S. Avrunin |
CAV | 1 |
| 1995 | Using Integer Programming to Verify General Safety and Liveness Properties
James C. Corbett, George S. Avrunin |
Formal Methods Syst. Des. | 2 |
| 1994 | Towards Scalable Compositional AnalysisabstractDue 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... James C. Corbett, George S. Avrunin |
SIGSOFT FSE | 2 |
| 1994 | Automated Derivation of Time Bounds in Uniprocessor Concurrent SystemsabstractThe 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.> George S. Avrunin, James C. Corbett, Laura K. Dillon, Jack C. Wileden |
IEEE Trans. Software Eng. | 1 |
| 1993 | A Practical Technique for Bounding the Time Between Events in Concurrent Real-Time SystemsabstractShowing 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. E. 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. James C. Corbett, George S. Avrunin |
ISSTA | 2 |
| 1991 | Automated Analysis of Concurrent Systems With the Constrained Expression ToolsetabstractThe constrained expression approach to analysis of concurrent software systems can be used with a variety of design and programming languages and does not require a complete enumeration of the set of reachable states of the concurrent system. The construction of a toolset automating the main constrained expression analysis techniques and the results of experiments with that toolset are reported. 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 bv the analysts queries. The strengths and weaknesses of the toolset and the approach are assessed on both theoretical and empirical grounds.> George S. Avrunin, Ugo A. Buy, James C. Corbett, Laura K. Dillon, Jack C. Wileden |
IEEE Trans. Software Eng. | 1 |
| 1988 | Towards Automating Analysis Support for Developers of Distributed SoftwareabstractA constrained expression approach to analyzing large-scale software is presented. Its advantages include broad applicability and reasonable efficiency relative to other proposed approaches. An overview is given of the current status of work on tools supporting analysis of distributed software systems. The constrained expression approach is outlined, and it is shown how it can be used to analyze distributed software. This is illustrated by a description of a recent experiment. An improved prototype toolset currently being built is described. Plans for enhanced tools and further experimentation are summarized.> Jack C. Wileden, George S. Avrunin |
ICDCS | 2 |
| 1988 | Constrained Expressions: Toward Broad Applicability of Analysis Methods for Distributed Software SystemsabstractIt is extremely difficult to characterize the possible behaviors of a distributed software system through informal reasoning. Developers of distributed systems require tools that support formal reasoning about properties of the behaviors of their systems. These tools should be applicable to designs and other preimplementation descriptions of a system, as well as to completed programs. Furthermore, they should not limit a developer's choice of development languages. In this paper we present a basis for broadly applicable analysis methods for distributed software systems. The constrained expression formalism can be used with a wide variety of distributed system development notations to give a uniform closed-form representation of a system's behavior. A collection of formal analysis techniques can then be applied with this representation to establish properties of the system. Examples of these formal analysis techniques appear elsewhere. Here we illustrate the broad applicability of the constrained expression formalism by showing how constrained expression representations are obtained from descriptions of systems in three different notations: SDYMOL, CSP, and Petri nets. Features of these three notations span most of the significant alternatives for describing distributed software systems. Our examples thus offer persuasive evidence for the broad applicability of the constrained expression approach. Laura K. Dillon, George S. Avrunin, Jack C. Wileden |
ACM Trans. Program. Lang. Syst. | 2 |
| 1986 | Constrained Expressions: Adding Analysis Capabilities to Design Methods for Concurrent Software SystemsabstractAn approach to the design of concurrent software systems based on the constrained expression formalism is described. This formalism provides a rigorous conceptual model for the semantics of concurrent computations, thereby supporting analysis of important system properties as part of the design process. This approach allows designers to use standard specification and design languages, rather than forcing them to deal with the formal model explicitly or directly. As a result, the approach attains the benefits of formal rigor without the associated pain of unnatural concepts or notations for its users. The conceptual model of concurrency underlying the constrained expression formalism treats the collection of possible behaviors of a concurrent system as a set of sequences of events. The constrained expression formalism provides a useful closed-form description of these sequences. Algorithms were developed for translating designs expressed in a wide variety of notations into these constrained expression descriptions. A number of powerful analysis techniques that can be applied to these descriptions have also been developed. George S. Avrunin, Laura K. Dillon, Jack C. Wileden, William E. Riddle |
IEEE Trans. Software Eng. | 1 |
| 1985 | Describing and Analyzing Distributed Software System DesignsabstractIn this paper we outline an approach to describing and analyzing designs for distributed software systems. A descriptive notation is introduced, and analysis techniques applicable to designs expressed in that notation are presented. The usefulness of the approach is illustrated by applying it to a realistic distributed software-system design problem involving mutual exclusion in a computer network. George S. Avrunin, Jack C. Wileden |
ACM Trans. Program. Lang. Syst. | 1 |