This Turing Award paper/talk is a great overview of [model checking: definition, temporal logic, what it is good for, challenges (mostly state-space explosion), tricks (like symbolic model checking, bounded model checking, partial order reduction and CEGAR).
It also talks about the problems creating specifications. As well as challenges understanding subtle details of temporal logic, there are challenges specifying extra-functional requirements for security properties, reconfigurability properties, quality of service (e.g., jitter).
And it talks about problems verifying real world systems: mixed hardware-software systems, using abstraction to scale (using hybrid model checking / abstract interpretation methods and compositional reasoning) and exploiting design-time architectural choices to improve verifiability.
Notes related to Model checking: Algorithmic verification and debugging
Model checking, Temporal logic
Papers related to Model checking: Algorithmic verification and debugging
- Model checking [mcmillan:ecs:2003]