A method of partitioning an application program by defining an application program for execution on at least two interconnected computers, selected from at least two classes of computers without considering what specific machine environment will be used at run time. Partitioning includes defining two or more objects as components of the application program, where a first object is capable of execution on one class of computers and a second object is capable of execution on a second class of computers. Once the objects are defined, the method includes selecting an environment for the application program, and partitioning the application by selecting each object to execute on the computer of the corresponding class. A system using the method can generate a default partitioning scheme to partition the application program as a series of partitions, each of which is assigned to a computer among available computing resources. The original partitioning selected by the computer can be modified automatically or by a user.