9
votes

Comment mesurer le code "qualité" dans un vaste projet

Je travaille sur un projet assez volumineux, quelques années dans la fabrication, lors d'une jolie grande entreprise, et je prends la tâche de conduire à une meilleure qualité globale du code.

Je me demandais quel type de métriques vous utiliseriez pour mesurer la qualité et la complexité dans ce contexte. Je ne cherche pas des mesures absolues, mais une série d'articles pouvant être améliorés au fil du temps. Étant donné qu'il s'agit d'une macro-opération dans des centaines de projets (j'ai vu des questions posées sur des projets beaucoup plus petits), je cherche quelque chose de plus automaticable et holistique.

Jusqu'à présent, j'ai une liste qui ressemble à ceci:

  • Coverage Coverage pourcentage lors des tests fonctionnels
  • récurrence des échecs BVT
  • Diagraphie / score de dépendance, basé sur un outil tel que Ndepend
  • Nombre d'avertissements de construction
  • Nombre d'avertissements FXCOP / stylécop trouvés / Suppessed
  • Nombre de déclarations "captures"
  • Nombre de pas de déploiement manuels
  • Nombre de projets
  • Pourcentage de code / projets «morts», comme dans, non référencé nulle part
  • Nombre de WTF pendant les évaluations de code
  • Total des lignes de code, peut-être décomposée par Tier

2 commentaires

La présence de Mido-chloriens.


Stackoverflow.com/questions/84556/...


5 Réponses :


2
votes

Peut-être que vous trouverez intéressant ou perspicace, cette analyse: Un conte de quatre noyaux de
edit: schéma et les requêtes correspondantes


0 commentaires

1
votes

La complexité cyclomatique est une métrique "de qualité" décente. Je suis sûr que les développeurs pourraient trouver un moyen de "jouer" si c'était la seule métrique, cependant! :)

et ensuite il y a le Métrique métrique ...

P.s. NDEPEND compte environ dix milliards de métriques, de sorte que cela vaut la peine d'être examinée. Voir aussi codemétrics pour réflecteur.

d'oh! Je viens de remarquer que vous avez déjà mentionné Ndepend.

Nombre de bogues signalés serait intéressant de suivre, aussi ...


2 commentaires

Se casser. Que les codemétrics ps peuvent valent la peine de demander seul.


Nous avons beaucoup de gens qui ouvrent et suivons des bugs. Des dizaines de milliers de bugs sur mon application et d'autres personnes par libération. Comme je l'ai dit ... grand.



0
votes

quantité de Code de clonage / dupliqué de logiciel , moins est évidemment mieux. (Le lien traite des clones et diverses techniques pour les détecter / mesurer.)


1 commentaires

Conduite du Flagger: vous pourriez avoir la courtoisie d'expliquer pourquoi vous vous opposez à cela.



1
votes

Si vous prenez la tâche de conduire à une meilleure qualité de code globale. Vous pourriez jeter un coup d'oeil à:

  • Combien de problèmes ouverts avez-vous actuellement et combien de temps prenez-ils pour résoudre?
  • Quel processus vous avez mis en place pour rassembler des exigences?
  • Votre personnel respecte-t-il les meilleures pratiques?
  • Avez-vous défini par SOP pour décrire la méthodologie de programmation de vos entreprises?

    Lorsque vous avez un certain nombre de développeurs impliqués dans un grand projet, chacun a sa façon de programmer. Chaque style de programmation résolvez le problème, mais certaines réponses peuvent être moins efficaces que d'autres.

    Comment vous utilisez-vous du personnel lorsque vous attaquez une nouvelle fonctionnalité ou de fixer le code existant. Avoir des développeurs travaillent dans des équipes après la programmation des forces de SOP de SOP pour être un meilleur code.

    Lorsque votre personnel code est plus efficace après la règle, le temps de développement devrait être plus rapide.

    Vous pouvez obtenir toutes les métriques que vous voulez, mais je dis d'abord, vous devez voir comment les choses sont faites:

    Quelles sont vos pratiques de développement?

    Sans savoir comment les choses sont actuellement faites, vous pouvez obtenir toutes les mesures que vous voulez, mais vous ne verrez jamais d'improvemenet.


1 commentaires

J'aime cette réponse parce que cela parle de l'autre côté de mon problème ... Quelles normes dois-je mettre en place pour le développement? Je pense que je cherchais que les métriques entraînent ces normes, mais nous pouvons venir à cela des deux directions.



6
votes

Vous devez organiser votre travail autour des six principales caractéristiques de la qualité logicielle: fonctionnalité, fiabilité, convivialité, efficacité, maintenabilité et portabilité. J'ai mis un diagramme en ligne qui décrit ces caractéristiques. Ensuite, pour chaque caractéristique, décidez les métriques les plus importantes que vous souhaitez et sont capables de suivre. Par exemple, certaines mesures, comme celles de Chidamber et de Kemerer conviennent aux logiciels orientés objet, d'autres, comme la complexité cyclomatique sont plus généraux.


0 commentaires