1. A computer-implemented method of versioning a business process model, the method comprising: decomposing the business process model into a plurality of artifacts; generating a hierarchical dependency graph for the plurality of artifacts to produce for each artifact a set of referencing artifacts and a set of referenced artifacts; compiling the set of referenced artifacts by creating a runtime format and computing a unique version identifier for each referenced artifacts; incorporating the unique version identifier for each referenced artifact into a version identifier of each associated referencing artifact from the set of referencing artifacts; and modifying at least one of the referenced artifacts to produce a new version of the associated referencing artifact.