In transition from global to modular temporal reasoning about programs
Logics and models of concurrent systems
Abstract interpretation: a semantics-based tool for program analysis
Handbook of logic in computer science (vol. 4)
Experiments of the effectiveness of dataflow- and controlflow-based test adequacy criteria
ICSE '94 Proceedings of the 16th international conference on Software engineering
IEEE Transactions on Software Engineering - Special issue on formal methods in software practice
Ownership types for flexible alias protection
Proceedings of the 13th ACM SIGPLAN conference on Object-oriented programming, systems, languages, and applications
Quickly detecting relevant program invariants
Proceedings of the 22nd international conference on Software engineering
Addendum to the 1998 proceedings of the conference on Object-oriented programming, systems, languages, and applications (Addendum)
Verifying safety properties of concurrent Java programs using 3-valued logic
POPL '01 Proceedings of the 28th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Symbolic execution and program testing
Communications of the ACM
An axiomatic basis for computer programming
Communications of the ACM
Directed explicit model checking with HSF-SPIN
SPIN '01 Proceedings of the 8th international SPIN workshop on Model checking of software
POPL '02 Proceedings of the 29th ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Extended static checking for Java
PLDI '02 Proceedings of the ACM SIGPLAN 2002 Conference on Programming language design and implementation
POPL '77 Proceedings of the 4th ACM SIGACT-SIGPLAN symposium on Principles of programming languages
Parametric shape analysis via 3-valued logic
ACM Transactions on Programming Languages and Systems (TOPLAS)
Object-Oriented Software Construction
Object-Oriented Software Construction
Partial-Order Methods for the Verification of Concurrent Systems: An Approach to the State-Explosion Problem
Korat: automated testing based on Java predicates
ISSTA '02 Proceedings of the 2002 ACM SIGSOFT international symposium on Software testing and analysis
A Formal Analysis of the Fault-Detecting Ability of Testing Methods
IEEE Transactions on Software Engineering
Preliminary guidelines for empirical research in software engineering
IEEE Transactions on Software Engineering
Thread-Modular Verification for Shared-Memory Programs
ESOP '02 Proceedings of the 11th European Symposium on Programming Languages and Systems
Separation Logic: A Logic for Shared Mutable Data Structures
LICS '02 Proceedings of the 17th Annual IEEE Symposium on Logic in Computer Science
An improvement in formal verification
Proceedings of the 7th IFIP WG6.1 International Conference on Formal Description Techniques VII
The LOOP Compiler for Java and JML
TACAS 2001 Proceedings of the 7th International Conference on Tools and Algorithms for the Construction and Analysis of Systems
Construction of Abstract State Graphs with PVS
CAV '97 Proceedings of the 9th International Conference on Computer Aided Verification
MOCHA: Modularity in Model Checking
CAV '98 Proceedings of the 10th International Conference on Computer Aided Verification
Counterexample-Guided Abstraction Refinement
CAV '00 Proceedings of the 12th International Conference on Computer Aided Verification
A type and effect system for atomicity
PLDI '03 Proceedings of the ACM SIGPLAN 2003 conference on Programming language design and implementation
Modular Verification of Software Components in C
IEEE Transactions on Software Engineering
Formal Methods in System Design
ISESE '04 Proceedings of the 2004 International Symposium on Empirical Software Engineering
Heuristic-guided counterexample search in FLAVERS
Proceedings of the 12th ACM SIGSOFT twelfth international symposium on Foundations of software engineering
Synthesis of interface specifications for Java classes
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Dynamic partial-order reduction for model checking software
Proceedings of the 32nd ACM SIGPLAN-SIGACT symposium on Principles of programming languages
CMC: a pragmatic approach to model checking real code
OSDI '02 Proceedings of the 5th symposium on Operating systems design and implementationCopyright restrictions prevent ACM from being able to make the PDFs for this conference available for downloading
Is mutation an appropriate tool for testing experiments?
Proceedings of the 27th international conference on Software engineering
DART: directed automated random testing
Proceedings of the 2005 ACM SIGPLAN conference on Programming language design and implementation
CUTE: a concolic unit testing engine for C
Proceedings of the 10th European software engineering conference held jointly with 13th ACM SIGSOFT international symposium on Foundations of software engineering
Test input generation for java containers using state matching
Proceedings of the 2006 international symposium on Software testing and analysis
Testing, abstraction, theorem proving: better together!
Proceedings of the 2006 international symposium on Software testing and analysis
Software Abstractions: Logic, Language, and Analysis
Software Abstractions: Logic, Language, and Analysis
Bogor/Kiasan: A k-bounded Symbolic Execution for Checking Strong Heap Properties of Open Systems
ASE '06 Proceedings of the 21st IEEE/ACM International Conference on Automated Software Engineering
Improving your software using static analysis to find bugs
Companion to the 21st ACM SIGPLAN symposium on Object-oriented programming systems, languages, and applications
Controlling factors in evaluating path-sensitive error detection techniques
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
SYNERGY: a new algorithm for property checking
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Lightweight extraction of syntactic specifications
Proceedings of the 14th ACM SIGSOFT international symposium on Foundations of software engineering
Compositional dynamic test generation
Proceedings of the 34th annual ACM SIGPLAN-SIGACT symposium on Principles of programming languages
Model checking large network protocol implementations
NSDI'04 Proceedings of the 1st conference on Symposium on Networked Systems Design and Implementation - Volume 1
Software Testing Research: Achievements, Challenges, Dreams
FOSE '07 2007 Future of Software Engineering
Source Code Analysis: A Road Map
FOSE '07 2007 Future of Software Engineering
The Future of Empirical Methods in Software Engineering Research
FOSE '07 2007 Future of Software Engineering
Learning assumptions for compositional verification
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
Generalized symbolic execution for model checking and testing
TACAS'03 Proceedings of the 9th international conference on Tools and algorithms for the construction and analysis of systems
SPIN'03 Proceedings of the 10th international conference on Model checking software
Smallfoot: modular automatic assertion checking with separation logic
FMCO'05 Proceedings of the 4th international conference on Formal Methods for Components and Objects
Dynamic component substitutability analysis
FM'05 Proceedings of the 2005 international conference on Formal Methods
Symstra: a framework for generating object-oriented unit tests using symbolic execution
TACAS'05 Proceedings of the 11th international conference on Tools and Algorithms for the Construction and Analysis of Systems
ESOP'05 Proceedings of the 14th European conference on Programming Languages and Systems
Extending JML for modular specification and verification of multi-threaded programs
ECOOP'05 Proceedings of the 19th European conference on Object-Oriented Programming
Concrete model checking with abstract matching and refinement
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Abstraction refinement via inductive learning
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
Symbolic compositional verification by learning assumptions
CAV'05 Proceedings of the 17th international conference on Computer Aided Verification
The Challenges of Building Advanced Mechatronic Systems
FOSE '07 2007 Future of Software Engineering
Software Testing Research: Achievements, Challenges, Dreams
FOSE '07 2007 Future of Software Engineering
Source Code Analysis: A Road Map
FOSE '07 2007 Future of Software Engineering
Safety and Software Intensive Systems: Challenges Old and New
FOSE '07 2007 Future of Software Engineering
Software Design and Architecture The once and future focus of software engineering
FOSE '07 2007 Future of Software Engineering
Experience applying the SPIN model checker to an industrial telecommunications system
Proceedings of the 30th international conference on Software engineering
Transforming sources to petri nets: a way to analyze execution of parallel programs
Proceedings of the 1st international conference on Simulation tools and techniques for communications, networks and systems & workshops
Future directions for agent-based software engineering
International Journal of Agent-Oriented Software Engineering
Formal Verification of Graph Grammars using Mathematical Induction
Electronic Notes in Theoretical Computer Science (ENTCS)
Software, software engineering and software engineering research: some unconventional thoughts
Journal of Computer Science and Technology
Verification of real-time DEVS models
SpringSim '09 Proceedings of the 2009 Spring Simulation Multiconference
Transforming communicating X-machines into P systems
Natural Computing: an international journal
MBEERTS'07 Proceedings of the 2007 International Dagstuhl conference on Model-based engineering of embedded real-time systems
Graded CTL model checking for test generation
Proceedings of the 2011 Symposium on Theory of Modeling & Simulation: DEVS Integrative M&S Symposium
Improving formal verification practicability through user oriented models and context-awareness
Proceedings of the 8th International Workshop on Model-Driven Engineering, Verification and Validation
Verification of graph grammars using a logical approach
Science of Computer Programming
The doctoral symposium at MODELS 2009
MODELS'09 Proceedings of the 2009 international conference on Models in Software Engineering
Verification conditions for source-level imperative programs
Computer Science Review
On the verification of hybrid DEVS models
Proceedings of the 2012 Symposium on Theory of Modeling and Simulation - DEVS Integrative M&S Symposium
Conditional model checking: a technique to pass information between verifiers
Proceedings of the ACM SIGSOFT 20th International Symposium on the Foundations of Software Engineering
Modeling and Evaluation of Wireless Sensor Network Protocols by Stochastic Timed Automata
Electronic Notes in Theoretical Computer Science (ENTCS)
On composing and proving the correctness of reactive behavior
Proceedings of the Eleventh ACM International Conference on Embedded Software
Hi-index | 0.01 |
The study of methodologies and techniques to produce correct software has been active for four decades. During this period, researchers have developed and investigated a wide variety of approaches, but techniques based on mathematical modeling of program behavior have been a particular focus since they offer the promise of both finding errors and assuring important program properties. The past fifteen years have seen a marked and accelerating shift towards algorithmic formal reasoning about program behavior - we refer to these as formal software analysis. In this paper, we define formal software analyses as having several important properties that distinguish them from other forms of software analysis. We describe three foundational formal software analyses, but focus on the adaptation of model checking to reason about software. We review emerging trends in software model checking and identify future directions that promise to significantly improve its cost-effectiveness.