Skip to main content

Cyclic Dependencies

Cyclic dependencies in the repository are the root cause for several correctness issues which can also affect (but are not limited to) Cost Propagation.

The figure above shows different types of cycles. The characteristic symptom of a cyclic dependency is that you can start a path at some asset, follow dependency links in the same direction (they do not need to have the same Link Type) and then end up at the asset you've started at.

Cyclic Dependencies in Cost Propagation

If Cost Propagation detects a cyclic dependency in your model, the costs for none of the participating assets will be computed. Also, any asset which (directly or indirectly) depends on a cycle will not have its costs updated.

Please note in particular that the following is not a cycle:

Even though these elements do not form a tree, there is no cycle here. No matter at which asset you start, no path leads back to the beginning. In graph theory, this is called a Directed Acyclic Graph.

In the context of Cost Propagation, please avoid Directed Acyclic Graphs in hierarchies. In particular:

  • Organizational Units should form a tree
  • Business Capabilities should form a tree

Even if your Organizational Units or Business Capabilities form a Direct Acyclic Graph, Txture will try to propagate costs such that the top-level Organizational Units or Business Capabilities have the correct associated cost values. Technical implications aside, it is much easier to reason about those hierarchies if they form a proper tree.

Using Directed Acyclic Graphs for Business Processes and the technical level (as shown in the example) does not cause any issues.