CIS 500 -- Fall 1999

Specification and Verification of Concurrent Systems


A concurrent system comprises multiple agents that execute simultaneously and interact with one another. This definition of concurrent systems is deliberately broad: it includes (among other things) parallel computers, networks, and distributed databases, as well as the protocols that underly each of these physical systems.

Designing concurrent systems that behave correctly is inherently difficult: a linear increase in the number of components leads to an exponential increase in the number of potential interactions to consider. This inherent complexity means that ad hoc analyses are insufficient for ensuring that a system's behavior is correct. It is therefore essential to have sound mathematical bases for specifying what consitutes correct behavior and for verifying that the resulting design satsifies this specification.

Many formalisms have been introduced for the specification and verification of concurrent systems. In this course, we will focus on the process-algebraic approach: we will use the process algebra CSP to model concurrent systems, and we will use an industrial-strength, computer-based tool (FDR) to analyze the behavior of such systems. The course will involve regular assignments and (depending on class size) either a final project/presentation or two in-class exams.


Course Details

  • CIS 500: Section U004, Reference Number 19654
  • Prereqs: Either CIS 341 or CIS 352

  • Time: 1:00pm - 2:20pm, Mondays and Wednesdays
  • Place: CST 2-120
  • Susan Older
  • Office: CST 2-181
  • Email: sueo@ecs.syr.edu

  • Course Text

    The Theory and Practice of Concurrency, by A.W. Roscoe. Prentice Hall, 1998.

    Related Resources

    Very comprehensive archives on:
  • CSP
  • Concurrent systems

  • Last modified: Thu 2 Sep 1999
    Susan Older / sueo@ecs.syr.edu