Specification and Modeling of Reactive Real-Time Systems
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
- Original references should be cited (and even read and understood).
- The project should reflect a serious effort to go beyond the course
material, obtaining additional sources from the net, journals, or books.
- All prior work, published or not, public domain or proprietary,
should be fully credited ("my office mate, Joe Schmo, says ...",
"This section of code is modified from XXX gotten from YYY").
- Do not build software from scratch. Your project will not be
evaluated on the basis of how much effort you put into it, but rather
on how effective your work is. Go to the net or commercial software
and find something to build on.
- Learn to use the relevant languages, at least to the level of
proficiency required to make your point. Get the compiler, simulator,
design environment, and install it.
- If you are already engaged in relevant research, leverage it.
Some project ideas
- 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.
- An implementation of a Kahn process networks and/or dataflow
model of computation in Java.
- An implementation of a concurrent finite-state machine model
of computation in Java.
- A comparative study of time in discrete-event models.
Delta-time, fixed-points, causality analysis.
Compare efficiency of implementation, modularity, and anomalies.
- A study of nondeterminacy in rendezvous-based concurrent models
(like that in Ada, Logos, Occam, CSP, and CCS).
- A critical and comparative evaluation of the concurrency models
in Ada, Java, Lotos, and/or other concurrent languages.
- The role of nondeterminacy in system specification and
verification. Describing classes of behaviors, design
refinement, etc.
- A comparative study of asynchronous dataflow models
and dataflow-oriented synchronous languages (Lustre, Signal).
- An implementation of Kahn's concrete data structures model (in
Ptolemy, for example).
- Design of visualization techniques for concurrent models.
- 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).
- An evaluation of real-time computation using Posix threads (for
example, in the Solaris O/S).