Jules II et l’Algorithme

mains et peinturesPrésentons d’abord les personnages.
Jules II était un homme de la Renaissance. Il fut pape de 1503 à 1513. Nous le retrouverons en conclusion.
Algorithme, est la version francisée du nom d ‘un mathématicien perse dénommé Al-Khawarizmi, dit « le père de l’algèbre ». Il serait né vers 780 dans l’actuel Ouzbekistan et mort vers 850 à Bagdad. Il a donné son nom à une figure mathématique, l’algorithme.
L’algorithme est une suite finie et non ambiguë d’opérations ou d’instructions appliquées à des informations afin de produire un résultat. Pour vulgariser, on prend généralement comme exemple la recette de cuisine. Je choisirais plus simple encore, le calcul d’une moyenne arithmétique. Toutes les opérations doivent être connues en fin d’école primaire, alors que la réalisation d’une bonne omelette n’est pas toujours à la portée d’un jeune adulte.

Etablissement de l’algorithme

La construction de l’algorithme est du ressort du concepteur fonctionnel. C’est lui qui doit définir les fonctions que doit remplir la machine.
L’établissement d’une moyenne arithmétique suppose 5 opérations :

  • sélectionner une série de nombres            exemple : 4, 5, 8, 20, 28, 30, 36, 40
  • compter les nombres de la série sélectionnée                    ex : 4, 8, 20, 36, = 4
  • additionner les nombres de la série                                 ex : 4+ 8,+20+ 36, = 68
  • diviser la somme par le résultat du comptage                                        ex : 68/4
  • présenter le résultat à l’utilisateur                                                                ex : 17

Ces cinq opérations constituent l’algorithme d’une moyenne arithmétique.
Le concepteur devra ensuite définir les règles de gestion de l’algorithme : quelles sont les opérations où intervient un opérateur humain (par exemple ici A – sélection et E-visualisation du résultat) ; qui est cet opérateur  ; les nombres de la série sont-ils des entiers naturels ; le résultat est-il un entier ou un nombre décimal ; la série et les nombres peuvent-ils aller à l’infini ; le résultat peut-il est arrondi aussi bien dans l’opération de calcul que lors de l’opération du résultat….
Une fois l ‘algorithme défini, le concepteur fonctionnel doit le faire valider par le maître d’ouvrage. Cela donne généralement lieu à des dialogues difficiles :

  • Est-ce que c’est cela que vous voulez ?
  • Cela me semble compliqué ! on ne peut pas simplifier ?
  • C’est du niveau école primaire. (concepteur prétentieux qui méprise son client et n’a pas l’intention de s’expliquer)
  • Si vous le dites (maître d’ouvrage désespéré qui a oublié son école primaire et n’ose pas contredire le concepteur qu’il prend pour un super-ingénieur)

Ecriture du programme

L’algorithme défini, le concepteur fonctionnel passe la main au développeur qui va écrire le code, c’est à dire transcrire l’algorithme dans un langage compréhensible par la machine. Cela va permettre que la machine fasse. Pour écrire ce code, le développeur va devoir répondre à un certain nombre d’interrogations pour savoir comment il doit écrire le programme. Restons ici aux cas les plus simples.
Il peut décider d’écrire le programme de manière séquentielle. La machine doit exécuter les opérations dans l’ordre exact défini par l’algorithme (option 1-voir les schémas qui suivent).
En fait, les opérations B (comptage) et C (addition) ne sont pas dépendantes l’une de l’autre. S’il dispose de plusieurs processeurs sur l’ordinateur, le développeur peut demander que B et C soient exécutés en parallèle (option 2). Ceci accélère la production du résultat (rien de plus agaçant que d’attendre devant une machine qui mouline).
En fait l’utilisateur n’intervient que dans les opérations A (sélection des nombres) et E (visualisation du résultat). Le développeur peut donc prévoir que l’ordinateur de l’utilisateur ne fassent que ces opérations et que B, C et D soient calculés par un ordinateur distant (options 3 et 4). Ce type d’architecture dite client/serveur est à la base du SI moderne. Il a permis de miniaturiser la machine de l’utilisateur, et de passer de l’ordinateur aux tablettes et aux Smartphones. L’essentiel du travail est déporté sur des machines plus puissantes, regroupées dans des fermes de serveur. Il rend dépendant l’utilisateur du réseau qui relie les deux machines, de ses pannes et de ses coupures. Il fait aussi que l’information circule sur le réseau, et donc pose des problèmes de confidentialité, de cryptographie, et de mot de passe.
A ce stade il y a déjà quatre options de base pour écrire l’algorithme. Il reste à choisir le langage de programmation, de réfléchir aux systèmes d’exploitation qui devront supporter le programme, aux formats de présentation….
A ce stade également, le maître d’ouvrage a perdu pied. Le maître d’ouvrage se veut le patron du développement, mais il est en fait totalement dépendant du concepteur et du développeur qui sont les maîtres d’œuvre du système d’information. Aujourd’hui, é les aides à la programmation et aux tests ont été multipliées. Avec l’intelligence artificielle, les machines peuvent elles même définir des algorithmes. Malgré cela la programmation reste un art. Le développeur a toujours le choix entre de multiples voies pour écrire le programme, et selon les choix, l’algorithme sera plus ou moins rapide à s’exécuter, plus ou moins convivial. Son savoir-faire est au cœur de la qualité du système et de la possibilité de l’utiliser.

schéma algorithme

Et Jules ?

Revenons maintenant à Jules II. Aujourd’hui, il n’est guère connu que de quelques spécialistes de l’Histoire des Religions ou de l’Histoire de l’Art. Il est pourtant le maître d’ouvrage d’une des œuvres les plus connues au monde, les fresques des voutes et de l’autel de la Chapelle Sixtine. Il en a défini le cahier des charges : quelles scènes devaient figurer, quels personnages devaient apparaître, quelle morale devait-on tirer de ces fresques. Mais il a été totalement éclipsé par son maître d’œuvre, Michel Ange. Nous admirons le savoir faire de ce dernier. Selon l’expression de Boris Vian, il aurait dessiné le bottin, cela aurait encore été beau.
Les développeurs ne sont pas tous promis à la gloire de Michel-Ange. Mais les maîtres d’ouvrage peuvent s’attendre à l’oubli de Jules II.

Bibliographie

Jean-François Pillou Tout sur les systèmes d’information (Dunod-2006)
Boris Vian En avant la zizique (Livre de poche-1957)
Article Wikipedia : Jules II (état 19 février 2016)

Cet article, publié dans maitrise d'ouvrage, système d'information, est tagué , , . Ajoutez ce permalien à vos favoris.

Laisser un commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l'aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Google+

Vous commentez à l'aide de votre compte Google+. Déconnexion /  Changer )

Image Twitter

Vous commentez à l'aide de votre compte Twitter. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l'aide de votre compte Facebook. Déconnexion /  Changer )

w

Connexion à %s