Principe de relation dépendance/stabilité

Un package doit dépendre uniquement de packages plus stables que lui.
Stable Dependencies Principle - SDP

Une mesure de la stabilité

En première approche, on pourrait définir la stabilité par rapport à une probabilité de changement : telle partie de l'application est définie sur des spécifications floues, et est donc susceptible d'être remise en question par la suite. Cette approche n'est cependant pas suffisamment précise pour qu'on puisse en tirer des principes généraux.

Il existe une manière plus formelle de définir la stabilité d'un module (classe ou package). Pour un module donné :

  • Plus le nombre de modules dont il dépend est grand, plus il est susceptible d'être impacté par des modifications d'un de ces modules, et donc moins il est stable.
  • Plus le nombre de modules dépendant de ce module est grand, plus les modifications de ce module sont coûteuses, et donc plus il est stable.

Selon cette définition, la stabilité du module est :

  • Maximale si le module n'utilise aucun autre module et se trouve lui-même utilisé par un grand nombre de modules.
  • Minimale si le module utilise de nombreux autres modules alors qu'il n'est utilisé lui-même par aucun autre module.

Intégrer la stabilité dans la conception

Le principe de relation dépendance/stabilité stipule qu'un module donné doit dépendre uniquement de modules plus stables que lui. Cela permet de limiter l'impact des changements les plus fréquents, et maximise donc la stabilité globale de l'application.

_____
Article original : http://www.objectmentor.com/publications/stability.pdf