The aim of this study is to give the means for writing parallel programs and to transform sequential/shared memory programs into distributed programs, in an object-oriented environment and also to develop a parallel CFD workbench utilizing the framework. In this approach, the programmer controls the distribution of programs through control and data distribution. The authors have defined and implemented a parallel framework, including the expression of object distributions, and the transformations required to run a parallel program in a distributed environment. The authors provide programmers with a unified way to express parallelism and distribution by the use of collections storing active and passive objects. The distribution of classes/packages leads to the distribution of their elements and therefore to the generation of distributed programs. The authors have developed a full prototype to write parallel programs and to transform those programs into distributed programs with a host of about 12 functions. This prototype has been implemented with the Java language, and does not require any language extensions or modifications to the standard Java environment. The parallel program is utilized by developing a CFD workbench equipped with high end FEM unstructured mesh generation and flow solving tools with an easy-to-use GUI implemented entirely on the parallel framework.