1. A method, comprising: receiving a software requirement; and constructing a workflow template that can satisfy the software requirement, wherein the workflow template comprises a plurality of processing stages, wherein each processing stage includes at least one component class and each component class includes at least one component, and wherein an output of each processing stage is described by a processing goal pattern that is described by a set of tags and facets.