Ligne de code

La ligne de code, ou ligne de code source (SLOC en anglais) est une métrique logicielle servant à mesurer la taille d’un programme informatique en dénombrant le nombre de lignes de son code source.

Les lignes de code sont habituellement employées pour quantifier l'effort qui sera exigé pour développer un programme informatique, ainsi que pour estimer la valeur d'un logiciel produit.

Difficulté de la mesure

La ligne de code est un indicateur. Il est imparfait, et comporte des défauts. Cependant, c'est un élément, parmi d'autres, qui permet d'évaluer le coût d'un programme.

Il y a plusieurs manières de mesurer la taille d'un programme[1]:

  • nombre de lignes contenues dans les fichiers source : lignes physiques terminées par un retour chariot.
  • nombre de lignes de code contenues dans les fichiers source : lignes physiques - lignes vides - lignes contenant seulement des Commentaires (informatique).
  • nombre de lignes de code avec des instructions contenues dans les fichiers source : lignes physiques - lignes vides - lignes contenant seulement des commentaires - lignes contenant seulement des accolades ou parenthèses.
  • nombre d'instructions

Incertitudes liées aux programmeurs

Suivant les programmeurs et leurs habitudes de programmation, le nombre de lignes peut varier.

Exemple :

for (i=0; i<100; ++i) printf("hello"); /* Ici 1 ligne de code */

Donne le même résultat que :

for (i=0; i<100; ++i)
{
    printf("hello");
} /* Ici 4 lignes de code */

Cette différence en apparence importante (on passe d'une ligne à quatre) dans cet exemple, simple, s'estompe avec des programmes plus importants, de plusieurs milliers de lignes.

Incertitudes liées au langage de programmation

Le nombre de lignes de code source nécessaires pour mettre en œuvre une opération donnée dépend du langage de programmation dans lequel est écrit le code. Une opération écrite en 30 lignes en langage Smalltalk nécessitera 50 lignes en langage Java, 80 lignes en COBOL, 140 lignes en C et 210 lignes en assembleur[2].

Suivant le langage utilisé, le nombre de lignes nécessaires peut considérablement différer.

Par exemple entre le C et le COBOL :

Langage C COBOL
Code
#include <stdio.h>

int main(void) {

   printf("Hello World");
   return 0;
}
000100 IDENTIFICATION DIVISION.
000200 PROGRAM-ID. HELLOWORLD.
000300
000400*
000500 ENVIRONMENT DIVISION.
000600 CONFIGURATION SECTION.
000700 SOURCE-COMPUTER. RM-COBOL.
000800 OBJECT-COMPUTER. RM-COBOL.
000900
001000 DATA DIVISION.
001100 FILE SECTION.
001200
100000 PROCEDURE DIVISION.
100100
100200 MAIN-LOGIC SECTION.
100300 BEGIN.
100400     DISPLAY " " LINE 1 POSITION 1 ERASE EOS.
100500     DISPLAY "Hello world!" LINE 15 POSITION 10.
100600     STOP RUN.
100700 MAIN-LOGIC-EXIT.
100800     EXIT.
Nombre de lignes (sans compter les espaces) 5 17

Mesure alternative

Une autre unité de mesure est l'année-homme, c'est-à-dire le nombre d'années de programmation pour un programmeur unique. Par exemple, et en théorie, un programme de 20 années-hommes pourrait être réalisé en 20 ans par un programmeur unique, ou en un an par une équipe de 20 programmeurs.

Outils

Voir aussi

Article connexe

  • Métrique (logiciel)

Notes et références

  1. (en) Définition des métriques dans SonarQube
  2. (en) « Function point per language table »
v · m
Éléments de programmation informatique
Bibliothèque logicielle
Vocabulaire
Fonctions
Objet
Événementiel Inversion de contrôle
Code source
Structures de données
Déclarations
Structures de contrôle
Fonctions usuelles
Outil de développement
Folklore
Catégories :
  • Programmation informatique
  • Développement logiciel
v · m
Gestion de la qualité logicielle
Indicateurs de qualité (ISO/CEI 9126)
Compréhension et contrôle du code source
Tests
Métriques
Remaniements
Principes de programmation
SOLID
Mauvaises pratiques
Antipatterns
Code smells
Voir aussi : Génie logiciel, Érosion de l'architecture logicielle
  • icône décorative Portail de la programmation informatique