spacer
spacer spacer spacer spacer spacer spacer spacer spacer spacer
spacer spacerPublic home pagespacer spacer spacerLocal home pagespacer spacer spacerHow to contact usspacer spacer spacerSearchspacer spacer
spacer spacer spacer spacer spacer spacer spacer spacer spacer
spacer
spacer

Catalog Description

Mathematical techniques for describing software systems, proving properties of a the system's behavior prior to its implementation, and determining if the system has been correctly implemented. Description mechanisms for requirements and designs (state machines, Z), proof systems (natural deduction, term rewriting, model checking), static analysis (abstract interpretation, inspections, fault-tree analysis), dynamic analysis (test oracles, executable assertions, coverage metrics).

Prerequisites

CMSC 430.

Topics

  1. Software requirements: formal descriptions based on state machines, checking of global and user-specified properties, model checking.
  2. Program verification and automated theorem proving.
  3. Abstract data types: algebraic specification and term rewriting.
  4. Analysis of partial specifications: abstract interpretation, symbolic evaluation, dataflow dependency analysis.
  5. Program testing: test data selection methods, test coverage metrics, and test oracles.
  6. Software safety analysis: fault tree analysis.

Course Text

TBD

Typical Grading and Workload

Creation and automated analysis of a software artifact.