Skip to content

ProcessMetrics pour un code infrastructure

HamzaBellahsen edited this page Apr 13, 2025 · 1 revision

Métriques

Ci-dessous les principales métriques calculées par la classe ProcessMetrics :

1. Nombre de développeurs (ndevs)

  • Calcule le nombre de développeurs distincts ayant modifié le même bloc avant la modification actuelle.
  • Objectif : Évaluer la familiarité avec le code et la distribution des connaissances.

2. Nombre de commits (ncommits)

  • Détermine le nombre de commits précédents ayant modifié le même bloc.
  • Objectif : Identifier les parties du code fréquemment modifiées, ce qui peut indiquer une instabilité.

3. Propriété du code (code_ownership)

  • Calcule la proportion de modifications apportées par le développeur actuel par rapport à ses contributions globales.
  • Objectif : Mesurer à quel point un développeur est responsable d'un bloc de code spécifique.

4. Expérience du développeur (exp)

  • Récupère le nombre total de commits réalisés par l'auteur.
  • Objectif : Évaluer l'expérience globale du développeur dans le projet.

5. Expérience récente (rexp)

  • Mesure l'expérience du développeur en fonction des commits récents, pondérés par leur ancienneté.
  • Objectif : Accorder plus d'importance aux contributions récentes, indiquant une familiarité à jour avec la base de code.

6. Expérience sur un sous-système (sexp)

  • Évalue l'expérience du développeur au sein d'un sous-système spécifique (ex. module ou niveau de répertoire).
  • Objectif : Vérifier si le développeur a déjà travaillé dans le sous-système concerné.

7. Expérience sur un bloc (bexp)

  • Calcule l'expérience du développeur dans la modification de blocs similaires.
  • Objectif : Déterminer dans quelle mesure le développeur est familier avec la modification de structures similaires dans le code.

8. Expérience en gestion de ressources (kexp)

  • Évalue l'expérience avec des types spécifiques de ressources ou de structures de données.
  • Objectif : Vérifier si le développeur a déjà travaillé avec des composants similaires.

9. Âge moyen des modifications (age)

  • Calcule la différence de temps moyenne entre les modifications passées et la modification actuelle.
  • Objectif : Indiquer la fréquence à laquelle un bloc a été modifié au fil du temps.

10. Intervalle de temps entre les modifications (time_interval)

  • Détermine le temps écoulé entre la modification la plus récente et la modification actuelle.
  • Objectif : Identifier les parties du code sujettes à des modifications fréquentes.

11. Nombre de défauts précédents (num_defects_before)

  • Compte le nombre de fois où le bloc a été associé à des défauts dans les modifications passées.
  • Objectif : Évaluer si le bloc présente un historique de bogue.

12. Nombre d'instances dupliquées proches (num_same_instances_changed_before)

  • Compte le nombre d'instances où des blocs similaires ont été introduits auparavant.
  • Objectif : Identifier les modifications redondantes ou dupliquées dans la base de code.

13. Nombre de modifications uniques (num_unique_change)

  • Mesure combien de commits uniques ont eu un impact sur le bloc.
  • Objectif : Déterminer la fréquence à laquelle le bloc a été affecté par des modifications distinctes.