Demonstration venue · read-only. Every page can be browsed; the buttons that would change it are switched off. Create an account to run TaxoReview on your own data.

George S. Avrunin

dblp:a/GeorgeSAvrunin · DBLP profile ↗
← Back
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

TopicWeightPapersLastEvidence papers
Program verification › model checking
finite-state verification
0.482008
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.352008
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.122008
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.132006
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.122008
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.122006
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.112006
Using model checking with symbolic execution to verify parallel numerical programs · ISSTA 2006
Program analysis
symbolic execution
0.112006
Using model checking with symbolic execution to verify parallel numerical programs · ISSTA 2006
Program verification › concurrent program verification
MPI program verification
0.112005
Modeling wildcard-free MPI programs for verification · PPoPP 2005
Parallel and multicore computing › parallel programming models › message passing
MPI programming
0.112005
Modeling wildcard-free MPI programs for verification · PPoPP 2005
Electronic design automation › logic synthesis › logic optimization
state minimization
0.112005
Modeling wildcard-free MPI programs for verification · PPoPP 2005
Embedded and real-time systems
real-time system analysis
0.131998
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.012004
Heuristic-guided counterexample search in FLAVERS · SIGSOFT FSE 2004
Program verification › refinement
model refinement
0.012004
Heuristic-Based Model Refinement for FLAVERS · ICSE 2004
Automated reasoning and model checking › model checking
counterexample generation
0.012004
Heuristic-guided counterexample search in FLAVERS · SIGSOFT FSE 2004
Automated reasoning and model checking › model checking
finite-state verification
0.012004
Heuristic-guided counterexample search in FLAVERS · SIGSOFT FSE 2004
Program analysis
data flow analysis
0.021999
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.021998
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.012008
Combining symbolic execution with model checking to verify parallel numerical programs · ACM Trans. Softw. Eng. Methodol. 2008
Program analysis
concurrent program analysis
0.011999
Data Flow Analysis for Checking Properties of Concurrent Java Programs · ICSE 1999
Program verification
property checking
0.011999
Data Flow Analysis for Checking Properties of Concurrent Java Programs · ICSE 1999
Automated reasoning and model checking
temporal logic specification
0.011999
Patterns in Property Specifications for Finite-State Verification · ICSE 1999
Program analysis › data flow analysis
may-happen-in-parallel analysis
0.011998
A Conservative Data Flow Algorithm for Detecting All Pairs of Statement That May Happen in Parallel · SIGSOFT FSE 1998
Computational geometry
algebraic geometry
0.011996
Symbolic Model Checking Using Algebraic Geometry · CAV 1996
Automated reasoning and model checking › model checking
symbolic model checking
0.011996
Symbolic Model Checking Using Algebraic Geometry · CAV 1996
Electronic design automation
timing analysis
0.021994
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.011994
Towards Scalable Compositional Analysis · SIGSOFT FSE 1994
Concurrent programming › concurrency semantics
trace equivalence
0.011994
Towards Scalable Compositional Analysis · SIGSOFT FSE 1994
Automata and formal languages
finite automata
0.012002
PROPEL: an approach supporting property elucidation · ICSE 2002
Embedded and real-time systems
real-time scheduling
0.011993
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
YearPublicationVenuePosition
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
AMIA1
2017 Iterative Analysis to Improve Key Properties of Critical Human-Intensive Processes: An Election Security Example
abstract
In 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
AMIA2
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
SEKE3
2008 Analyzing medical processes
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.
Bin Chen 0018, George S. Avrunin, Elizabeth A. Henneman, Lori A. Clarke, Leon J. Osterweil, Philip L. Henneman
ICSE2
2008 Breaking up is hard to do: An evaluation of automated assume-guarantee reasoning
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.
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 programs
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.
Stephen F. Siegel, Anastasia Mironova, George S. Avrunin, Lori A. Clarke
ACM Trans. Softw. Eng. Methodol.3
2006 Managing space for finite-state verification
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 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
ICSE2
2006 Breaking up is hard to do: an investigation of decomposition for assume-guarantee reasoning
abstract
Finite-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
ISSTA2
2006 Using model checking with symbolic execution to verify parallel numerical programs
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 execution, to establish the equivalence of the two programs.
Stephen F. Siegel, Anastasia Mironova, George S. Avrunin, Lori A. Clarke
ISSTA3
2006 User guidance for creating precise and accessible property specifications
abstract
Property 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 FSE2
2005 Modeling wildcard-free MPI programs for verification
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.
Stephen F. Siegel, George S. Avrunin
PPoPP2
2004 Heuristic-Based Model Refinement for FLAVERS
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.
Jianbin Tan, George S. Avrunin, Lori A. Clarke
ICSE2
2004 Heuristic-guided counterexample search in FLAVERS
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.
Jianbin Tan, George S. Avrunin, Lori A. Clarke, Shlomo Zilberstein, Stefan Leue
SIGSOFT FSE2
2002 PROPEL: an approach supporting property elucidation
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.
Rachel L. Smith, George S. Avrunin, Lori A. Clarke, Leon J. Osterweil
ICSE2
2002 Improving the Precision of INCA by Eliminating Solutions with Spurious Cycles
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.
Stephen F. Siegel, George S. Avrunin
IEEE Trans. Software Eng.2
2000 Improving the precision of INCA by preventing spurious cycles
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.
Stephen F. Siegel, George S. Avrunin
ISSTA2
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 Verification
abstract
Article 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
ICSE2
1999 Data Flow Analysis for Checking Properties of Concurrent Java Programs
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.
Gleb Naumovich, George S. Avrunin, Lori A. Clarke
ICSE2
1998 A Conservative Data Flow Algorithm for Detecting All Pairs of Statement That May Happen in Parallel
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 [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 FSE2
1998 Analyzing Partially-Implemented Real-Time Systems
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. 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 Systems
abstract
We 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
ICSE1
1996 Symbolic Model Checking Using Algebraic Geometry
George S. Avrunin
CAV1
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 Analysis
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...
James C. Corbett, George S. Avrunin
SIGSOFT FSE2
1994 Automated Derivation of Time Bounds in Uniprocessor Concurrent Systems
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.>
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 Systems
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. 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
ISSTA2
1991 Automated Analysis of Concurrent Systems With the Constrained Expression Toolset
abstract
The 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 Software
abstract
A 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
ICDCS2
1988 Constrained Expressions: Toward Broad Applicability of Analysis Methods for Distributed Software Systems
abstract
It 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 Systems
abstract
An 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 Designs
abstract
In 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