J'essaie de trouver un moyen d'analyser la longévité du code dans les projets open source: c'est-à-dire pendant combien de temps une ligne de code spécifique est active et utilisée.
Ma pensée actuelle est que la durée de vie d'une ligne de code commence lors de sa première validation et se termine lorsque l'une des situations suivantes se produit:
- Il est modifié ou supprimé,
- Exclus des builds,
- Aucun code dans sa construction n'est maintenu pendant une certaine période de temps (disons, un an).
REMARQUE: Pour clarifier pourquoi une "modification" est comptée comme "mort", les lignes modifiées seront comptées comme une "nouvelle" génération ou ligne de code. De plus, à moins qu'il n'y ait un moyen facile de le faire, il ne serait pas tenu compte de la longévité d'une lignée ou de la descendance d'un ancêtre.
Quoi d'autre déterminerait la durée de vie d'une ligne de code?
version-control
efficiency
bévues
la source
la source
Réponses:
Andy Ozment a regardé OpenBSD en 2006 avec le même genre de question: Lait ou vin: la sécurité des logiciels s'améliore- t-elle avec l'âge?
Vous pourrez peut-être apprendre de sa définition. C'est aussi un article très intéressant, avec une conclusion intéressante également, qui n'a pas été intégrée dans la tradition de la gestion de logiciels:
la source
Je ne pense pas qu'il y ait de réponse à cela. Cela dépend fortement du projet. Certains sont plus stables au fil des ans, d'autres sont plus volatils / refactorisés / évolutifs au fil des ans.
De plus, c'est difficile à mesurer. Une ligne modifiée est-elle vraiment la fin de sa durée de vie? Qu'en est-il seulement d'un changement cosmétique comme le reformatage de la base de code avec des tabulations ou des espaces? À mon humble avis, cela ne compte pas comme une base de code renouvelée, mais ce serait selon vos critères.
Cela dit, je pense qu'une bonne partie des LOC vivent pour toujours.
La raison est simple: il est beaucoup plus facile d'ajouter du nouveau code plutôt que d'en supprimer. Surtout lorsque le système est complexe et s'est développé au fil des ans. Il arrive alors rapidement à un point où il est «risqué» de supprimer ou de modifier du code non trivial. Cela pourrait introduire des bugs, casser la compatibilité, introduire un effet papillon des changements ... Donc je pense que plus la base de code devient grande, plus elle est ancienne, plus les LOC vont rester.
De plus, seuls les bons programmeurs ont tendance à nettoyer les bases de code et à réduire les lignes. Tous les autres ont tendance à empiler les LOC. Et jusqu'à présent, ces derniers gagnent de loin. ;)
la source
La suppression ou l'exclusion d'une ligne de code est définitivement une indication de la fin de sa durée de vie.
En reclassant l'édition, je poserais cette question: cette déclaration produit-elle un résultat différent après l'édition?
Si la réponse est oui, je dirais que la déclaration précédente n'est plus disponible, sinon je la considérerais toujours comme la continuation de la déclaration précédente.
Exemple de modification du résultat:
à:
Exemple de poursuite de la durée de vie:
à:
la source