Partial profile · Book Profile — full narrative profile planned
[IEEE 2013 1st International Workshop on Combining Modelling and Search-Based Software Engineering (CMSBSE) - San Francisco,…
A position paper arguing that Search-Based Software Engineering (SBSE) meta-heuristic techniques can be effectively combined with software model checking to overcome state explosion and solve broader software engineering problems.
A profile of this book is on the way.
What it’s about
This position paper makes the case that two powerful but distinct software engineering approaches—Search-Based Software Engineering (SBSE) and software model checking—are complementary and can be combined to great effect. Software model checking exhaustively verifies program properties like deadlock and data race freedom but suffers from the state explosion problem as concurrency grows. SBSE uses meta-heuristic search techniques (genetic algorithms, particle swarm optimization, hill climbing, estimation of distribution algorithms) to solve intractable software problems approximately. The authors demonstrate, through existing literature and open research problems, two synergistic contexts: using SBSE to improve the model checking process itself (optimizing state-space search and incremental model checking), and using SBSE together with model checking to address general software engineering problems such as test suite generation and the automatic repair of concurrency bugs. It is a focused research agenda for anyone working at the intersection of verification and automated software improvement.
The through-line
- Who it’s for
- A software researcher or engineer who wants to verify and debug complex concurrent programs reliably and automatically.
- The problem
- Software model checking cannot scale to highly concurrent programs because state space grows exponentially, and concurrency bugs like data races and deadlocks are hard to find and fix. The engineer feels frustrated and limited by tools that run out of resources or cannot handle real-world parallel software.
- The plan
- Express your verification challenge as a search-based optimization problem with a fitness function.
- Use SBSE meta-heuristics to optimize the model checker's state-space search for your program or bug pattern.
- Apply incremental model checking to avoid re-evaluating unchanged states across iterations.
- Use the model checker as a fitness evaluator for candidate solutions such as bug fixes.
- Record and reuse counter-examples to cheaply test proposed fixes before invoking full model checking.
- The payoff
- Concurrent programs can be verified and debugged more efficiently despite state explosion. · Data races and deadlocks can be found and automatically repaired. · Test suites can be generated and optimized more effectively.
See our guide
Related profiles we’ve built
- Designing Data-Intensive Applications →
- The Phoenix Project →
- Building Microservices, 2nd Edition (Early Release, Raw and Unedited) →
- Beginners Guide to Google Apps Script 1 - Sheets (Step-By-Step Guides to Google Apps Script) →
- Building Evolutionary Architectures Automated Software Governance, 2nd Edition →
- Excel 2019 Power Programming with VBA →
- Facts and fallacies of software engineering →
- Going GAS From VBA to Google Apps Script →
Additional reading
- Progress on the state explosion problem in model checking · E. Clarke, O. Grumberg, S. Jha, Y. Lu, and H. Veith
Provides foundational background on the primary limitation of model checking that the paper aims to address using SBSE.
- The current state and future of search based software engineering · M. Harman
Offers an overview of the SBSE field, which is one of the two core technologies being combined in this paper's proposal.
- Model checking programs · W. Visser, K. Havelund, G. Brat, S. Park, and F. Lerda
Describes the principles and application of software model checkers like Java Pathfinder (JPF), a central tool discussed in the paper.
- A systematic study of automated program repair: Fixing 55 out of 105 bugs for $8 each · C. Le Goues, M. Dewey-Vogt, S. Forrest, and W. Weimer
This paper's success in automated repair for sequential bugs serves as the direct inspiration for the authors' proposal to tackle concurrency bugs.