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