PrevPrev UpUp NextNext


Locality in dependencies

Often, one change causes many other changes. This phenomenon is known as the ripple effect of a change.

If you are lucky, a change has only local impact. But how do you know in advance?

The dominance analysis in Bauhaus may give you the answer. The dominance analysis is a precise technique in graph theory: One node D dominates another node N if every path from the root of the graph to N contains D. In other words, D is like a gate keeper: Everyone who wants to visit N must pass by D.

dominance
Consequently, N is local to D. If you modify N only other nodes dominated by D may be effected.

Every node (except the root) has one unique direct dominator: the dominator of N who is itself dominated by all other dominators of N. Hence, the direct dominance relation may be expressed as a tree (the dominance tree): there is an edge from a dominator to all nodes that it directly dominates.

The dominance tree reveals also a quality aspect of your software: The more levels your dominance tree has, the more locality your software has.

Last modified: Thu Aug 28 10:22:10 MET DST 2003