Rigorous Software Development: An Introduction to Program Verification (Undergraduate Topics in Computer Science)

Rigorous Software Development: An Introduction to Program Verification (Undergraduate Topics in Computer Science)

José Bacelar Almeida


using mathematical equipment within the improvement of software program is vital while trustworthy structures are sought; specifically they're now strongly steered through the respectable norms followed within the construction of severe software program. application Verification is the world of desktop technological know-how that experiences mathematical tools for checking software conforms to its specification. this article is a self-contained advent to software verification utilizing logic-based tools, awarded within the broader context of formal equipment for software program engineering. the assumption of specifying the behaviour of person software program elements via attaching contracts to them is now a extensively strategy in software improvement, which has given upward push particularly to the improvement of a few behavioural interface specification languages and software verification instruments. A starting place for the static verification of courses in response to contract-annotated workouts is specified by the booklet. those should be independently validated, which supplies a modular method of the verification of software program. The textual content assumes merely uncomplicated wisdom of ordinary mathematical techniques that are meant to be regular to any computing device technological know-how pupil. It contains a self-contained creation to propositional common sense and first-order reasoning with theories, by way of a examine of software verification that mixes theoretical and functional points - from a application common sense (a version of Hoare common sense for courses containing user-provided annotations) to using a practical software for the verification of C courses (annotated utilizing the ACSL specification language), during the iteration of verification stipulations and the static verification of runtime error.

Show sample text content

Download sample