7
votes

Métriques de qualité logicielle

Je me demandais si quelqu'un a une expérience dans des métriques utilisées pour mesurer la qualité du logiciel. Je sais qu'il y a des métriques de complexité de code, mais je me demande s'il y a un moyen spécifique de mesurer à quel point il fonctionne bien pendant sa vie. Je ne veux pas dire des performances d'exécution, mais plutôt une mesure de la qualité. Tous les outils suggérés qui aideraient à rassembler sont les bienvenus aussi.

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

  • Quelle est la facilité de modifier / améliore le logiciel, robustesse
  • S'il s'agit d'un logiciel assez commun / général, quelle est la réutilisable? / LI>
  • Combien de défauts étaient associés au code
  • a-t-il besoin d'être repensé / recodé
  • Combien de temps de ce code a-t-il été autour de
  • Les développeurs aiment comment le code est conçu et mis en œuvre

    Il semble que la majeure partie de cela, il faudrait être étroitement lié à un outil de déclaration de cm et de bogues.


0 commentaires

7 Réponses :


0
votes

Il y a un bon thread de l'ancien Joel sur le logiciel Groupes de discussion à ce sujet.


0 commentaires

0
votes

Je sais que certains programmes SVN Stat fournissent un aperçu des lignes modifiées par soumission. Si vous avez un système de bugtracking et des personnes de correction de bogues d'ajout de fonctionnalités, etc. indiquent leur numéro de validation lorsque le bogue est corrigé, vous pouvez ensuite calculer le nombre de lignes affectées par chaque demande de bogue / nouvelle fonction. Cela pourrait vous donner une mesure de la changeabilité.

La chose suivante est simplement compter le nombre de bugs trouvés et les définir dans le ratio au nombre de lignes de code. Il y a quelques valeurs combien de bogues un logiciel de haute qualité devrait avoir par code de code.


0 commentaires

0
votes

Vous pouvez le faire dans certains mode économique ou dans la manière du programmeur .

En cas de manière économique, vous avez des coûts mésauratifs d'amélioration du code, de fixer des bogues, d'ajouter de nouvelles fonctionnalités, etc. Si vous choisissez la deuxième façon, vous voudrez peut-être mesurer la quantité de personnel qui fonctionne avec votre programme et la facilité de tâche de savoir, de trouver et de réparer un bogue moyen en heures humaines. Certes, ils ne sont pas sans faille, car les coûts dépendent de la situation du marché et des heures humaines dépendent de la population actuelle 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 à la qualité de votre code Mesaure de votre code. Bien sûr, vous devez prendre en compte la taille de votre projet et d'autres facteurs, mais j'espère que l'idée principale est claire.


0 commentaires

1
votes

Si la qualité du code de mesure dans les termes que vous mettriez un travail aussi simple et les métriques précis, il n'y aurait probablement pas besoin de responsables de projet. Encore plus, la distinction entre les bons dirigeants pauvres serait très petite. Parce que ce n'est pas le cas, cela ne montre que d'obtenir une idée précise de la qualité de votre logiciel, n'est pas un travail facile.

Vos questions étendues à plusieurs zones quantifiées différemment ou sont très subjectives à la quantification. Vous devez donc les regrouper en catégories correspondant à des cibles communes. Ensuite, vous pouvez affecter un facteur "importance" à chaque catégorie et dériver des mesures à partir de cela.

Par exemple, vous pouvez utiliser Code statique Outils d'analyse pour mesurer la qualité syntaxique de votre code et dériver des mesures à partir de ceux-ci.

Vous pouvez également dériver des métriques de bugs / lignes de code à l'aide d'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és (bien sûr où il est logique). Il n'y a aucun outil qui vous aidera à y parvenir, mais si vous surveillez votre logiciel de plus en plus gros et que vous en mettez des chiffres, vous pouvez vous donner une très bonne idée de la façon dont votre projet évolue et si cela va dans la bonne direction. L'introduction de procédures de révision du code pourrait vous aider à garder une trace de ces personnes plus faciles et éventuellement à leur traiter au début du processus de développement. Un nombre à mettre sur ceux-ci pourrait être le pourcentage de fonctionnalités mises en œuvre à l'aide des modèles de conception appropriés.

Bien que les métriques puissent être assez abstraites et subjectives, si vous vous dédiez de temps et essayez toujours de les améliorer, cela peut vous donner des informations utiles.

Quelques éléments à noter sur les métriques dans le processus logiciel cependant:

  1. sauf si vous les faisiez bien, les métriques pourraient s'avérer plus de mal que de bonnes.
  2. Les métriques sont difficiles à bien faire.
  3. Vous devez être prudent dans l'utilisation des mesures pour évaluer les performances individuelles ou proposer des schémas de bonus. Une fois que vous faites, tout le monde essaiera de tromper le système et vos métriques vont prouver une valeur sans valeur.

0 commentaires

1
votes

si vous utilisez Ruby, il existe des outils pour vous aider avec des métriques allant de LOCS / Méthode et des méthodes / la classe Saikuros complexité cyclomatique.

Mon patron a effectivement présenté une présentation sur des logiciels métriques que nous utilisons lors d'une conférence de Ruby l'année dernière, Ce sont les diapositives.

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

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


0 commentaires

0
votes

Une métrique plus concentrée sur le client serait la durée moyenne nécessaire pour le fournisseur de logiciels pour corriger les bogues et mettre en œuvre de nouvelles fonctionnalités.

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

Si votre temps moyen de fixation de bugs / fonctionnalité est extrêmement élevé, cela pourrait également être un indicateur pour une mauvaise qualité logicielle.


0 commentaires

0
votes

Vous voudrez peut-être vérifier les suivants Page Décrire divers aspects différents de la qualité logicielle, y compris des parcelles d'échantillons. Certaines des caractéristiques de qualité dont vous avez besoin pour mesurer peuvent être dérivées à l'aide de l'outil tel que Sonar. Il est très important de comprendre comment voudriez-vous modéliser certains des aspects suivants:

  1. Maintenabilité: Vous avez mentionné à quel point il est facile de changer / tester le code ou de réutiliser le code. Celles-ci sont liées à la qualification et à la réévaluation de la maintenabilité, qui est considérée comme caractéristique de qualité logicielle clé. Ainsi, vous pouvez mesurer la maintenabilité en fonction de la testabilité (couverture des tests d'unités) et la réévaluation (indice de cohésion du code).
  2. Défauts: Les défauts seuls peuvent ne pas être une bonne idée de mesurer. Cependant, si vous pouvez modéliser la densité de défaute, cela pourrait vous donner une bonne image.

0 commentaires