2000 · 1.1K citations · 18 references
ComputingComputer ScienceFormal MethodsRequirements EngineeringSoftware EngineeringDeductive VerificationModel CheckingSoftware TestingSoftware ValidationType CheckingVerificationAssertion CheckingCorrectness ProofsObject-oriented ArchitectureProgram CorrectnessProgram ValidationProgram VerificationSoftware Verification
Finite-state verification techniques, such as model checking, have shown promise as a cost-effective means for finding defects in hardware designs. To date, the application of these techniques to software has been hindered by several obstacles. Chief among these is the problem of constructing a finite-state model that approximates the executable behavior of the software system of interest. Current best-practice involves hand-construction of models which is expensive (prohibitive for all but the smallest systems), prone to errors (which can result in misleading verification results), and difficult to optimize (which is necessary to combat the exponential complexity of verification algorithms).
18
Patrick Cousot, Radhia Cousot · 1977 · 6.2K citations
Gerard J. Holzmann · IEEE Transactions on Software Engineering · 1997 · 3.8K citations