What is the structure of a flow in FlowTracer?

What is the structure of a flow in FlowTracer? All flows are composed of nodes that are connected based on their functionality and input/output dependencies. A flow is described by a directed graph containing no loops.
Nodes in a flow may be files or jobs:
- The files represent design data
- The jobs represent actions
These actions can be simple Linux commands such as “cp” (copy), or complex commands such as “dc_shell” (Synopsys Synthesis).·A typical flow can have thousands of nodes. To ease the management of this complexity, FlowTracer supports the notion of “sets of nodes”.
The primary inputs of a flow are files that are created outside the flow. More generally, a flow may be said to have places (usually files, but any object with a timestamp, for example, a member of an archive file), and transitions, the actions that connect the places. FlowTracer requires that places and transitions alternate in the layers of the flow proceeding from the primary inputs to the eventual work product of the flow. Hence, in general, there are places as inputs and outputs of transitions.
Places can be an output of one transition only, but the same place can serve as input to a single or multiple transitions.