Interacting Process
Classes -- Capturing Behaviors of Active Objects
Many reactive control systems consist of
a large number of similar interacting objects; these objects can be
often grouped into classes. Such interacting process classes appear in
telecommunication, transportation and avionics domains. Since 2003, we
have been studying modeling, simulation, testing and code generation for
such process classes. The key contribution so far is that we propose a
mechanism for grouping together active objects into "behavioral
subclasses" solely based on behavior during simulation. Nowhere
in execution do we need object identities; this turns out to be
challenging since we need to maintain object associations (static +
dynamic) without referring to their names.
- Modeling : Our modeling style uses
well-known UML notations to capture behavior. In particular, the
control flow of a process class is captured by a state diagram, unit
interactions between process objects by sequence diagrams and the
structural relations are captured via class diagrams.
- Simulation : The key feature of
our approach is that our simulation is symbolic. We dynamically
group together objects of the same class based on their past
behavior. This leads to a simulation strategy that is both time and
memory efficient as demonstrated on well-studied non-trivial
examples of reactive systems. Our symbolic simulator has been used
to debug realistic designs of reactive controllers such as the CTAS
weather-update controller from NASA.
- Work on test generation and code
generation is currently in progress
People involved:
Ankit Goel
Abhik Roychoudhury
P.S. Thiagarajan
Current Work:
-
A
Technical Report on Modeling and Simulation A version of
this paper will appear in ICSE 2006 (ICSE06 conference version).
- You can get more details about
our
simulator. Feel free to try it out.
-
We have also dabbled in introducing
symbolic execution to similar existing models of reactive systems --
in particular the Live Sequence Charts formalism of Damm and Harel.
The results are detailed in the following work. This work presents a
simple symbolic execution where objects are grouped together by
expressing constraints on their identities, i.e. process names
need to be maintained.
| |
Symbolic Execution of Behavioral
Requirements, (ps)
Tao Wang, Abhik Roychoudhury, Roland H.C. Yap and S.C.
Choudhary
International Symposium on Practical Applications of
Declarative Languages (PADL) 2004, Springer Verlag, LNCS 3057. |
Past Work on this topic:
As a pre-cursor to our work on
Interacting Process Classes, we had developed a model of interacting
processes communicating via non-atomic "transactions" depicted as a
combination of UML sequence diagrams. No notion of process classes
is supported in this earlier work. This model was developed over the
period 2001-2003 and is elaborated in the following paper.
| |
Communicating Transaction Processes:
An MSC-Based Model of Computation for
Reactive Embedded Systems (
ps )
Abhik Roychoudhury and P. S. Thiagarajan
Lectures on Concurrency and Petri Nets 2003, LNCS 3098, pages 789-818
|