2009-06-29 8 views
7

Je me demandais si quelqu'un avait de l'expérience dans les mesures utilisées pour mesurer la qualité du logiciel. Je sais qu'il existe des métriques de complexité de code, mais je me demande s'il existe une façon spécifique de mesurer sa performance réelle pendant sa durée de vie. Je ne parle pas de performance d'exécution, mais plutôt d'une mesure de la qualité. Tous les outils suggérés pour les rassembler sont les bienvenus.métriques de qualité logicielle

Y at-il des mesures pour répondre à ces questions:

  • Comment est-il facile de changer/améliorer le logiciel, la robustesse
  • S'il est un logiciel commun/assez général, comment réutilisable est il
  • Combien de défauts ont été associés au code
  • a ce besoin d'être repensée/recodé
  • depuis combien de temps ce code depuis
  • Les développeurs aiment-ils la conception et la mise en œuvre du code

Apparemment, la plupart de ces éléments doivent être étroitement liés à un CM et à un outil de rapport de bogues.

+2

communauté wiki ... –

Répondre

0

Il existe un bon thread à partir de l'ancien groupe de discussion Joel on Software à ce sujet.

0

Je sais que certains programmes statistiques SVN offrent une vue d'ensemble sur les lignes modifiées par soumission. Si vous avez un système de suivi des bogues et que les personnes qui corrigent des bogues en ajoutant des fonctionnalités etc. indiquent leur numéro de validation lorsque le bogue est corrigé, vous pouvez calculer combien de lignes ont été affectées par chaque bogue/nouvelle demande. Cela pourrait vous donner une mesure de la variabilité. Ensuite, il suffit de compter le nombre de bogues trouvés et de les définir en fonction du nombre de lignes de code. Il y a des valeurs combien de bogues un logiciel de haute qualité devrait avoir par ligne de codage.

0

Vous pouvez le faire dans certains façon économique ou chemin du programmeur.

En cas de manière économique, vous mesurez les coûts d'amélioration du code, de correction de bugs, d'ajout de nouvelles fonctionnalités, etc. Si vous optez pour la deuxième méthode, vous voudrez peut-être mesurer combien le personnel travaille avec votre programme et comment il est facile, par exemple, de trouver et de corriger un bug moyen dans les heures de travail. Certes, ils ne sont pas sans faille, car les coûts dépendent de la situation du marché et les heures de travail dépendent des personnes et de leurs compétences, il est donc préférable de combiner les deux méthodes.

De cette façon, vous obtenez des instruments pour mesurer la qualité de votre code. Bien sûr, vous devriez prendre en compte la taille de votre projet et d'autres facteurs, mais j'espère que l'idée principale est claire.

1

Si la mesure de la qualité du code dans les termes que vous définissez est un travail si simple et si les métriques sont précises, il n'y aurait probablement plus besoin de chefs de projet. Plus encore, la distinction entre les bons et les mauvais gestionnaires serait très faible. Parce que ce n'est pas le cas, cela montre simplement que se faire une idée précise de la qualité de votre logiciel n'est pas une tâche facile. Vos questions couvrent plusieurs domaines qui sont quantifiés différemment ou qui sont très subjectifs à quantifier. Vous devez donc les regrouper en catégories correspondant à des cibles communes. Vous pouvez ensuite attribuer un facteur "d'importance" à chaque catégorie et en déduire certaines mesures.

Par exemple, vous pouvez utiliser static code analysis tools pour mesurer la qualité syntaxique de votre code et en déduire certaines métriques.

Vous pouvez également dériver des métriques à partir de bogues/lignes de code en utilisant un outil de suivi de bogues intégré à un système de contrôle de version. Pour mesurer la robustesse, la réutilisation et l'efficacité du processus de codage, vous pouvez évaluer l'utilisation de modèles de conception par caractéristique développée (bien sûr, lorsque cela est logique). Il n'y a pas d'outil qui vous aidera à atteindre cet objectif, mais si vous surveillez votre logiciel et que vous augmentez vos chiffres, cela peut vous donner une bonne idée de la façon dont votre projet évolue et s'il va dans la bonne direction. L'introduction de procédures de révision de code pourrait vous aider à les suivre plus facilement et à les traiter au plus tôt dans le processus de développement. Un nombre à mettre sur ceux-ci pourrait être le pourcentage de fonctionnalités mises en œuvre en utilisant les modèles de conception appropriés. Bien que les métriques puissent être assez abstraites et subjectives, si vous y consacrez du temps et que vous essayez toujours de les améliorer, cela peut vous donner des informations utiles.

Quelques choses à noter au sujet des mesures dans le processus logiciel: si

  1. À moins que vous ne les bien, les mesures pourraient se révéler être plus de mal que de bien.
  2. Les métriques sont difficiles à bien faire.
  3. Vous devez faire preuve de prudence dans l'utilisation des métriques pour évaluer les performances individuelles ou offrir des systèmes de bonus. Une fois que vous faites cela, tout le monde va essayer de tromper le système et vos mesures s'avéreront sans valeur.
1

Si vous utilisez Ruby, il existe des outils pour vous aider avec des mesures allant de LDC/Méthode et méthodes/classe Saikuros Cyclomatic complexité.

Mon patron a tenu en fait une présentation sur mesure du logiciel que nous utilisons lors d'une conférence de rubis année dernière, these are the slides.

Un outil intéressant que vous apporte beaucoup de mesures à la fois est metric_fu. Il vérifie beaucoup d'aspects intéressants de votre code. Des trucs qui sont très similaires, qui changent beaucoup, qui ont beaucoup de branches. Tous les signes vos codes pourraient être mieux :)

J'imagine qu'il y a beaucoup plus d'outils comme ceci pour d'autres langues aussi.

0

Une mesure plus axée sur le client correspond au temps moyen nécessaire au fournisseur de logiciels pour corriger les bogues et implémenter de nouvelles fonctionnalités.

Il est très facile de calculer, en fonction de la date de création de votre logiciel de suivi de bogues, et des informations fermées.

Si la durée moyenne d'installation/de correction de bogues est extrêmement élevée, cela peut également indiquer la mauvaise qualité du logiciel.

0

page décrivant différents aspects de la qualité logicielle, y compris les tracés d'échantillons. Certaines caractéristiques de qualité que vous devez mesurer peuvent être dérivées à l'aide d'un outil tel que Sonar.Il est très important de savoir comment vous voulez modéliser certains des aspects suivants:

  1. maintenabilité: Vous avez parlé de la façon dont il est facile de changer/tester le code ou réutiliser le code. Celles-ci sont liées à la testabilité et à l'aspect réutilisabilité de la maintenabilité, qui est considérée comme une caractéristique clé de qualité du logiciel. Ainsi, vous pouvez mesurer la maintenabilité en fonction de la testabilité (couverture de test unitaire) et de la réutilisabilité (indice de cohésion du code). Défauts: Les défauts seuls peuvent ne pas être une bonne idée de mesurer. Cependant, si vous pouvez modéliser la densité des défauts, cela pourrait vous donner une bonne image.
Questions connexes