Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. Weltenzyklopädie
  2. Ligne de code — Wikipédia
Ligne de code — Wikipédia 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.

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

[modifier | modifier le code]

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

[modifier | modifier le code]

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

[modifier | modifier le code]

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

[modifier | modifier le code]

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.

Cependant cette notion théorique comporte dans la pratique ses limites comme l’a souligné Frederick Brooks dès 1975 dans son livre Le Mythe du mois-homme. Il y explique que toute tâche n’est pas forcément fractionnable, et que l’ajout de personnel introduit par exemple des délais supplémentaires en formation, et en coordination qui peuvent fortement réduire la productivité.

Outils

[modifier | modifier le code]
  • Testwell CMT++
  • Testwell CMTJava

Voir aussi

[modifier | modifier le code]

Article connexe

[modifier | modifier le code]
  • Métrique (logiciel)

Notes et références

[modifier | modifier le code]
  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
  • Bibliothèque standard
  • Espace de noms
  • Framework
  • Gabarit
  • Interface
  • Interface de programmation (API)
Vocabulaire
  • Algorithme
  • Expression
  • Indentation
  • Instruction
  • Ligne de code
  • Opérateur
  • Pseudo-code
  • Ramasse-miettes
Fonctions
  • Dispatch multiple
  • Factorisation
  • Fonction imbriquée
  • Fonction de rappel
  • Fonction d'ordre supérieur
  • Fonction récursive
  • Généricité
  • Opérande
  • Paramètre
  • Polymorphisme
  • Procédure
  • Signature de type
  • Surcharge
Objet
  • Classe
  • Constructeur
  • Destructeur
  • Encapsulation
  • Héritage
  • Héritage multiple
  • Instance
  • Méthode
Événementiel Inversion de contrôle
Code source
Structures de données
  • Arbre
  • Enregistrement
  • Ensemble
  • File
  • Liste
  • Liste chaînée
  • Pile
  • Sémaphore
  • Tableau
  • Tas
  • Type abstrait
  • Vecteur
Déclarations
  • Affectation
  • Convention de nommage
  • Pointeur
  • Portée
  • Référence
  • Tableau associatif
  • Type énuméré
  • Type récursif
  • Typage statique
  • Variable
  • Variable globale
  • Variable locale
Structures de contrôle
  • Case
  • Eval
  • For
  • Goto
  • Switch
  • While
Fonctions usuelles
  • Concaténation
  • Incrémentation
  • malloc
  • printf
Outil de développement
  • Environnement de développement
  • Générateur de documentation
  • Gestion de versions
  • Modèle
  • Patch
  • Spécification
Folklore
  • Hello world
  • Principe KISS
  • Langage de programmation exotique
Catégories :
  • Programmation informatique
  • Développement logiciel
v · m
Gestion de la qualité logicielle
Indicateurs de qualité (ISO/CEI 9126)
  • Capacité fonctionnelle (réponse aux exigences)
  • Fiabilité
  • Maintenabilité
  • Performance
  • Portabilité
  • Utilisabilité
Compréhension et contrôle du code source
  • Automatisation de test
  • Commentaires
  • Documentation
  • Inspection de produit
  • Programmation en binôme ou en groupe
  • Règles de codage
  • Revue de code
Tests
  • Acceptation
  • Intégration
  • Performance
  • Régression
  • Unitaire
  • Utilisateur
  • Validation
Métriques
  • Cohésion
  • Couplage
  • Couverture de code
  • Halstead
  • Indépendance fonctionnelle
  • Indice de maintenabilité
  • Ligne de code
  • Nombre cyclomatique
  • Point de fonction
Remaniements
  • Maintenance
  • Optimisation de code
  • Réusinage de code (Règle de trois)
Principes de programmation
  • Encapsulation
  • GRASP
  • KISS
  • Loi de Déméter
  • Masquage de l'information
  • Ne vous répétez pas (DRY)
  • Patron de conception
  • Séparation des préoccupations
  • YAGNI
SOLID
  • Responsabilité unique
  • Ouvert/fermé
  • Substitution de Liskov
  • Ségrégation des interfaces
  • Inversion des dépendances
Mauvaises pratiques
Antipatterns
  • Attente active
  • Grosse boule de boue
  • Programmation spaghetti (syndrome)
  • Réinventer la roue
Code smells
  • Duplication de code
  • God object
Voir aussi : Génie logiciel, Software craftsmanship, Dégradation logicielle
  • icône décorative Portail de la programmation informatique
Ce document provient de « https://fr.teknopedia.teknokrat.ac.id/w/index.php?title=Ligne_de_code&oldid=217661005 ».
Catégories :
  • Génie logiciel
  • Programmation informatique
Catégories cachées :
  • Portail:Programmation informatique/Articles liés
  • Portail:Informatique/Articles liés

  • indonesia
  • Polski
  • الرية
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • مصر
  • Nederlands
  • 本語
  • Português
  • Sinugboanong Binisaya
  • Svenska
  • Українска
  • Tiếng Việt
  • Winaray
  • 中文
  • Русски
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id