Instability (I)

 

Overview

The Instability metric measures the rate of instability of a package.  A package is unstable if it depends more on other packages than they depend on it.

 

 

Computation

 

 

The ... variable

represents the ...

AfferentCoupling

number of links (associations, generalizations, use links) towards classes defined in other packages

EfferentCoupling

number of links (associations, generalizations, use links) coming from classes defined in other packages

 

 

Nominal range

Nominal values cannot be given, since instability depends on what the package does.  Certain packages must be unstable whilst others must not be unstable.

 

 

Analysis

A package is that much more unstable if it depends more on other packages than they depend on it.  It is likely to change if these other packages change.  Each value calculated for a given package must be compared to the values of the other packages.

 

Not all packages have to be stable, since it must be possible for the application to evolve.

 

If the user wishes the package to be stable, it must depend less on the other packages than they depend on it.