Whilst evaluating NDepend I attached a NDepend project to all the Visual Studio projects that comprise our company's software suite. Particularly striking is the result of the Abstractness vs Instability graph. Almost all of the projects are crammed into the bottom-right corner of the graph, indicating a very high level of "instability".
The NDepend documentation's definition of instability is:
The ratio of efferent coupling (Ce) to total coupling. I = Ce / (Ce + Ca). This metric is an indicator of the assembly's resilience to change. The range for this metric is 0 to 1, with I=0 indicating a completely stable assembly and I=1 indicating a completely instable assembly.
However, I have been unable to find a clear definition of "resilience to change" in this context. Would anyone like to try to produce a definition?
Added
Obviously, the sentence in which "resilience to change" appears gives a loose definition of this concept as the "ratio of efferent coupling (Ce) to total coupling". But that leaves open the question of what the significance of this ratio is and how it relates to change.
See the documentation in report. stable means painful to modify hence instable is a positive things, it means it can be changed with few pain, it means the assembly is resilient to changes.
Excerpt from the documentation in the report: Abstractness versus Instability Diagram
The Abstractness versus Instability Diagram helps to detect which assemblies are potentially painful to maintain (i.e concrete and stable) and which assemblies are potentially useless (i.e abstract and instable).
Abstractness: If an assembly contains many abstract types (i.e interfaces and abstract classes) and few concrete types, it is considered as abstract.
Stability: An assembly is considered stable if its types are used by a lot of types of tier assemblies. In this conditions stable means painful to modify.