Que sont les métriques Java? _Memo_20200818

Métrique

** 1. Que sont les métriques **

** Métriques utiles **

Les métriques sont les classes et les méthodes qui composent un modèle, les relations entre les classes, les relations entre les packages, etc. Il est mesuré du point de vue de la complexité, du degré de couplage, du degré d'agrégation, etc. et exprimé sous forme de valeur numérique.

Il existe de nombreux types de mesures utilisées dans le développement de logiciels, y compris des mesures mineures. Cependant, même si vous étudiez des métriques trop avancées, il est difficile de bien les utiliser dans la pratique. Par conséquent, dans ce matériel, nous nous concentrerons sur trois indicateurs utiles, «LOC», «CC» et «WMC». Même si vous vous souvenez beaucoup, vous l'oublierez si vous n'avez pas la chance de l'utiliser.

** Avantages et inconvénients de l'utilisation de métriques **

Taille et complexité du code, cohésion (dispersion des éléments liés les uns aux autres dans le code), Mesurer le degré de couplage (degré élevé d'indépendance des classes et des packages) à l'aide d'un outil dédié, Vous pouvez définir certains objectifs et apporter des améliorations.

<Inconvénient>

Il y en a tellement qu'il faut du temps pour s'en souvenir

2.LOC

** Vous pouvez approximativement saisir l'échelle LOC **

** LOC (Line of Code) **, comme son nom l'indique, représente le nombre de lignes dans le programme. Par exemple, pour un programme de 200 lignes, le LOC est de 200. Cependant, il ne compte pas les lignes qui ne sont pas liées à la nature du programme, telles que les lignes vides ou les lignes avec uniquement des parenthèses. Il existe plusieurs façons de compter.

De plus, s'il y a plusieurs lignes, KLOC peut être utilisé, qui compte en unités de 1000 lignes. (80 000 lignes de programme font 80KLOC) * Vous n'avez pas besoin de vous souvenir de ce matériel.

** Caractéristiques de LOC **

Il ne convient pas à un fonctionnement strict car il s'agit d'une métrique qui augmente ou diminue facilement en fonction de la manière d'écrire et de compter le code. Utilisez-le simplement comme un ** outil pour avoir une idée approximative de l'échelle **.

3.CC

** CC montrant la complexité de la méthode **

** CC (Complexité cyclomatique) ** est une métrique développée par une personne nommée Thomas McCabe. Aussi connu sous le nom de «McCabe's ** Circular Complexity **». CC est un nombre supérieur ou égal à 1 ou plus qui représente la complexité du contenu d'une méthode particulière. Plus il est grand, plus c'est compliqué.

Plus précisément, plus le nombre est élevé, plus les branches par if et les boucles par for sont utilisées. Les méthodes trop complexes sont difficiles à lire, sujettes à des bogues et difficiles à corriger plus tard. Pour chaque méthode en cours de développement, vérifiez si CC est supprimé au-dessus d'un certain niveau, Si le CC est trop grand, il vaut peut-être mieux le réparer.

** Fonctionnalités CC **

Plus il est élevé, plus la probabilité que les bogues soient mélangés est élevée, il peut donc être utilisé lors de la correction Je peux y penser.

4.WMC

** WMC montrant la complexité des classes **

** WMC (Weighted Method Per Class) ** est la somme des CC de toutes les méthodes incluses dans une classe. Représente la complexité de la classe. Il semble préférable de se demander si une classe dont le WMC présente une valeur anormalement élevée peut être divisée en plusieurs classes.

Correspondance lorsque WMC est important

-Split la fonction de la méthode

・ Examiner si la structure peut être simplifiée

** Caractéristiques de WMC **

C'est la valeur totale de CC, donc plus elle est grande, plus vous développez Vous pouvez voir s'il est trop compliqué ou difficile à lire.

  • Si vous ne vous en souciez pas, veuillez l'ignorer.
    Mon impression

Quand on m'a confié la fabrication sur le site de développement, j'ai décidé de prêter également attention aux métriques.

Recommended Posts

Que sont les métriques Java? _Memo_20200818
Mémo Java
[Java] Que sont les remplacements et les surcharges?
java quoi que ce soit mémo
Qu'est-ce que 'java
Mémo Java Silver
java, mémo maven
Remarque sur Java SE 7
Quelles sont les fonctionnalités mises à jour de Java 13
Qu'est-ce que 'java
java n'importe quoi mémo 2
Que sont JDK, Oracle JDK, OpenJDK, Java SE?
Mémo de spécification Java
Mémo de modèle Java
Ce que j'ai appris en Java (partie 2) Que sont les variables?
Mémo de l'environnement de développement Java
Mémo d'apprentissage Java (méthode)
Mémo Java Kuche Day
java se 8 programmeur Ⅰ mémo
Mémo privé payant Java
Qu'est-ce que l'encapsulation Java?
Mémo d'apprentissage Java (basique)
mémo d'expression java lambda
(Mémo) Java pour instruction
Qu'est-ce que la technologie Java?
Qu'est-ce que Java API-java
expression lambda java [écriture de notes]
Mémo d'apprentissage Java (interface)
[Java] Mémo d'héritage implicite
[Java] Qu'est-ce que flatMap?
Mémo d'apprentissage Java (héritage)
mémo de programmation du concours java
[Java] Qu'est-ce que ArrayList?
[Mémo] Liste liée Java
Qu'est-ce que l'assertion Java? Résumé.
[Java] Mémo de nom du nom de variable
Ce que j'ai recherché sur Java 8
Sous-chaîne de mémo Java (classe standard)
Mémo d'apprentissage Java (type de données)
Ce que j'ai recherché sur Java 6
Longueur du mémo Java (classe standard)
Les égaux Java sont assez désagréables
Ce que j'ai recherché sur Java 9
Qu'est-ce qu'un argument de ligne de commande?
Créer une méthode java [Memo] [java11]
Mémo de préparation à l'examen Java Silver
[Variables environnementales] rails Quelles sont les variables environnementales?
Mémo d'apprentissage Java (opérateur logique)
Mémo d'apprentissage Java (classe abstraite)
Mémo d'étude Java 2 avec Progate
Quelles sont les variables pratiquement finales?
Ce que j'ai recherché sur Java 7
[Java] Qu'est-ce que jaee j2ee?
Que sont les méthodes de classe Ruby?
[Java] Qu'est-ce que l'héritage de classe?
config.ru Que faites-vous?