est une mesure Abstraction de la rigidité d'un système logiciel. Plus l'abstraction est élevée, moins la rigidité (ou plus la flexibilité) et vice versa. Si les composants du système dépendent de classes ou d'interfaces abstraites, un tel système est plus facile à étendre et à modifier que s'il dépendait directement de classes concrètes.
La stabilité est une mesure de la tolérance au changement, comme dans la mesure dans laquelle le système logiciel permet des modifications sans la casser. Ceci est déterminé en analysant les interdépendances des composants du système.
Le article de Robert C. Martin sur les métriques OO décrit ces concepts en termes plus quantitatifs.
Extrait de l'article:
La responsabilité, l'indépendance et la stabilité d'une catégorie peut être mesurée en comptant les dépendances qui interagissent avec cette catégorie. Trois métriques ont été identifiées:
Ca: Afférent Couplages: Le nombre de classes en dehors de cette catégorie qui dépendent des classes dans cette catégorie.
Ce: efférents Accouplements: Le nombre de classes à l'intérieur de cette catégorie qui dépendent des classes en dehors de ces catégories.
I: Instabilité: (Ce ÷ (Ca + Ce)): Cette mesure a l'intervalle [0,1]. I = 0 indique une catégorie au maximum stable. I = 1 indique une catégorie au maximum instable.
A: Abstraction: (# classes abstraites dans la catégorie ÷ # total de classes dans la catégorie). Cette plage de métriques est [0,1]. 0 signifie concret et 1 signifie complètement abstrait.
Dans tout système logiciel particulièrement important, l'équilibre est critique. Dans ce cas, un système doit équilibrer l'abstraction avec la stabilité pour être «bon». La position sur le graphique A-I le montre. S'il vous plaît lire l'article pour l'explication.