Contrôle de code

Contrôle de code

Analyse statique de programmes

En informatique, la notion d'analyse statique de programmes couvre une variété de méthodes utilisées pour obtenir des informations sur le comportement d'un programme lors de son éxécution sans réellement l'exécuter. C'est cette dernière restriction qui distingue l'analyse statique des analyses dynamiques (comme le débogage ou le profiling) qui sont concernés par le suivi de l'exécution du programme.

L'analyse statique est utilisée pour repérer des erreurs de programmation ou de conception, mais aussi pour déterminer la facilité ou la difficulté à maintenir le code.

Sommaire

Méthodes formelles

L'analyse statique englobe une famille de méthodes formelles qui dérivent automatiquement de l'information sur le comportement de logiciels ou de matériels informatiques. Une application possible de l'analyse statique est l'aide automatisée au débogage, en particulier la recherche d'erreurs à l'exécution – grosso modo, des évènements qui forcent le programme à « planter ».

L'analyse de programmes – y compris la recherche d'erreurs possibles à l'exécution – est indécidable : il n'existe aucune méthode « mécanique » qui peut toujours répondre sans se tromper au vu d'un programme si celui-ci peut ou non produire des erreurs à l'exécution. Ceci est un résultat mathématique fondé sur des résultats d'Alonzo Church, Kurt Gödel et Alan Turing dans les années 1930 (voir le problème de l'arrêt et le théorème de Rice).

Cependant, l'application d'un certain nombre de principes lors du codage permet de réduire le risque d'erreurs à l'exécution et ont en outre l'avantage de faciliter la maintenance du code. Par exemple, le fait de ne pas combiner une affectation et un test réduit le risque lié à l'ordre dans lequel les instructions sont exécutées. Autre exemple, le fait d'avoir des instructions de branchement imbriquées sur trop de niveaux est généralement l'indice d'une complexité du code, qui induit une difficulté à le comprendre et à le tester par la suite. Ce genre de motifs (ou patterns en anglais) sont retrouvés en analysant l'arbre syntaxique du code à l'aide d'un parser, de règles de codage et de métriques.

Il existe deux grandes familles d'analyses statiques formelles de programmes :

Relecture de code

Une autre méthode d'analyse statique, parmi les plus empiriques, consiste à faire lire le code source d'une application par une personne expérimentée mais extérieure à l'équipe de développement. Ceci permet de porter un regard neuf sur le code, du point de vue de sa conception comme de sa réalisation.

La relecture de code peut être guidée par des résultats obtenus par des méthodes d'analyse automatique du code, notamment parmi celles qui cherchent à évaluer la complexité du code et le respect de règles éventuelles de codage.

Outils d'analyse statique

L'intérêt du monde industriel pour des outils d'analyse statique, spécialement pour le développement de logiciels critiques, s'est développé à la suite de l'explosion du vol inaugural de la fusée Ariane 5 à cause d'un bogue informatique – sans doute un des bogues les plus chers de l'histoire[1].

Voir aussi

Liens externes


Notes et références

Ce document provient de « Analyse statique de programmes ».

Wikimedia Foundation. 2010.

Contenu soumis à la licence CC-BY-SA. Source : Article Contrôle de code de Wikipédia en français (auteurs)

Игры ⚽ Поможем сделать НИР

Regardez d'autres dictionnaires:

  • Code Linéaire — En mathématiques, plus précisément en théorie des codes, un code linéaire est un code correcteur. Il est structuré comme un sous espace vectoriel sur un corps fini. L espace utilisé est souvent F2n le terme usuel est alors celui de code linéaire… …   Wikipédia en Français

  • Code lineaire — Code linéaire En mathématiques, plus précisément en théorie des codes, un code linéaire est un code correcteur. Il est structuré comme un sous espace vectoriel sur un corps fini. L espace utilisé est souvent F2n le terme usuel est alors celui de… …   Wikipédia en Français

  • Code-barre EAN — Code barres EAN Le code EAN (European Article Numbering) est un code barres utilisé par le commerce et l industrie conformément aux spécifications d’EAN International, organisme aujourd hui remplacé par GS1[1]. Il est connu en France sous le nom… …   Wikipédia en Français

  • Code linéaire — En mathématiques, plus précisément en théorie des codes, un code linéaire est un code correcteur. Il est structuré comme un sous espace vectoriel d un espace vectoriel de dimension finie sur un corps fini. L espace vectoriel fini utilisé est… …   Wikipédia en Français

  • Code-barres EAN — Le code EAN (European Article Numbering) est un code barres utilisé par le commerce et l industrie conformément aux spécifications d’EAN International, organisme aujourd hui remplacé par GS1[1]. Il est connu en France sous le nom de GENCODE, à… …   Wikipédia en Français

  • Code De Hamming — Un code de Hamming est un code correcteur linéaire. Il permet la détection et la correction automatique d une erreur si elle ne porte que sur une lettre du message. Un code de Hamming est parfait, ce qui signifie que pour une longueur de code… …   Wikipédia en Français

  • Code de hamming — Un code de Hamming est un code correcteur linéaire. Il permet la détection et la correction automatique d une erreur si elle ne porte que sur une lettre du message. Un code de Hamming est parfait, ce qui signifie que pour une longueur de code… …   Wikipédia en Français

  • Code Correcteur — Un code correcteur est une technique de codage basée sur la redondance. Elle est destinée à corriger les erreurs de transmission d une information (plus souvent appelée message) sur une voie de communication peu fiable. La théorie des codes… …   Wikipédia en Français

  • Code MDS — Code parfait et code MDS Un code parfait (ou code MDS, pour maximum distance séparable) est un concept de la théorie des codes et qui traite plus spécifiquement des codes correcteurs. Un code correcteur est un code permettant au récepteur de… …   Wikipédia en Français

  • Code Parfait Et Code MDS — Un code parfait (ou code MDS, pour maximum distance séparable) est un concept de la théorie des codes et qui traite plus spécifiquement des codes correcteurs. Un code correcteur est un code permettant au récepteur de détecter ou de corriger des… …   Wikipédia en Français

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”