Flowbuilding

The trace is built using a combination of techniques.

Execute the Tools Directly

The trace is built as a side effect of each tool execution. FlowTracer follows the activities of the designers and automatically documents what is being done.

This technique is typically used during the exploratory phase of flow development.
% vw cp aa bb

Code an Outline of the Flow in a Tcl Script, Assuming Integrated Tools

Building the trace by executing the jobs can be slow and tedious, especially when jobs take a long time to complete. FlowTracer provides a facility called vovbuild to describe the trace using a Flow Description Language (FDL) which is an extension of Tcl. A trace description in Tcl can be processed by vovbuild without actually executing any of the tools.
# Tiny example of FDL.
T vw cp aa bb
I aa
O bb

This is the most effective technique to build the trace.

A set of ready-to-use methodologies is available in the Flow Library.

Note: The authoritative source of dependencies remains the integrated tool at Altair. The dependencies defined in FDL are to be considered only suggestions.

Coding the Flow Completely in Tcl, Without Tool Integration

This technique is an exception in the sense that it does away with any form of tool integration, so it does not really use runtime tracing. However, it is convenient to build the initial flows quickly.
# Tiny example of FDL for non-integrated tools
SERIAL {
    TASK make clean
    TASK make install
}

The documentation for this technique can be found in Task Oriented Flows.

Since there is no tool integration with this technique, there is no runtime tracing and therefore there is no automatic updating of the dependencies. This is a technique where "what you write is all you get".

Convert an Existing Makefile

A set of utilities allow the migration from existing Makefiles to the equivalent Tcl script. This conversion is typically done with vovmake. The success of this technique depends on how good the Makefiles are, to begin with.

Building the Flow with vovbuild

In most deployment scenarios, the flow development team prepares a script that performs a lot of the initial steps such as populating a workspace, starting a VOV project, and building a VOV Flow. This is the script that is given to the users, so that most users do not really have to worry about how the flow is built.

For the purpose of the next few sections, we want to show the step used to build the flow, which is basically one or more execution of the utility vovbuild.

If you do not already have a flow, you can build one easily taking one of the flows from the Flow Library which is located in $VOVDIR/flowlib/training. For example, use the simplest flow, which is $VOVDIR/flowlib/training/Copy.tcl.
% vovproject create test_project_$USER
% vovproject enable test_project_$USER
% vovconsole &% mkdir some_test_directory
% cd some_test_directory
% vovbuild -f $VOVDIR/flowlib/training/Copy.tcl
% vovconsole -set System:nodes &
Figure 1. A Small Flow You can Use as a Test