|Contract Client:||Graham Gash|
This project aims at developing a sufficiently generic system to allow operations to be connected in manner of a flowchart, so that complex operations can be constructed from a relatively simple set of primitives. A user interface will be provided to edit and execute such a data-flow description.
The system is "sufficiently generic" in the sense that it should work with programs that satisfy certain input-output constraints, not necessarily programs from /usr/Image.
The DIE group, hereafter referred to as the contractor, agrees to develop a software system satisfying all the requirements mentioned below under the heading "Primary Requirements" for Graham Gash, hereafter referred to as the client. A user manual and online documentation will also be provided along with the software.
The contractor also agrees that the project shall be delivered to the client no later than 4th May 1999. If the project is completed earlier than the date agreed to, some of the requirements mentioned under the heading "Secondary Requirements" will also be addressed.
The system will use a set of primitive operations, whose interfaces (input output behavior) have been described to it.
A specification language will be designed for this description. This will include the input and output signatures and the data types of these operations.
The system's GUI front end, which will be used to describe/edit a data-flow diagram from these primitives and output some description of this DFD to the back end, which executes the operations in the sequence described by the data-flow.
The system will be coded in C++ using FLTK (a relatively new API based on OpenGL) for the GUI. This is so that it is portable to any platform that supports some form of OpenGL.
The system will include support for macro-modules. A macro-module is itself a data-flow of primitive operations and other macro-modules.
The client agrees to aid the contractor in the design phase of the project, especially in designing the language used to describe primitive operations. He also agrees to provide the contractor with FLTK and a set of sample primitive operations that would be required for the final demonstration.
The main risk which is a potential obstacle to the project is that none of the contractors has any experience with FLTK or graphics (which might be needed in the GUI development).