Automatic verification of finite-state concurrent systems using temporal logic specifications
ACM Transactions on Programming Languages and Systems (TOPLAS)
Current trends in concurrency. Overviews and tutorials
An improved protocol reachability analysis technique
Software—Practice & Experience
Detection of Ada Static Deadlocks Using Petri Net Invariants
IEEE Transactions on Software Engineering
Cecil: A Sequencing Constraint Language for Automatic Static Analysis Generation
IEEE Transactions on Software Engineering
Analysis of event synchronization in a parallel programming tool
PPOPP '90 Proceedings of the second ACM SIGPLAN symposium on Principles & practice of parallel programming
Properties of data flow frameworks: a unified model
Acta Informatica
Compositional reachability analysis using process algebra
TAV4 Proceedings of the symposium on Testing, analysis, and verification
A model of Ada programs for static deadlock detection in polynomial times
PADD '91 Proceedings of the 1991 ACM/ONR workshop on Parallel and distributed debugging
Interprocedural static analysis of sequencing constraints
ACM Transactions on Software Engineering and Methodology (TOSEM)
Automated Analysis of Concurrent Systems with the Constrained Expression Toolset
IEEE Transactions on Software Engineering
The concurrency workbench: a semantics-based tool for the verification of concurrent systems
ACM Transactions on Programming Languages and Systems (TOPLAS)
Using state space reduction methods for deadlock analysis in Ada tasking
ISSTA '93 Proceedings of the 1993 ACM SIGSOFT international symposium on Software testing and analysis
PPOPP '93 Proceedings of the fourth ACM SIGPLAN symposium on Principles and practice of parallel programming
Flow Analysis of Computer Programs
Flow Analysis of Computer Programs
Design and Implementation of a Petri Net Based Toolkit for Ada Tasking Analysis
IEEE Transactions on Parallel and Distributed Systems
Tractable Flow Analysis for Anomaly Detection in Distributed Programs
ESEC '93 Proceedings of the 4th European Software Engineering Conference on Software Engineering
Efficient Computation of Precedence Information in Parallel Programs
Proceedings of the 6th International Workshop on Languages and Compilers for Parallel Computing
An Algorithm for Analyzing Communicating Processes
Proceedings of the 7th International Conference on Mathematical Foundations of Programming Semantics
A Stubborn Attack On State Explosion
CAV '90 Proceedings of the 2nd International Workshop on Computer Aided Verification
Verifying General Safety and Liveness Propterties with Integer Programming
CAV '92 Proceedings of the Fourth International Workshop on Computer Aided Verification
Using Partial Orders for the Efficient Verification of Deadlock Freedom and Safety Properties
CAV '91 Proceedings of the 3rd International Workshop on Computer Aided Verification
Graph models for reachability analysis of concurrent programs
ACM Transactions on Software Engineering and Methodology (TOSEM)
A compact Petri net representation for concurrent programs
Proceedings of the 17th international conference on Software engineering
Improving the accuracy of Petri net-based analysis of concurrent programs
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
Linear and structural event sequence analysis
ISSTA '96 Proceedings of the 1996 ACM SIGSOFT international symposium on Software testing and analysis
Checking subsystem safety properties in compositional reachability analysis
Proceedings of the 18th international conference on Software engineering
A flexible architecture for building data flow analyzers
Proceedings of the 18th international conference on Software engineering
Parallelism for free: efficient and optimal bitvector analyses for parallel programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
Verification of communication protocols using data flow analysis
SIGSOFT '96 Proceedings of the 4th ACM SIGSOFT symposium on Foundations of software engineering
A Compact Petri Net Representation and Its Implications for Analysis
IEEE Transactions on Software Engineering
An application-independent concurrency skeleton in Ada 95
Proceedings of the conference on TRI-Ada '96: disciplined software development with Ada
Strategic directions in software quality
ACM Computing Surveys (CSUR) - Special ACM 50th-anniversary issue: strategic directions in computing research
Verification of concurrent software with FLAVERS
ICSE '97 Proceedings of the 19th international conference on Software engineering
Applying static analysis to software architectures
ESEC '97/FSE-5 Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering
The design of a next-generation process language
ESEC '97/FSE-5 Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering
Model checking graphical user interfaces using abstractions
ESEC '97/FSE-5 Proceedings of the 6th European SOFTWARE ENGINEERING conference held jointly with the 5th ACM SIGSOFT international symposium on Foundations of software engineering
Constructing compact models of concurrent Java programs
Proceedings of the 1998 ACM SIGSOFT international symposium on Software testing and analysis
Efficient composite data flow analysis applied to concurrent programs
Proceedings of the 1998 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
A conservative data flow algorithm for detecting all pairs of statements that may happen in parallel
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Filter-based model checking of partial systems
SIGSOFT '98/FSE-6 Proceedings of the 6th ACM SIGSOFT international symposium on Foundations of software engineering
Using partial evaluation to enable verification of concurrent software
ACM Computing Surveys (CSUR) - Special issue: electronic supplement to the September 1998 issue
Checking safety properties using compositional reachability analysis
ACM Transactions on Software Engineering and Methodology (TOSEM)
Coordinating agent activities in knowledge discovery processes
WACC '99 Proceedings of the international joint conference on Work activities coordination and collaboration
Property specification patterns for finite-state verification
FMSP '98 Proceedings of the second workshop on Formal methods in software practice
Code motion for explicitly parallel programs
Proceedings of the seventh ACM SIGPLAN symposium on Principles and practice of parallel programming
Consistency management for complex applications
Proceedings of the 20th international conference on Software engineering
Dynamically discovering likely program invariants to support program evolution
Proceedings of the 21st international conference on Software engineering
Data flow analysis for checking properties of concurrent Java programs
Proceedings of the 21st international conference on Software engineering
Patterns in property specifications for finite-state verification
Proceedings of the 21st international conference on Software engineering
Using partial order techniques to improve performance of data flow analysis based verification
Proceedings of the 1999 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Using shape analysis to reduce finite-state models of concurrent Java programs
ACM Transactions on Software Engineering and Methodology (TOSEM)
Software engineering for security: a roadmap
Proceedings of the Conference on The Future of Software Engineering
Putting static analysis to work for verification: A case study
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
Verifying properties of process definitions
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
Classifying properties: an alternative to the safety-liveness classification
SIGSOFT '00/FSE-8 Proceedings of the 8th ACM SIGSOFT international symposium on Foundations of software engineering: twenty-first century applications
Dynamically Discovering Likely Program Invariants to Support Program Evolution
IEEE Transactions on Software Engineering - Special issue on 1999 international conference on software engineering
Continuous self-evaluation for the self-improvement of software
IWSAS' 2000 Proceedings of the first international workshop on Self-adaptive software
Automatically validating temporal safety properties of interfaces
SPIN '01 Proceedings of the 8th international SPIN workshop on Model checking of software
ICSE '01 Proceedings of the 23rd International Conference on Software Engineering
Finding bugs with a constraint solver
Proceedings of the 2000 ACM SIGSOFT international symposium on Software testing and analysis
An architecture for flexible, evolvable process-driven user-guidance environments
Proceedings of the 8th European software engineering conference held jointly with 9th ACM SIGSOFT international symposium on Foundations of software engineering
Improving the Precision of INCA by Eliminating Solutions with Spurious Cycles
IEEE Transactions on Software Engineering
A conservative algorithm for computing the flow of permissions in Java programs
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
PROPEL: an approach supporting property elucidation
Proceedings of the 24th International Conference on Software Engineering
Using the observer design pattern for implementation of data flow analyses
Proceedings of the 2002 ACM SIGPLAN-SIGSOFT workshop on Program analysis for software tools and engineering
Invariant inference for static checking:
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
Containment units: a hierarchically composable architecture for adaptive systems
Proceedings of the 10th ACM SIGSOFT symposium on Foundations of software engineering
Pointer analysis for structured parallel programs
ACM Transactions on Programming Languages and Systems (TOPLAS)
A generic approach to the static analysis of concurrent programs with procedures
POPL '03 Proceedings of the 30th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Invariant inference for static checking: an empirical evaluation
ACM SIGSOFT Software Engineering Notes
Containment units: a hierarchically composable architecture for adaptive systems
ACM SIGSOFT Software Engineering Notes
Evaluating Deadlock Detection Methods for Concurrent Software
IEEE Transactions on Software Engineering
Frameworks for Reasoning about Agent Based Systems
Revised Papers from the International Workshop on Infrastructure for Multi-Agent Systems: Infrastructure for Agents, Multi-Agent Systems, and Scalable Multi-Agent Systems
Analysis of Multithreaded Programs
SAS '01 Proceedings of the 8th International Symposium on Static Analysis
Understanding process and the quest for deeper questions in software engineering research
Proceedings of the 9th European software engineering conference held jointly with 11th ACM SIGSOFT international symposium on Foundations of software engineering
Summarizing procedures in concurrent programs
Proceedings of the 31st ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Modular Verification of Software Components in C
IEEE Transactions on Software Engineering
Assume-Guarantee Verification of Source Code with Design-Level Assumptions
Proceedings of the 26th International Conference on Software Engineering
Heuristic-Based Model Refinement for FLAVERS
Proceedings of the 26th International Conference on Software Engineering
Verifying process models built using parameterized state machines
ISSTA '04 Proceedings of the 2004 ACM SIGSOFT international symposium on Software testing and analysis
Heuristic-guided counterexample search in FLAVERS
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Flow analysis for verifying properties of concurrent software systems
ACM Transactions on Software Engineering and Methodology (TOSEM)
Using Dominators to Extract Observable Protocol Contexts
SEFM '05 Proceedings of the Third IEEE International Conference on Software Engineering and Formal Methods
Tool support for iterative software process modeling
Information and Software Technology
Effective typestate verification in the presence of aliasing
ACM Transactions on Software Engineering and Methodology (TOSEM)
Data Flow-Based Validation of Web Services Compositions: Perspectives and Examples
Architecting Dependable Systems V
ACM Computing Surveys (CSUR)
Static Analysis of Concurrent Programs Using Ordinary Differential Equations
ICTAC '09 Proceedings of the 6th International Colloquium on Theoretical Aspects of Computing
An Improvement of Software Architecture Verification
Electronic Notes in Theoretical Computer Science (ENTCS)
FLAVERS: a finite state verification technique for software systems
IBM Systems Journal
Debugging complex software systems by means of pathfinder networks
Information Sciences: an International Journal
Detecting bugs in register allocation
ACM Transactions on Programming Languages and Systems (TOPLAS)
An automata-based approach to property testing in event traces
TestCom'03 Proceedings of the 15th IFIP international conference on Testing of communicating systems
Safety property analysis techniques for cooperating embedded systems using LTS
SEUS'07 Proceedings of the 5th IFIP WG 10.2 international conference on Software technologies for embedded and ubiquitous systems
Interval analysis for concurrent trace programs using transaction sequence graphs
RV'10 Proceedings of the First international conference on Runtime verification
Dataflow analysis for datarace-free programs
ESOP'11/ETAPS'11 Proceedings of the 20th European conference on Programming languages and systems: part of the joint European conferences on theory and practice of software
New efficient techniques for dynamic detection of likely invariants
ICANNGA'11 Proceedings of the 10th international conference on Adaptive and natural computing algorithms - Volume Part I
Localizing program logical errors using extraction of knowledge from invariants
SEA'11 Proceedings of the 10th international conference on Experimental algorithms
Sound predictive race detection in polynomial time
POPL '12 Proceedings of the 39th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
SimTester: a controllable and observable testing framework for embedded systems
VEE '12 Proceedings of the 8th ACM SIGPLAN/SIGOPS conference on Virtual Execution Environments
Reasoning about threads communicating via locks
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Minimizing lifetime of sensitive data in concurrent programs
Proceedings of the 4th ACM conference on Data and application security and privacy
An approach to testing commercial embedded systems
Journal of Systems and Software
Hi-index | 0.00 |
In this paper we present an approach, based on data flow analysis, that can provide cost-effective analysis of concurrent programs with respect to explicitly stated correctness properties. Using this approach, a developer specifies a property of a concurrent program as a pattern of selected program events and asks the analysis to verify that all or no program executions satisfy the given property. We have developed a family of polynomial-time, conservative data flow anlysis algorithms that support reasoning about these questions. To overcome the traditional inaccuracies of static analysis, we have also developed a range of techniques for improving the accuracy of the analysis results. One strength of our approach is the flexibility allowed in choosing and combining these techniques so as to increase accuracy without making analysis time impractical.We have implemented a prototype toolset that automates the analysis for programs with explicit tasking and rendezvous style communication. We present preliminary experimental results using this toolset.