Programmation spaghetti

Programmation spaghetti

En programmation informatique, la programmation spaghetti est un style d'écriture de code source qui favorise l'apparition du syndrome du plat de spaghettis : un code peu clair et qui fait un usage excessif de sauts inconditionnels (voir goto), d'exceptions en tous sens, de gestion des événements complexes et de threads divers.

En fait, la programmation spaghetti qualifie tout ce qui ne permet pas de déterminer le qui, le quoi et le comment d'une prise de contrôle par une portion de programme (incompréhension du flux de contrôle). Le code est donc plus long à mettre à jour car cela nécessite de remonter le fil des renvois[1].

Cette notion s'applique aussi au niveau du flux de données, c'est-à-dire, à tout ce qui ne permet pas de déterminer le qui, le quoi et le comment d’une modification de données. Cette situation est causée par un usage excessif de couplage fort.

La programmation spaghetti est un exemple d'anti-patron.

Exemple de flux de contrôle spaghetti

L'instruction goto (ou ses équivalents) est souvent responsable de la production de code spaghetti. Elle est souvent utilisée dans les langages comme le BASIC ou l'assembleur (dans ce dernier cas les branchements inconditionnels sont cependant inévitables). L'exemple suivant, qui affiche la liste des entiers compris entre 1 et 10 ainsi que leur carré, est un exemple de code spaghetti en BASIC :

10 i = 0
20 i = i + 1
30 IF i <> 11 THEN GOTO 80
40 IF i = 11 THEN GOTO 60
50 GOTO 20
60 PRINT "Programme terminé."
70 END
80 PRINT i & " au carré = " & i * i
90 GOTO 20

Le même résultat est obtenu par le programme suivant, plus respectueux des principes de la programmation structurée :

10 FOR i = 1 TO 10
20   PRINT i & " au carré = " & i * i
30 NEXT i
40 PRINT "Programme terminé."
50 END

Exemple de flux de données spaghetti

10 in:INTEGER
20 out:INTEGER
30
40 PROCEDURE Square
50    out = in * in
60 END PROCEDURE

Le même résultat est obtenu par le programme suivant, plus respectueux des principes de la programmation structurée :

10 FUNCTION Square( in:INTEGER ):INTEGER 
20    Square = in * in
30 END FUNCTION 

Notes et références


Wikimedia Foundation. 2010.

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

Игры ⚽ Нужна курсовая?

Regardez d'autres dictionnaires:

  • Programmation procedurale — Programmation procédurale La programmation procédurale est un paradigme de programmation basé sur le concept d appel procédural. Une procédure, aussi appelée routine, sous routine ou fonction (à ne pas confondre avec les fonctions de la… …   Wikipédia en Français

  • Spaghetti (homonymie) — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Spaghetti peut faire référence à : les spaghetti, une variété de pâtes italiennes ; les westerns spaghetti, un type de western ; la courge… …   Wikipédia en Français

  • Spaghetti — Pour les articles homonymes, voir Spaghetti (homonymie). Spaghettis nature …   Wikipédia en Français

  • Programmation (homonymie) — Cette page d’homonymie répertorie les différents sujets et articles partageant un même nom. Informatique La programmation informatique est l ensemble des activités qui permettent l écriture des programmes informatiques. On distingue… …   Wikipédia en Français

  • Programmation procédurale — La programmation procédurale est un paradigme de programmation basé sur le concept d appel procédural. Une procédure, aussi appelée routine, sous routine ou fonction (à ne pas confondre avec les fonctions de la programmation fonctionnelle… …   Wikipédia en Français

  • Code spaghetti — Programmation spaghetti La programmation spaghetti ou code spaghetti sont des termes péjoratifs utilisés en programmation. Ils qualifient des programmes dont le code n est pas clair et qui font un usage excessif de sauts inconditionnels (voir… …   Wikipédia en Français

  • Plat de spaghetti — Programmation spaghetti La programmation spaghetti ou code spaghetti sont des termes péjoratifs utilisés en programmation. Ils qualifient des programmes dont le code n est pas clair et qui font un usage excessif de sauts inconditionnels (voir… …   Wikipédia en Français

  • Problème des philosophes et des spaghetti — Dîner des philosophes Le problème des philosophes et des spaghettis est le cas d école concernant le problème classique de partage de ressources en informatique système. Il concerne l ordonnancement des processus et l allocation des ressources à… …   Wikipédia en Français

  • Spaghettis — Spaghetti Pour les articles homonymes, voir Spaghetti (homonymie). Spaghettis nature …   Wikipédia en Français

  • Spaguetti — Spaghetti Pour les articles homonymes, voir Spaghetti (homonymie). Spaghettis nature …   Wikipédia en Français

Share the article and excerpts

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