1. A computer-implemented 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, wherein each facet is associated with a cardinality constraint that specifies how many tags in the facet are part of the goal, wherein the processing goal pattern is represented as a semantic description of a first facet and a first numerical value indicating how many tags in the first facet are part of a first processing goal and a semantic description of a second facet and a second numerical value indicating how many tags in the second facet are part of a second processing goal, the method further comprising: prior to constructing the workflow template, representing the software requirement as a plurality of goal instances in a requirements goal pattern; after constructing the workflow template, for each goal instance, developing at least one workflow instance that can satisfy the goal instance, wherein the workflow instance follows or belongs to the workflow template, wherein a workflow instance is a directed acyclic graph and comprises at least one of the components arranged in a processing graph to produce information that satisfies the goal instance.