1. A system for application generation, the system comprising: a plurality of cluster nodes configured to execute an application; a server operatively connected to the plurality of cluster nodes and configured to: receive a homogeneous weighted execution dependency graph, a cluster configuration, a plurality of keys, and a data size; create a parallel ordering; define a threshold value; generate an execution plan, wherein the execution plan comprises a plurality of control steps; define a reshuffle cost; generate a data partition plan for each control step in the plurality of control steps; and translate the execution plan and the data partitions plan to a big data application.