Specification and Modeling of Reactive Real-Time Systems

Edward A. Lee


Project objective

The main outcome of this course for students will be a project. Most of the grade will be based on the project. Interrim reports (either verbal, written, or both) will be required.

The objective of the project is to apply the material of the course. Projects are expected to have high intellectual content, and reflect a study of the literature and familiarity with relevant software. Pure paper studies involving no computer work are discouraged, but not prohibited. These will be held to higher standards with regard to their reflection of the current literature and depth of study.

Project guidelines

Some project ideas

  1. A mathematical comparison of the metric space approach used for discrete-event systems and the partial-order approach used for process networks (see Matthews and Smyth in the reference list). Requires familiarity with topology.
  2. An implementation of a Kahn process networks and/or dataflow model of computation in Java.
  3. An implementation of a concurrent finite-state machine model of computation in Java.
  4. A comparative study of time in discrete-event models. Delta-time, fixed-points, causality analysis. Compare efficiency of implementation, modularity, and anomalies.
  5. A study of nondeterminacy in rendezvous-based concurrent models (like that in Ada, Logos, Occam, CSP, and CCS).
  6. A critical and comparative evaluation of the concurrency models in Ada, Java, Lotos, and/or other concurrent languages.
  7. The role of nondeterminacy in system specification and verification. Describing classes of behaviors, design refinement, etc.
  8. A comparative study of asynchronous dataflow models and dataflow-oriented synchronous languages (Lustre, Signal).
  9. An implementation of Kahn's concrete data structures model (in Ptolemy, for example).
  10. Design of visualization techniques for concurrent models.
  11. Design study that compares two different modeling techniques (such as dataflow and synchronous languages, or dataflow and discrete-event) on an "interesting" problem (a signal processing problem, a control-intensive problem, or a standard benchmark).
  12. An evaluation of real-time computation using Posix threads (for example, in the Solaris O/S).

Home page