In Eunice, items are stacked and intentional dependencies point downwards.
When its intended that items are independent they can be in the same level.
Multiple dependencies on the same item are modelled by combining the two previous two rules.
Eunice uses these rules to help you find circular dependencies, including indirect dependencies.
Representing dependencies with lines can be hard to follow, so instead Eunice counts dependencies into the following categories:
Dependency counts appear for both sides of the dependency, the dependent item and the item depended on.
Clicking on an arrow will list the dependencies counted in it.
To model everything, in systems of any size, Eunice uses a hierarchy of nested stacks.
Stacks can be inferred from:
Eunice does this by nesting groups of items, each with its own stack, creating a hierarchy.
Items that have uni-directional dependencies between each other, but are in groups that create a circular dependency, are automatically detected.
Dependencies within an item are summarized and shown inside the item box, below the identifier text.
Clicking on an item will open it and show its child items and their dependency counts.
When an item's opened its:
In Eunice, hierarchical structure and unidirectional dependencies come together to encourage less coupling across inter-group dependencies, replacing them with intra-group dependencies and more cohesion.
In the following example the 4 items and 3 dependencies stay the same, but re-structuring the groups reduces the number of dependencies across the groups from two to one.