Ratio point de fonction sur kloc en tant que métrique logicielle… la métrique «Name That Tune»?

StackOverflow https://stackoverflow.com/questions/243971

  •  04-07-2019
  •  | 
  •  

Question

Que pensez-vous de l'utilisation d'une métrique de point de fonction pour des lignes de code en tant que métrique?

Cela me fait penser à la vieille série "Name That Tune". "Je peux nommer cette mélodie en trois notes!" Je peux écrire cette fonctionnalité en 0.1 klocs! Est-ce utile?

Cela semblerait certainement favoriser l'utilisation des bibliothèques, mais est-ce ce que vous voulez?

Était-ce utile?

La solution

Je pense que c'est une idée terrible. Aussi mauvais que de payer les programmeurs par des lignes de code qu'ils écrivent.

En général, je préfère un code concis au code verbeux, mais uniquement tant qu'il exprime clairement l'intention des programmeurs. Maximiser les points de fonction par kloc va encourager tout le monde à écrire son code le plus brièvement possible, ce qui va au-delà de la concision et du cryptique. Cela encouragera également les gens à joindre des lignes de code adjacentes en une seule ligne, même si cette jonction ne serait autrement pas souhaitable, simplement pour réduire le nombre de lignes de code. La longueur de ligne maximale autorisée deviendrait également un problème.

Autres conseils

KLOC est tolérable si vous respectez strictement les normes de code, un peu comme si vous utilisiez des exigences de page pour un rapport: ne mettez pas cinq déclarations sur une seule ligne ou supprimez la plupart des espaces de votre code.

Je pense qu’une façon de déterminer l’efficacité de votre environnement consiste à examiner plusieurs applications et modules différents, à obtenir une estimation approximative de la qualité du code et à la comparer à sa taille. Si vous pouvez démontrer que la qualité du code est cohérente au sein de votre organisation, alors KLOC n'est pas une mauvaise mesure.

À certains égards, vous devrez faire face à la même bataille avec une métrique similaire. Si vous comptez des points de fonction ou de fonction, ou simplement des fonctions ou des modules, vous voudrez toujours les pondérer d'une manière ou d'une autre. En fin de compte, vous aurez besoin d’une sorte de supplément subjectif aux données objectives que vous collecterez.

"Que pensez-vous de l'utilisation d'une métrique de point de fonction pour les lignes de code en tant que métrique?"

Ne comprenez pas la question. Le ratio ci-dessus est - pour une langue et une équipe données - un simple fait statistique. Et cela tend vers une valeur moyenne avec un petit écart type.

Il existe de nombreux degrés de liberté: comment compter les points de fonction, quelle langue vous utilisez, quelle intelligence (collectivement) l’équipe est. Si vous ne changez pas ces paramètres, la valeur reste stable.

Après quelques projets ensemble, vous vous attendez à ce que 1 200 points de fonction représentent 12 000 lignes de code dans votre organisation en langage / cadre / équipe préférée.

KSloc / FP est une simple observation statistique. Clairement, il y a quelque chose d'autre à ce sujet qui vous dérange. Pourriez-vous être plus précis dans votre question?

La métrique Points de fonction en lignes de code sert en fait à générer les graphiques de niveau de langue (en fait, il s’agit de Points de fonction en instructions) afin de donner une idée approximative de la puissance d’un langage de programmation. Voici un exemple: http://web.cecs.pdx.edu/ ~ timm / dm / functionpoints.html

Je ne recommanderais pas d'utiliser ce rapport pour autre chose, sauf les approximations générales telles que le graphique de niveau de langue.

Promouvoir l’utilisation des bibliothèques est une bonne chose, mais vous devez également garder à l’esprit que vous perdrez le ratio lorsque vous construisez les bibliothèques et que vous ne payerez l’économie qu’avec des dividendes d’économies au fil du temps. Les compteurs de haricots ne comprendront pas cela.

Personnellement, j'aimerais voir un rapport de fonction point à ABC - car je suis curieux de savoir comment la métrique ABC (qui indique la taille et inclut la complexité dans le cadre de l'info) se rapporterait - peut-être linéaire, peut-être exponentielle, etc. ... www.softwarerenovation.com/ABCMetric.pdf

Toutes les métriques sont nulles. Ma théorie a toujours été que, si vous devez les avoir, utilisez la méthode la plus simple pour les rassembler et terminez-les avec des choses importantes.

Cela signifie généralement quelque chose dans le sens de

grep -c ";" *.h *.cpp | awk -F: '/:/ {x += $2} END {print x}'

Si vous recherchez une "métrique". pour suivre l'efficacité du code, ne le faites pas. Si vous insistez, essayez à nouveau quelque chose de stupide mais facile comme la taille du fichier source (voir la commande grep ci-dessus, sans le tuyau awk) ou McCabe (avec un programme de compteur).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top