1. A method of transforming a behavioral-level specification into a data flow structure, said method comprising the steps of: representing the behavioral-level specification in a canonical data structure; performing a series of formal transformations on the canonical data structure by means of the decomposition of the canonical structure; and integrating the transformations with an architectural synthesis flow.