Logiciels. Jacques Prinz

De JFCM
Aller à : navigation, rechercher

https://aucouranton.com/2014/06/13/linux-containers-parallels-lxc-openvz-docker-and-more/

Au moins quatre significations.

simplificiation - idéation[modifier]

  • Un sens premier du mot abstraction est le suivant : négliger toutes les circonstances environnant un acte, ne pas tenir compte des accidents d'une substance, ne pas s'arrêter aux particularités d'un être. Il s'agit pour la pensée de faire effort pour se détourner de toute considération concrète : les circonstances, les motifs, les contextes, etc., bref de s'extraire de la relativité constitutive de l'expérience et des « questions de fait ». L'abstraction est un retrait de l'attention par rapport aux faits afin de dégager une nature constante, une valeur, un sujet, une forme. C'est l'attitude opératoire qui devrait permettre à l'esprit scientifique de déterminer expérimentalement un ensemble de rapports constants entre des faits pour en abstraire inductivement une loi.
En ce premier sens, il s'agit de l'abstraction par simplification, d'une remontée au principe de la mise à l'écart d'une réalité trop complexe pour être pensée de façon unitaire dans sa diversité. Ainsi entendue, l'abstraction est une opération préalable et nécessaire à toute idéation.

généralisation - conceptualisation[modifier]

  • Il s'agit cette fois de remonter d'éléments (aussi complexes soient-ils) vers des propriétés plus générales. Par exemple, on considérera les triangles rectangles, isocèles, équilatéraux pour tenter de dégager les propriétés communes des triangles. « Je me forme une idée qui peut représenter toute sorte de triangles » (Logique de Port-Royal, I, 5). Ce type d'abstraction par généralisation est une opération mentale nécessaire à la dynamique de la conceptualisation.
Elle se fonde sur la structure même de la logique des classes et les propriétés opératoires du langage humain.

sélection - classification[modifier]

  • Il s'agit d'une opération cognitive présente en toute activité psychique. L'abstraction désigne ici le processus mental qui consiste, en partant d'un donné quelconque (physique, émotionnel, conceptuel, pathologique, etc.), à isoler un trait spécifique quelconque, une détermination considérée en elle-même. La spécificité de cette forme d'abstraction réside dans le fait d'isoler de toute intégralité ou globalité de l'objet un aspect fragmentaire, local. Ainsi, par exemple, l'aspect blanc de cette page, sans tenir compte de l'aspect rectangulaire de sa forme, ou de l'aspect de son grain, de celui de sa surface (lisse, cornée, froissée, etc.), bref de toute autre détermination. Ou bien encore le symptôme « avoir mal à la tête » peut être abstrait d'une totalité pathologique, et soigné sans tenir compte des autres symptômes. Il s'agit cette fois de l'abstraction par sélection, opération nécessaire et propédeutique à toute classification. Cette forme d'abstraction entraîne un appauvrissement du réel. Ainsi par exemple l'acte d'abstraction qui est à la base de la science galiléenne. Il a consisté à isoler un trait du mouvement des corps : le changement de lieu (en exclusion de tout autre aspect qualitatif du mouvement). Cette abstraction permettra la quantification du mouvement physique. Mais est-elle encore pertinente lorsqu'elle est étendue aux mouvements vitaux ou psychiques ? L'abstraction par sélection est de vocation réductrice. Elle tend à réduire toute particularité à un trait différentiel, toute singularité à un jeu de déterminismes circonstanciels, tout individu à un élément dans un ordre, toute totalité à une somme de parties.

schématisation - modélisation[modifier]

  • Processus mental de schématisation qui permet une modélisation d'un donné et sa formalisation. Cette quatrième signification renvoie à la problématique de l'analyse. L'acte mental d'abstraction va consister à décomposer et à recomposer un système de données. L'abstraction prise en ce sens a une longue histoire dans la réflexion propre à la philosophie de la connaissance depuis le xviie siècle. Au xviiie siècle, Condillac s'est voulu le théoricien d'une conception purement analytique de l'abstraction. L'analyse serait l'acte de connaissance par excellence. Elle permettrait d'extraire du sensible des éléments de forme (de l'information), à partir desquels, par des abstractions successives de même type, se construiraient des étages de complexité, formés par des représentations et des ensembles cognitifs de plus en plus symboliques.

Selon quatre opérations mentales bien distinctes :

  • simplification,
  • généralisation,
  • sélection,
  • schématisation.

Celles-ci correspondent à quatre processus de cognition :

  • idéation,
  • conceptualisation,
  • classification,
  • modélisation


LOGICIELS

Jacques PRINTZ : professeur titulaire de la chaire de génie logiciel au Conservatoire national des arts et métiers

Quasi inexistant dans les années 1950, à l'aube du formidable développement des technologies de l'information et de la communication, le logiciel occupe aujourd'hui une place centrale dans nos économies mondialisées, nos administrations et nos loisirs. Des entreprises comme Microsoft, Oracle, SAP Aktiengesellschaft ou Google, exclusivement dédiées au développement de logiciels, ont des valeurs boursières qui se chiffrent en dizaines de milliards de dollars. C'est un phénomène économique sans précédent, et ce d'autant plus que la livraison et l'installation de logiciels se font au moyen de supports matériels de plus en plus réduits, voire au moyen de téléchargements via Internet qui interconnecte fournisseurs et usagers de cette nouvelle technologie.

Industrie de l'immatériel, totalement délocalisable, même sans préavis, sans immobilisation matérielle, sans usine ni investissement de production comme les industries traditionnelles (y compris la fabrication des circuits intégrés qui mobilise des ressources considérables, de l'ordre de 2 à 3 milliards de dollars pour une usine), l'industrie du logiciel ne dépend que de la qualité et de l'imagination de ses ingénieurs.

Place des logiciels dans la société[modifier]

Le métier de programmeur, c'est-à-dire celui des ingénieurs qui conçoivent et valident les programmes, comporte plusieurs défis. Tout programme est d'abord une œuvre d'imagination qui se forme dans la tête de son concepteur ou dans celles d'une toute petite équipe de concepteurs, quand bien même il faudra, lors de son développement, des équipes qui peuvent se chiffrer par centaines de programmeurs. Mais l'imagination est sévèrement bridée par la technologie, malgré les progrès fulgurants de celle-ci. Un bon programmeur doit avoir de l'imagination et une grande connaissance du domaine qu'il souhaite automatiser, mais également connaître parfaitement l'instrument sur lequel il compose, et ses limites : c'est une première contrainte.

Un logiciel est d'abord une œuvre humaine, exclusivement humaine, contrairement à beaucoup d'autres objets qui nous environnent, dans la production desquels la robotisation et les machines jouent depuis quelques décennies un grand rôle. Il n'y a pas, il n'y aura jamais de robot programmeur. La qualité des programmes dépend exclusivement de la compétence des programmeurs mais, quelle que soit cette compétence, ces programmes, comme toute œuvre humaine, peuvent contenir des erreurs plus ou moins graves. On se souvient de l'échec du premier vol d'Ariane 5, en 1996, imputable à une erreur triviale de programmation restée latente pendant plusieurs années avant d'être découverte lors du premier tir. C'est là une deuxième contrainte. Tout logiciel un peu complexe contient des erreurs qui ont échappé à la sagacité des meilleurs programmeurs et des meilleures procédures d'assurance qualité. On ne sait pas, aujourd'hui, mesurer la qualité d'un logiciel, ce qui, pour des ingénieurs, n'est pas satisfaisant. Pour l'ingénieur, le problème n'est pas de concevoir et de programmer sans erreur, car c'est impossible, mais de savoir comment agencer le logiciel pour compenser les erreurs de façon à assurer, du point de vue de l'usager, la continuité du service offert par le logiciel. Ce qu'il faut, c'est minimiser le risque.

Il est impossible de parler de logiciel sans parler des langages de programmation qui permettent d'écrire les logiciels. Le langage de programmation détermine les opérations de base que le programmeur va pouvoir utiliser pour donner des ordres à l'ordinateur qui les exécutera fidèlement. Un programme, quel que soit le langage de programmation, est une suite d'ordres, appelés « instructions », qui traduisent ce que le programmeur veut que la machine fasse. Toute la difficulté vient du nombre d'instructions nécessaires pour résoudre le problème que le programmeur veut faire traiter par l'ordinateur. Plus le problème est vaste et complexe, plus grand sera le nombre d'instructions nécessaires à sa résolution.

Dans les années 1950 et 1960, les programmeurs ont créé des programmes dont le nombre d'instructions était de quelques milliers à quelques dizaines de milliers, œuvres de programmeurs isolés ou en petites équipes. Avec le développement de la technologie, et les besoins toujours plus grands en volume de programmation, on a vu, dans les années 1970 et 1980, apparaître des programmes dont le nombre d'instructions se chiffrait en millions, œuvres d'équipes pouvant compter des centaines de programmeurs.

Il est important de pouvoir matérialiser ce que peut représenter, en format livres, un programme totalisant un million d'instructions. À raison d'une instruction par ligne (un standard classique en programmation), nous avons environ 50 lignes par page, soit, pour un million de lignes, 20 000 pages, soit 50 volumes de 400 pages chacun. À ces 50 volumes, il faudra ajouter une documentation pour les usagers du logiciel, une documentation pour la conception et la maintenance, une documentation pour le support et l'exploitation, ce qui reviendra à doubler la taille, soit 100 volumes interdépendants les uns des autres, d'où en germe une formidable combinatoire qu'il sera difficile de maîtriser, même par les cerveaux les mieux structurés. La complexité de ces grands programmes limite notre capacité, non pas à les imaginer, mais à en faire des objets industriels auxquels peuvent être confiées des vies, par exemple quand on prend l'avion ou quand on allume l'électricité. À chaque seconde de notre existence, des millions d'instructions sont exécutées, et mieux vaut qu'elles ne contiennent pas d'erreur. Les logiciels dont nous avons besoin entretiennent une relation étroite avec les métiers de l'entreprise dont ils vont améliorer les performances, et avec les machines qui nous assistent dans nos tâches quotidiennes ou sur nos lieux de travail, quand ce n'est pas pour assurer notre sécurité, pour optimiser un fonctionnement ou en renforcer la fiabilité, ou pour faire émerger de nouvelles possibilités.

Les premiers grands logiciels ont été créés, à l'époque de la guerre froide, dans les années 1950 et 1960, pour la défense antiaérienne, qui nécessitait un couplage étroit, par les premiers réseaux, entre les radars, la navigation aérienne et les systèmes de tir, balistiques et/ou missiles de la première génération. Les logiciels se sont progressivement substitués aux couplages électroniques, car ils sont bien plus souples d'emploi et faciles à modifier, ce qui a valu au logiciel son appellation anglo-saxonne de software, par opposition au hardware de l'électronique.

Certains appareils d'imagerie médicale, comme les scanners et les appareils d'imagerie par résonance magnétique (I.R.M.), sont tout simplement inconcevables sans les logiciels qui analysent les nombreux signaux que renvoient les phénomènes physiques qui les sous-tendent pour créer des images que notre cerveau puisse interpréter.

Pour ce type d'applications, les logiciels dont nous avons besoin entretiennent une relation beaucoup plus profonde avec la nature des phénomènes physiques que nous souhaitons mettre à notre service, et avec l'expression mathématique de ces phénomènes : les algorithmes. Sans algorithmes, pas de traitement d'images, pas de radar, pas de compression de données, pas de téléphones mobiles, pas de G.P.S. (Global Positioning System, « système de positionnement mondial »), etc.

Inventer des algorithmes est un travail d'une tout autre nature que la simple programmation, qui n'est souvent qu'une traduction de procédures de gestion dans un langage informatique. Dans un programme comptable destiné à la paie, il n'y a pas, à proprement parler, d'algorithmes : ce n'est qu'une simple mécanisation de procédures comptables qui a donné naissance à des langages informatiques dont le plus célèbre est Cobol, développé en 1959 et toujours utilisé.

Certains des systèmes que nous utilisons quotidiennement ont pour fonction d'entretenir une relation en temps réel avec l'environnement où ils sont plongés. Un système de commande de vol, comme un pilote automatique, se substitue complètement au pilote humain. Grâce aux appareils de mesure embarqués dans l'avion, parfois avec une assistance au sol, le système prend connaissance de l'environnement, analyse cet environnement et actionne les gouvernes pour garder le cap enregistré dans le plan de vol de l'avion. C'est également ce que fait le régulateur limiteur de vitesse, ou le dispositif de freinage A.B.S., que l'on trouve maintenant en équipement standard dans de nombreux véhicules automobiles pour améliorer notre sécurité.

Ce type de logiciel doit fonctionner en temps réel, de façon à « coller » au plus près du phénomène physique qu'il régule, et ne jamais tomber en panne car des vies humaines peuvent être en jeu. Avec le phénomène des erreurs mentionné plus haut, on mesure la difficulté de conception de tels logiciels, dont il faut sévèrement limiter la taille pour en garder la maîtrise.

Pour comprendre l'exigence de performance de tels programmes, on peut faire un calcul simple en prenant comme exemple un moteur qui tourne à 6 000 tours par minute. À chaque tour, un organe de régulation doit calculer les paramètres d'injection de carburant, d'air et d'évacuation des gaz de combustion, etc. Pour réguler un moteur, il faut compter une cinquantaine de capteurs et d'actionneurs disposés sur différents organes du moteur, dont chacun doit être géré séparément.

Entre la saisie d'informations par les capteurs et la mise en œuvre des actionneurs, l'organe de régulation dispose de 10 millisecondes pour effectuer les différents calculs nécessaires à une réponse appropriée, soit, selon la puissance du microprocesseur, de l'ordre de 10 000 à 50 000 instructions machine, soit 2 000 à 10 000 instructions d'un langage comme Java. Pour un missile dont la vitesse est Mach 5, soit environ 1 500 mètres à la seconde, 10 millisecondes correspondent à une distance de 15 mètres, ce qui est suffisant pour rater une cible.

Assister les métiers, optimiser les appareils et les machines qui nous assistent dans nos tâches quotidiennes, renforcer leur sécurité, éviter les catastrophes..., voilà les tâches qui sont dévolues aux logiciels.


Typologie des logiciels[modifier]

=Les différents types de problèmes traités par les logiciels[modifier]

Tout logiciel correspond à un problème à résoudre, dont il matérialise une solution possible parmi d'autres. On peut donc classer les logiciels en fonction du type de problèmes à résoudre :

  • des problèmes généraux, pour lesquels on peut réaliser des logiciels généraux, qu'il faudra cependant adapter (« paramétrer », dans le vocabulaire informatique) ;
  • des problèmes spécifiques, pour lesquels il faudra réaliser une programmation ad hoc, ce que l'on appelle des solutions « clés en main ».

Pour les logiciels généraux, susceptibles d'être distribués et installés sur un nombre plus ou moins grand de plates-formes, il faut distinguer :

  • les logiciels professionnels, appelés progiciels (de produit et logiciel), qui nécessitent une installation et un paramétrage, conçus pour les entreprises, comme les progiciels de gestion intégrée (P.G.I. ; en anglais enterprise resource planning ou E.R.P.), les progiciels de gestion de la relation client (G.R.C. ; en anglais customer relationship management ou C.R.M.), etc. ;
  • les logiciels grand public, qui intéressent les particuliers et dont le meilleur exemple est Internet.

Entre ces deux types de logiciels généraux, les nombres d'exemplaires vendus peuvent différer d'un facteur cent ou mille, voire plus. Distribuer un logiciel à cent mille exemplaires pour les entreprises ou à cent millions d'exemplaires pour les particuliers n'a strictement rien à voir du point de vue de la qualité et du contrat de service attendu par les usagers.

=Les systèmes d'exploitation et les progiciels de type système[modifier]

Les ordinateurs, malgré leur petite taille, sont des systèmes électroniques extrêmement complexes. Nus, sans logiciels pour en faciliter leur exploitation, leur programmation serait extrêmement difficile, ce qui en limiterait drastiquement l'usage.

Très tôt dans les années 1950 sont apparus des logiciels livrés avec les machines, les systèmes d'exploitations, dont le but était de simplifier l'interface d'accès à la machine, tant pour la programmer que pour l'exploiter. Le rôle du système d'exploitation est de masquer la complexité sous-jacente de la machine, tout en optimisant l'accès et la répartition des ressources (la mémoire, les périphériques, les lignes de communication, etc.).

Le système d'exploitation assure différentes fonctions, telles que :

  • l'exécution simultanée des différents programmes présents dans la machine, appelée multiprogrammation. Cette fonction superviseur régule l'exécution des programmes en évitant que des défauts de l'un perturbent le fonctionnement des autres. C'est le superviseur qui assure le démarrage et l'arrêt des programmes, la gestion de la mémoire nécessaire à l'exécution des programmes, etc. ;
  • la gestion des fichiers et des bases de données qui permettent de stocker l'information disponible sur la machine : bibliothèques de programmes, données de toute nature, images, sons ;
  • la gestion des réseaux qui permet de connecter la machine centrale à sa périphérie (postes de travail, imprimantes, périphériques distants, robots de stockage, etc.) et/ou à d'autres machines, conformément aux contrats de services : bande passante, sécurité, disponibilité, etc.

Systèmes de gestion des bases de données (S.G.B.D.) et systèmes de gestion des réseaux sont des enjeux économiques tels qu'ils ont suscités une offre de progiciels systèmes indépendante de celle des constructeurs, mais compatibles avec leurs plates-formes. Une société comme Oracle a bâti sa formidable croissance sur un S.G.B.D. relationnel utilisable sur un très grand nombre de plates-formes. La société comptait moins de 100 personnes en 1981, et plus de 30 000 en 2007.

Les systèmes d'exploitation sont des logiciels de très grande taille. Ce qu'on appelle le « noyau » de tels programmes totalise, selon les systèmes, de 3 à 5 millions d'instructions, ce qui est énorme. Leur développement nécessite le travail de centaines de programmeurs et l'investissement cumulé pour les réaliser se chiffre en milliers d'hommes-années, qui est l'unité de compte communément utilisée pour calculer leur coût.

À côté du noyau se trouvent de nombreux programmes utilitaires pour assurer différentes fonctions de service et de support, comme la copie de fichiers, la défragmentation des mémoires-disques, etc. Au total, l'ensemble noyau et utilitaires peut dépasser les 10 millions d'instructions. Pour revenir aux normes de l'édition dont nous avons parlé précédemment, un programme de 5 millions d'instructions représente un texte de 250 volumes de 400 pages chacun. Cela donne une petite idée de la difficulté de sa réalisation.

Dans un système d'exploitation, les compilateurs jouent un rôle bien particulier, car ce sont les programmes qui permettent aux programmeurs de travailler sans avoir à connaître tous les détails de la machine sous-jacente. Sans les compilateurs, pas de programmation en langages de haut niveau, et donc pas de programmation « en grand ».

Historiquement, les premiers langages ont été Fortran et Cobol, nés vers la fin des années 1950 et suivis de nombreux autres. Les informaticiens ont fait preuve d'une grande imagination pour créer toutes sortes de langages, si bien qu'à une époque on a pu parler de tour de Babel, mais bien peu ont eu un véritable impact industriel. On a longtemps rêvé au langage universel, mais il s'est avéré être un mythe qui a coûté beaucoup d'argent à ses promoteurs : parmi les candidats, PL1 mis en avant par I.B.M. dans les années 1970, ou Ada conçu par le département de la Défense des États-Unis et la Commission européenne dans les années 1980. Aujourd'hui, Internet soutient une nouvelle floraison de langages, comme Perl, Python, Scheme, etc.

Autour des langages gravitent un ensemble d'outils et de méthodes, appelés software factory, l'« usine à logiciel », qui sont au logiciel ce qu'est la machine-outil à la mécanique. Certains de ces outils sont extrêmement sophistiqués et fournissent aux programmeurs des aides pour détecter plus ou moins automatiquement les erreurs de programmation. Des sociétés comme Borland ou Rational ont fondé leur réputation sur la fourniture de compilateurs de différents langages et d'outils de génie logiciel diversifiés. Aujourd'hui, l'industrie des outils de développement reste dominée par I.B.M., Hewlett-Packard, Microsoft et Sun, tous américains.

Les systèmes informatisés et la naissance des progiciels[modifier]

À l'origine et jusqu'à la fin des années 1970, chaque entreprise développait ses propres applications et/ou ses propres systèmes. Dans le domaine de la gestion (banques, compagnies d'assurances, administration, etc.), comme dans le domaine technologique (défense, aéronautique et spatial, énergie, transport, etc.), des millions de lignes de programmes ont été ainsi réalisées, représentant des investissements importants.

En réfléchissant aux fonctions de l'entreprise, dont une partie de plus en plus importante était déléguée à l'informatique et automatisée, beaucoup d'acteurs industriels se sont rendus compte qu'il y avait là un gisement de croissance qui ne demandait qu'à être exploité. Une comptabilité, une paie ou une gestion de stock sont des fonctions génériques de toute entreprise, grande, moyenne ou même petite. D'où, à partir des années 1980, une demande des entreprises désireuses de se doter de moyens informatiques sans pour autant investir dans le développement de logiciels coûteux, dépassant parfois leur capacité financière et dont la réalisation n'était pas dans leur cœur de métier. L'offre répondant à cette demande a vu le jour dans les années 1980.

Mais le développement de progiciels de gestion, qui sont les briques des systèmes d'information de l'entreprise, n'est pas aussi simple que cela pourrait paraître à première vue. Plusieurs difficultés doivent être surmontées.

Tout d'abord, il faut isoler dans la fonction de l'entreprise ce qui est commun à plusieurs, sinon à toutes les entreprises. Faute de quoi, il n'y aura pas de marché pour amortir l'investissement nécessaire à la fabrication d'un logiciel générique.

Malgré la « généricité », il faut prendre en compte certaines spécificités propres à chaque entreprise, d'où des dispositifs de paramétrage du progiciel qui doivent rester à la portée des entreprises utilisatrices. Du côté des technologies, il faut que l'éditeur du progiciel puisse s'appuyer sur des standards de droit, comme Cobol ou les bases de données, qui sont garantis par des normes internationales I.S.O. (Organisation internationale de normalisation), A.N.S.I. (American National Standards Institute), C.E.I. (Commission électronique internationale), U.I.T. (Union internationale des télécommunications), etc., faute de quoi l'instabilité des interfaces rendra l'investissement économiquement non rentable. En outre, la disponibilité d'une norme n'est pas une garantie de succès : encore faut-il que la norme paraisse crédible face à la concurrence d'autres normes ou aux standards de fait. C'est ainsi que la norme S.Q.L. (Structured Query Language), pour les bases de données relationnelles, a remplacé au début des années 1980 la norme concurrente N.D.L. (Network Data Language), pour les bases de données dites « réseaux », entraînant au passage la chute de sociétés pourtant prospères comme Cullinet.

Il faut enfin que les plates-formes des constructeurs soient installées en nombre suffisant, ce qui était le cas d'I.B.M., mais pas celui de Bull. D'où des stratégies d'alliances parfois complexes dont l'histoire dépasserait le cadre de cet article. Il faut se rappeler que la société SAP Aktiengesellschaft, leader sur le marché des P.G.I., au départ un essaimage d'I.B.M. Allemagne, a commencé sa croissance sur le parc I.B.M., en Allemagne, avant de la poursuivre en Europe, puis dans le monde entier, puis sur d'autres plates-formes.

Le développement de progiciels multi-plates-formes reste un problème difficile et coûteux, que seuls quelques très grands éditeurs maîtrisent vraiment. L'environnement Windows de Microsoft est un standard de fait qui permet le développement de progiciels pour les entreprises de taille moyenne, petite ou très petite. Les logiciels dits open source comme Linux et les environnements type Eclipse en sont un autre qui concurrence directement l'offre de Microsoft.

Dans le domaine des systèmes technologiques, l'histoire a été différente car les problèmes étaient, et sont toujours, de nature différente. Pour prendre un exemple dans le domaine de l'énergie, quiconque veut distribuer de l'énergie électrique, produite dans différents types de centrales, aux usagers et aux entreprises clientes, a besoin d'un réseau de transport de cette énergie depuis les centrales qui la produisent vers les appareils qui la consomment. Le réseau de transport – en France, c'est l'entreprise R.T.E. (Réseau de transport d'électricité) qui en a la charge – est régulé grâce à un système informatisé de grande taille. En termes de marché, on ne peut pas dire qu'il y a une offre de systèmes informatisés correspondant à une demande. Les entreprises telles que R.T.E. se comptent en dizaines, pas en milliers. C'est trop peu.

On peut faire un raisonnement analogue avec les systèmes de contrôle aérien, qui, comme le transport de l'électricité, ont été dès le départ, dans les années 1950, de grands consommateurs d'équipements informatiques, avec des matériels spécialisés, dits « temps réel », qui ont disparu dans les années 1990 avec la montée en performance des matériels grand public. En France, la société Thales A.T.M.S. (Air Traffic Management Systems) fait partie des leaders mondiaux du domaine. Le nombre de systèmes de contrôle aérien pour l'ensemble de la planète se chiffre là encore en centaines, donc à nouveau trop peu pour donner naissance à une industrie de progiciels spécialisés dans le contrôle aérien.

On pourrait continuer à donner des exemples dans d'autres domaines technologiques, où l'on retrouverait toujours la même problématique. Dans ces différents domaines, on est encore, et probablement pour longtemps, dans une industrie du clés en main, ce qui n'empêche pas une certaine rationalisation.

Tous ces systèmes sont des grands consommateurs d'outils de visualisation et de fabrication d'interfaces hommes-machine comme ceux édités par la société française Ilog. Tous ont besoin de systèmes d'aide à la conception et de simulation avec des outils mathématiques pour effectuer différents types de calcul, par exemple le logiciel C.A.T.I.A. (conception assistée tridimensionnelle interactive appliquée) de la société Dassault Systèmes. Tous gèrent de grandes quantités de données, tous vont donc utiliser des systèmes de gestion de base de données comme Oracle. Tous ont des plates-formes d'exploitation où les serveurs se comptent par centaines et doivent communiquer entre eux, d'où les intergiciels (en anglais middlewares), logiciels de communication entre plusieurs applications.

Dans l'industrie automobile, on assiste depuis quelques années à une montée en puissance de l'informatique embarquée dans les véhicules. Dans ce cas, le contexte système est tel que le logiciel est intégré dans un équipement qui, du point de vue du système, apparaît comme une boîte noire ; on parle alors de logiciel embarqué, ou enfoui. C'est un marché très important, via des objets nomades comme les téléphones mobiles. L'adhérence du logiciel au matériel est telle (jusqu'à maintenant) qu'on ne peut pas vraiment séparer l'un de l'autre.

Les logiciels grand public et Internet[modifier]

Pour terminer ce rapide tour d'horizon, disons quelques mots de logiciels dont la diffusion se chiffre aujourd'hui par millions d'exemplaires, comme les logiciels de bureautique, Internet et les jeux vidéo.

La bureautique est née avec la percée fulgurante des ordinateurs personnels. Aujourd'hui, on les compte par centaines de millions, ce qui fait qu'un éditeur de logiciels intéressants pour les usagers a devant lui un marché potentiel gigantesque et des retours sur investissement à l'échelle de ce marché. D'où les guerres économiques que se livrent les éditeurs de logiciels de courrier électronique et la tentative de Microsoft de fermer son logiciel propriétaire pour conserver son avantage concurrentiel.

Le défi des logiciels grand public est celui de la qualité, compte tenu de la présence d'erreurs résiduelles. Chacun peut comprendre qu'un logiciel diffusé à cent mille exemplaires n'aura pas le même comportement qu'un logiciel diffusé à cent millions d'exemplaires. Une erreur, qui pourrait passer inaperçue dans le premier cas, sera immédiatement révélée dans le second. Il faut donc durcir très fortement les procédures d'assurance qualité pour ramener le taux d'erreurs résiduelles à un seuil compatible avec la diffusion. C'est plus facile à dire qu'à faire, car nous sommes ici aux limites des capacités humaines des programmeurs, des organisations de développement et des technologies de conception, programmation et test du logiciel.

Pour les jeux vidéo, la situation est tout à fait différente. La diffusion d'un jeu vidéo est potentiellement très importante, si le scénario plaît au public jeune, principal consommateur. Il faut donc d'abord un bon scénario de jeu, un bon graphisme et une bonne animation. Pour ce qui concerne le logiciel proprement dit, il s'agit d'un logiciel certes complexe mais qui peut être réalisé par une équipe de dix à quinze très bons programmeurs travaillant pendant deux ou trois ans, ce qui représente un investissement important comparé au prix unitaire du jeu. Toutefois, l'expérience montre que la mise en place d'une telle équipe, son recrutement, sa montée en capacité ne posent pas de problème particulier ; ce n'est pas facile, car il faut comprendre en profondeur le métier de programmeur, mais c'est faisable, et cela a déjà été fait dans d'autres secteurs que celui du jeu vidéo.

Tout autre est la situation d'une équipe où les programmeurs se comptent par centaines. Dans ce cas, il est humainement impossible de constituer une équipe de cent ou deux cents très bons programmeurs, pour des raisons d'ordre sociologique. L'un des défis que doivent relever les très grandes équipes est d'arriver à faire du bon travail avec une équipe dont les talents et les compétences sont divers, et dont certains ne seront pas au niveau, sans que cela se voie sur leur curriculum vitae. Dans une équipe de plusieurs centaines de programmeurs on peut, dans la durée, constituer un noyau dur de compétence qui sera capable de faire travailler une équipe dix ou quinze fois plus nombreuse, avec la mise en place de procédures d'assurance qualité draconiennes. C'est le but de méthodes comme celle qui est préconisée par le Software Engineering Institute (S.E.I.) de l'université Carnegie Mellon (Pittsburgh, Pennsylvanie) avec le CMM (Capability Maturity Model), dès les années 1990. Pour que la compétence se développe correctement, il faut travailler dans la durée, ce qui exclut les équipes où le taux de rotation est aux alentours de 20 à 30 p. 100. La formation d'ingénieurs informaticiens de haut niveau, connaissant toutes les facettes de la technologie informatique, est une condition nécessaire à la qualité des logiciels actuels et futurs.

http://searchnetworking.techtarget.com/definition/hub?utm_content=eru-rd2-rcpG&utm_medium=EM&asrc=EM_ERU_87335737&utm_campaign=20171228_ERU%20Transmission%20for%2012/28/2017%20(UserUniverse:%202489472)&utm_source=ERU&src=5703487


Une brève histoire du génie logiciel[modifier]

Rappelons quels ont été les attendus principaux de ce que l'on a appelé, à l'issue de deux conférences célèbres du comité scientifique de l'O.T.A.N. (à Garmisch, en Allemagne, du 7 au 11 octobre 1968, et à Rome, en Italie, du 27 au 31 octobre 1969), le software engineering, rendu en français par « génie logiciel ».

Le génie logiciel est la science de l'ingénieur qui s'intéresse aux procédés scientifiques de construction et d'entretien des logiciels, et bien sûr à la « matière » même de cette construction : d'abord les programmes eux-mêmes, les fichiers et bases de données, les scripts de paramétrage nécessaires à l'exécution du programme, puis tout ce qui gravite autour (spécification de besoins et exigences des utilisateurs futurs, spécification de conception, tests, documentation pour les mainteneurs, le support technique et les usagers). Le but du génie logiciel est de maximiser la durée de vie et la qualité des logiciels, tout en minimisant les coûts et le délai. Son objet est cette partie de l'information que l'on pourra informatiser, en se rappelant que le mot informatique est la fusion des deux mots, information et automatique.

La productivité est au cœur de la mise en œuvre des technologies de l'information, et donc de l'activité des ingénieurs informaticiens, d'où deux aspects complémentaires :

  • augmenter le nombre d'ingénieurs capables de réaliser les programmes, voire permettre à de simples usagers de réaliser eux-mêmes les programmes dont ils ont besoin avec des outils comme les tableurs qui voient le jour avec la micro-informatique dans les années 1980 ;
  • améliorer la productivité des programmeurs et des équipes réalisant les programmes, par un ensemble de méthodes, d'outils, de facilités d'emploi, de savoir-faire formant un tout cohérent.

En parallèle à la problématique de l'outil, qui démarre dès les années 1960, se greffe très rapidement une problématique projet, qui s'intéresse à l'efficacité des équipes opérant de concert pour réaliser des logiciels dont la taille excède de beaucoup celle dont serait capable un petit groupe de programmeurs, même très doués. Dans ce cas, c'est l'organisation, la méthode, l'architecture, les valeurs partagées qui vont permettrent l'efficacité.

Ces deux problématiques sont complémentaires. Cela permet déjà de dire qu'un outil qui crée des difficultés de communication au sein des équipes est un outil à proscrire. Réciproquement, une méthode qui présuppose des outils qui n'existent pas, ou des outils dont le coût de possession ruine la rentabilité économique du projet, n'aura aucune chance de survie dans notre univers socioéconomique où il faut être le meilleur, économiquement parlant. C'est un équilibre dynamique subtil entre ces deux problématiques qui permet le développement des technologies de l'information et de la communication.

On peut analyser la brève histoire du génie logiciel avec comme fil directeur cette double problématique :

  • histoire des outils qui ont indiscutablement permis d'augmenter la productivité des programmeurs ;
  • histoire des méthodes qui ont permis à des équipes de programmeurs toujours plus nombreuses de travailler de concert, mais avec une limite qui semble se situer aux alentours de huit cents à mille personnes dans un même projet (cas des systèmes d'exploitation des ordinateurs, qui restent à ce jour les programmes les plus complexes jamais réalisés).


Le risque de la dématérialisation[modifier]

Le logiciel occupe une place centrale dans nos économies mondialisées, nos machines, nos systèmes, nos loisirs et même notre vie de tous les jours. Nos sociétés sont devenues dépendantes de notre capacité à créer, adapter, faire évoluer, corriger, remplacer cette étrange « matière », concentré de connaissances de toute nature, constituée des milliards d'instructions dont dépendent désormais leur bon fonctionnement et notre confort.

Le logiciel est devenu de facto un enjeu stratégique majeur, mais en a-t-on vraiment conscience ? Rien n'est plus facile que de copier, voler, modifier (virus informatiques) le logiciel et les données qu'il manipule. Mais fait-on le nécessaire pour que ce fragile équilibre ne s'effondre pas un jour comme un bâtiment qui n'a pas respecté les normes sismiques du terrain dangereux où il a été construit ? Chacun a encore en mémoire ce qui fut présenté, d'ailleurs à tort, comme le bug de l'an 2000 (codage de l'année sur deux chiffres au lieu de quatre, par exemple « 85 » au lieu de « 1985 », ce qui aurait fait écrire « 00 », interprété comme « 1900 », au lieu de « 2000 », et entraîné une multitude d'erreurs). Il serait grand temps de traiter le logiciel avec le même sérieux que le silicium de nos microprocesseurs. L'industrie de la connaissance, comme on dit parfois, est d'abord et avant tout l'industrie du logiciel qui la matérialise, il ne faut jamais l'oublier !

Dans un numéro spécial de la revue IEEE Spectrum de septembre 2005, consacré au logiciel, un article de Robert Charette au titre évocateur, « Why software fails », dressait une liste impressionnante d'échecs de projets, le software hall of shame, qui devrait amener les décideurs à s'interroger. Le plus surprenant dans cette liste était que la plupart des échecs auraient pu être évités si les acteurs s'y étaient pris autrement et avaient respecté le b.a.-ba de l'ingénierie logiciel.

Il ne fait aucun doute aujourd'hui que le niveau moyen des informaticiens en charge des projets est insuffisant pour maîtriser la complexité des logiciels qui n'est elle-même que le reflet de la complexité de nos sociétés. Interconnecter tout le monde avec tout le monde, via Internet et le Web 2.0, fait certes émerger de nouvelles possibilités inaccessibles jusque-là, mais cela crée simultanément un formidable potentiel de dysfonctionnements qui ne se révéleront que progressivement. En termes biologiques, cela revient à faire sauter la barrière immunitaire qui nous protège de notre environnement, lequel n'est pas toujours aussi sympathique que le proclament certains. La crise du logiciel, dont on parle depuis les années 1970, est devenue une maladie chronique. Diffuser de l'information revient, si l'on n'y prend pas garde, à créer des dépendances cachées entre celui qui l'envoie et celui qui la reçoit, et cela de proche en proche. C'est un « simple » problème de traçabilité qui peut vite se transformer en cauchemar quand on voudra faire des mises à jour. On en a eu un faible aperçu avec l'an 2000 où il a fallu retrouver dans les programmes toutes les instructions qui manipulaient des dates. La dématérialisation de l'information permet d'un simple clic de répliquer cette dernière dans des millions de machines où il est facile d'en perdre la trace, et comme rien ne ressemble plus à des instructions que d'autres instructions, on voit tout de suite l'ampleur du problème. On ne peut rêver meilleure cachette, comme l'ont très bien compris les mafias et les groupes terroristes. La « forme » d'un programme est une forme logique, pas une forme physique et/ou géométrique ; c'est une abstraction qui ne se perçoit pas par les sens que nous a donné la nature. Il faut beaucoup d'entraînement pour percevoir les abstractions et former de bons informaticiens.

La formation est, comme toujours, une condition nécessaire. Mais le nombre d'informaticiens bien formés est notoirement insuffisant. En aéronautique, on ne confierait jamais des responsabilités à un ingénieur qui n'aurait pas les connaissances indispensables requises pour traiter des problèmes d'aéronautiques. En informatique, cela ne choque personne de confier des responsabilités de programmation à un ingénieur – quand c'est un ingénieur – qui n'a que des connaissances rudimentaires, acquises sur le tas, ou pis par ouï-dire, sur la technologie sous-jacente. Manager la connaissance requiert beaucoup de connaissances.

Derrière le problème de la formation, qui n'est qu'un problème de volonté des acteurs économiques, se cache cependant un autre problème d'une tout autre ampleur. Nous ne sommes qu'au début des sciences et technologies de l'information et de la communication. L'état des connaissances fondamentales du domaine n'a rien de comparable avec le stock dont disposent les ingénieurs dans les domaines traditionnels des sciences de l'ingénieur comme les matériaux ou l'énergie. La part de l'humain dans l'information est quelque chose de radicalement nouveau, et pour les scientifiques enseignants-chercheurs, et pour les ingénieurs. Il faut y travailler sérieusement si l'on ne veut pas être submergé par la complexité qui nous envahit progressivement. C'est un enjeu sociétal majeur qu'il nous faut relever, comme on en a relevé d'autres dans le passé.



INFORMATIQUE

Un usage bien établi associe le mot « informatique » à l'ensemble des opérations de traitement de l'information effectuées à l'aide de machines électroniques perfectionnées conçues par essence pour aider l'être humain à surmonter au mieux l'opposition classique qui sépare dans ses activités la compétence de la performance. Les premières machines ont eu effectivement pour mission de pallier les insuffisances humaines en matière de performance de calcul : il s'agissait, par exemple, de résoudre des équations différentielles complexes pour la météorologie, de calculer les paramètres permettant la fabrication de la première bombe atomique, de procéder au recensement des citoyens américains en manipulant d'énormes quantités de données en un temps relativement bref. Ce qu'on savait imaginer naturellement (compétence) mais pas vraiment réaliser (performance). Ces machines, qui n'étaient alors que des calculatrices électromécaniques puis électroniques (computers), ont été ensuite détournées de leur but initial et sollicitées pour accroître la performance du couple homme-machine dans le domaine plus vaste des données non numériques. Dès le début des années 1950, le traitement de l'information acquiert droit de cité. Et le calculateur devient data processing machine, littéralement « machine à traiter les données » (qu'on baptisera bientôt « ordinateur » en France), sans aucune restriction sur la nature des données manipulées.


E.N.I.A.C.[modifier]

Le premier calculateur numérique électronique programmable connu, l'E.N.I.A.C. (Electronic Numerical Integrator and Computer) a été mis au point durant la Seconde Guerre mondiale, à l'université de Pennsylvanie, par les Américains John P. Eckert et John W. Mauchly. Programmer l'E.N.I.A.C....

L'informatique à la conquête de l'entreprise[modifier]

À peine sorti des laboratoires de recherche, et immédiatement installé dans les grandes universités, pour la plupart américaines et britanniques (la technologie informatique se développera à ses débuts sans la France), le calculateur électronique est vite dirigé vers les grandes administrations. Cela signifie que, très tôt (dès 1951, avec l'Univac), son champ d'application se dédouble, faisant apparaître deux grandes classes d'activités : scientifiques, d'une part, administratives et commerciales, d'autre part. Les machines sont alors énormes, elles consomment une énergie phénoménale et occupent une salle spécialement aménagée (l'air conditionné étant un élément d'environnement indispensable). Dès 1954, elles commencent à investir les grandes entreprises publiques et privées.

Dans les premiers temps, à cause de la prédominance du « matériel » (hardware), héritée de la mécanographie, et en raison du fait que le système binaire et ses dérivés sont les seuls systèmes de codification externe mis en œuvre, les relations entre l'homme et la machine sont complexes et nécessitent le recours à des spécialistes. La structure de l'entreprise en est aussitôt modifiée ; un pôle puissant apparaît, le département informatique, qui prendra de jour en jour une importance considérable et constituera très vite un nouveau centre de pouvoir. La nécessaire centralisation des ressources (puissance de calcul et capacités de stockage) et la concentration des informations clés relatives au fonctionnement et à la stratégie de l'entreprise confèrent aux cadres responsables de la mise en place de cette technologie de pointe un rôle prédominant.

En même temps, de nouvelles professions spécialisées apparaissent. Elles correspondent aux différentes étapes du processus de traitement des données, selon le cheminement utilisateur final, données d'entrée, machine, résultats, utilisateur final. Ces techniciens sont des intermédiaires obligés pour cause d'incompatibilité de langage entre l'homme et la machine. On trouve ainsi, dans la chaîne des travaux :

  • l'analyste, qui traduit les besoins de l'utilisateur final en un schéma logique (organigramme) décrivant la succession des opérations nécessaires pour aboutir à un résultat exploitable ;
  • le programmeur, (ou développeur) qui traduit l'organigramme en un programme rédigé selon les règles d'un langage plus ou moins évolué (Cobol, Pascal, C, etc.) ;
  • le spécialiste de la saisie, qui transfère sur un support physique approprié les informations (programmes et données) destinées au traitement électronique proprement dit ;
  • le préparateur, chargé de mettre en place et de vérifier l'ensemble des moyens matériels et logiques nécessaires au traitement, supports des informations d'entrée, de sortie, informations de contrôle et de séquencement des travaux ;
  • l'opérateur, chargé de la surveillance de l'ordinateur et de ses systèmes périphériques en cours d'exploitation.

Il faut leur ajouter les spécialistes chargés de la maintenance des installations.

Toute cette organisation fonctionne autour du noyau technologique dur constitué par l'unité centrale et l'ensemble des périphériques attachés.

L'unité centrale présente des caractéristiques assez communes d'un constructeur à l'autre (les entreprises se copient plus ou moins, tout en maintenant un niveau d'incompatibilité propre à sauver leurs investissements et à garder captifs leurs clients). Elle évolue cependant rapidement, devenant de plus en plus compacte avec des circuits de plus en plus rapides. La capacité de ses systèmes de stockage (mémoires) s'accroît spectaculairement.

Du côté des organes périphériques, on multiplie les équipements spécialisés qui permettent de diversifier les moyens d'échange des données entre le monde extérieur et l'unité centrale. Ce qu'on appelle aujourd'hui interface homme-machine avait été négligé au début. On avait commencé par utiliser des tableaux de connexion précâblés, puis une machine à écrire connectée. L'ordinateur répondait en allumant des lampes sur le panneau de contrôle ou en actionnant la machine à écrire. Cet ensemble correspondait assez bien à l'idée qu'on se faisait de la cybernétique alors à la mode, mais le procédé demeurait peu pratique et il fallait bien maîtriser le système de numération binaire.


Les années 1960-1970 : les constructeurs font la loi[modifier]

On dispose donc, au début des années 1960, de machines spécialisées dans les opérations d'« entrées-sorties » (input-output), selon l'expression consacrée. Elles peuvent exécuter des opérations de lecture et d'écriture sur des cartes perforées (un souvenir de la mécanographie), sur des bandes de papier perforées (un souvenir de la télégraphie), sur des bandes magnétiques (un souvenir des premiers magnétophones) ou sur des disques (un souvenir des gramophones). Des imprimantes, mais bruyantes, encombrantes et lentes, permettent d'obtenir des états imprimés à peu près lisibles. Côté pilotage de l'ensemble, les premiers écrans vidéo apparaissent pour afficher des informations en clair (ou presque) et non plus des vues plus ou moins compliquées de sorties d'oscilloscopes.

Par parenthèse, et aussi surprenant qu'il paraisse, on s'aperçoit que l'informatique, au moins à ses débuts, n'est pas un domaine d'innovation : elle emprunte ses lampes à la radio, ses transistors à l'industrie spatiale, ses écrans à la télévision, ses périphériques à diverses autres disciplines... C'est une industrie qui ne crée pas vraiment les outils de son développement, se contentant de détourner les objets issus des efforts innovateurs des autres secteurs industriels. Il semble bien que l'informatique s'impose d'abord comme une industrie d'inspiration typiquement libérale, caractérisée en effet par : l'exploitation de besoins plus suscités que réels ; une explosion de modèles et de familles de machines, uniquement justifiée par des raisons de stratégie d'occupation de marchés ; une recherche avant tout appliquée, s'insérant dans une logique prioritaire de profit à court terme. Dès lors, on assemble, on exploite plutôt qu'on n'innove. Pour illustrer cela, on rappellera que la première tentative de commercialisation d' ordinateurs fut un échec (Mauchly, Univac-I, en 1951), parce que la prouesse technologique avait été privilégiée au détriment de la stratégie de marché. I.B.M., qui se lança tardivement dans la course, sut parfaitement intégrer la dimension commerciale de l'affaire. Jusque dans les années 1960, avec la série 360, et mis à part le 1401 et ses dérivés, les succès de cette firme furent plus commerciaux que technologiques.

Mais la technologie, alors, dépasse la plupart des utilisateurs. En dépit de la mise au point de langages de haut niveau, comme le Fortran ou le Cobol, élaborés par des comités composés de représentants d'usagers et de constructeurs, la connaissance des éléments clés du traitement de l'information échappe à beaucoup d'utilisateurs. En outre, les machines exigent un entretien assez suivi, ce qui fait que les constructeurs profitent largement d'un marché à la fois captif (pour des raisons d'ordre technique) et en pleine expansion. C'est ainsi qu'on installe chez les clients des équipements souvent surdimensionnés, inadéquats ou peu fiables. Sans parler de la totale incompatibilité des machines, non seulement d'un constructeur à l'autre, mais aussi, souvent, entre machines d'une même société. C'est le cas par exemple de la série 1400 d'I.B.M. qui nécessita le développement de systèmes spéciaux de simulation et/ou d'émulation des autres produits d'I.B.M., comme les séries 707x, 709x, 708x, etc.

Telle est, dans ses grandes lignes, la situation de l'informatique en Europe et aux États-Unis jusqu'à la conjonction de deux événements cruciaux, vers les années 1980 : l'apparition du micro-ordinateur, et la fin de l'ère des ordinateurs dits de troisième génération.

L'avènement de la micro-informatique[modifier]

Le premier micro-ordinateur professionnel fut français. En 1973, en effet, l'ingénieur François Gernelle développe au sein de la société R2E, le Micral N, présentant tous les caractères des futurs ordinateurs personnels des années 1980 : microprocesseur, clavier universel, écran cathodique, système d'exploitation. Faute de ressources financières, et malgré une brève descendance avec la série Micral de Bull, ce produit ne résistera pas à la future vague des PC (personal computer) d'I.B.M. En fait, la révolution est d'une autre nature. Apple fait, en 1978, une apparition fracassante en mettant sur le marché de la grande consommation le premier ordinateur personnel familial vendu comme un aspirateur, un poste de télévision ou un magnétophone.

L'objet est génial mais surtout tourné vers des activités ludiques, ce qui suscite immédiatement un engouement dans le grand public. Une compétition farouche se met en place... De nombreuses sociétés (Compaq, Amstrad, Atari, etc.) commercialisent des machines à vocations diverses, qui se ressemblent toutes et qui sont incompatibles. En dépit du dédain affiché par ses dirigeants, I.B.M. met, en 1981, son premier PC sur le marché. Le micro-ordinateur s'enrichit d'un véritable système d'exploitation (MS-DOS de Microsoft), et présente une architecture « ouverte », permettant d'envisager de nombreux ajouts de périphériques et l'utilisation de nombreux logiciels .

L'ordinateur personnel ou PC (personal computer) lancé en 1981 par la société I.B.M. Avec son véritable système d'exploitation et son architecture ouverte, ce micro-ordinateur se répand rapidement, permettant momentanément à I.B.M. de contrôler le marché de la micro-informatique.

Dès son apparition, le PC entre dans l'entreprise. Il intéresse énormément les cadres en raison des possibilités qu'il offre dans deux domaines privilégiés : le traitement de texte et les applications de type « tableur » (calculs sur des données organisées en tableaux numériques). Cet événement, totalement imprévu, surprend tout le monde : la compagnie I.B.M. elle-même, qui doit mettre en place une stratégie nouvelle, mais aussi les directeurs informatiques des entreprises qui voient surgir les PC un peu partout, dans les bureaux, d'une manière assez anarchique. Dans le même temps, grâce au développement d'interfaces homme-machine graphiques conviviales (tel le célèbre Windows de Microsoft), l'informatique dite « domestique » (ouverte aux particuliers) se généralise. I.B.M. réagit en adaptant son micro-ordinateur à ce nouveau marché. Le PC abandonne la cassette et s'enrichit de lecteurs de disquettes d'une capacité de 160 kilooctets (ko) d'abord, puis de 360 ko. Un disque dur (technologie dite Winchester) apparaît, avec une capacité de stockage dépassant la dizaine de millions d'octets. La mémoire principale (mémoire RAM, random access memory) est portée à 640 ko, avec possibilité d'extension. En 1987, le total des ventes mondiales atteint dix millions de machines. Ce succès, qui est lié à la notoriété et à la puissance d'I.B.M., donne au PC un statut de standard de fait. Et l'ère des clones commence, dans une ambiance de concurrence sauvage marquée par la prédominance et l'agressivité des industriels d'Asie.

La naissance des réseaux[modifier]

De son côté, l'autre informatique, la « grande », a poursuivi son évolution propre. Les architectures et les structures (machines et organisations) sont désormais caractéristiques de la « troisième génération », c'est-à-dire très centralisées, dans des environnements de « grands sites », avec des capacités de stockage accrues et des procédures de gestion relativement lourdes. Les types d'applications se multiplient, ainsi que les exigences d'accès aux ressources informatiques. Les unités de mémoire de masse prolifèrent. On produit des tonnes de papier. L'asphyxie menace les centres informatiques, car les performances des moyens d'entrée de l'information brute et des moyens de sortie de l'information traitée ne suivent pas les gains de performance des unités centrales.

Dès le milieu des années 1970, de nouvelles méthodes d'accès sont mises au point qui permettent aux utilisateurs de dialoguer directement et à distance avec l'ordinateur central. De nouveaux appareils prennent place dans les bureaux, dans les ateliers et derrière les comptoirs : les terminaux. Certains servent simplement d'intermédiaire pour les opérations d'entrée (par le clavier) et de sortie (par l'écran), ce sont des terminaux dits « idiots » (dumb terminals). Mais déjà, avec le développement des microprocesseurs, des terminaux dits « intelligents » apparaissent ; ils offrent quelques possibilités de traitement local et annoncent la future et proche décentralisation de la puissance de traitement, aujourd'hui clé de voûte des structures informatiques. L'intégration des terminaux constitue une des composantes de ce qu'il est convenu d'appeler la « quatrième génération » des systèmes informatiques. Il en résulte une plus grande autonomie des utilisateurs pour lesquels on invente le concept de « machine virtuelle » : à un instant donné, une partie des ressources de l'ordinateur central est réservée à l'utilisateur qui, de son terminal, « voit » ainsi l'équivalent d'une machine qui lui serait exclusivement affectée. Les conséquences de cette nouvelle approche sont multiples. D'abord, on observe un accroissement considérable du trafic ; ensuite, les types d'applications se multiplient ; enfin, chacun bénéficie d'un accès direct à l'unité centrale.

On se trouve déjà en présence d'un réseau, dont la topologie est en premier lieu celle d'une étoile. Il faut alors d'urgence imposer un ordre, matérialisé par des procédures de plus en plus strictes de régulation et de contrôle. Le système qui semblait s'être un temps démocratisé par la multiplication des moyens d'accès à l'information génère ses propres contraintes. Accès réservés, identificateurs, mots de passe, zones protégées, etc., sont les obsessions d'un nouvel acteur, l'administrateur du système, investi d'un nouveau pouvoir, le contrôle, pour des motifs d'efficacité, des activités de chaque utilisateur, et chargé d'une nouvelle responsabilité, la surveillance de l'intégrité des données et des procédures de l'entreprise. Car, avec les nouvelles méthodes d'accès, et en dépit des systèmes de sécurité, les curieux, les malins et les espions commencent à s'infiltrer dans les fichiers de données de l'entreprise. C'est l'époque où I.B.M. lance son concept d'architecture centralisée de réseau, SNA (System Network Architecture), où se dessine le schéma général des grands réseaux construits autour d'un ordinateur central puissant (host) qui communique avec une myriade de terminaux par l'intermédiaire d'un « frontal » et d'un certain nombre d'ordinateurs spécialisés, les contrôleurs de communication. Le frontal et les contrôleurs ont pour mission de soulager le système central des tâches de gestion des communications qui sont de plus en plus complexes ; en retour, ce dernier pourra se consacrer exclusivement à ce pour quoi il est fait : calculs, stockage des données, comptes rendus (reporting). D'ailleurs, la tentative d'I.B.M. n'est pas isolée. Vers la fin des années 1970, d'autres grands constructeurs se lancent dans l'aventure. Chacun offre ainsi sa propre solution d'architecture de réseau : Bull avec DSA (Distributed System Architecture), Digital avec Decnet, etc. Progressivement, un modèle général d'architecture s'impose, celui qu'une instance internationale, l'I.S.O. (International Standards Organization) définit avec obstination (c'est-à-dire en dépit de l'obstruction d'I.B.M. dont le produit SNA présentera longtemps une structure différente de celle de l'I.S.O.) le fameux modèle de communication à sept couches. Chaque « couche » logicielle décrit une étape de traitement des éléments constituants de la communication, constituants matériels d'extrémité de ligne, liaisons physiques, liaisons logiques, moyens de transport de l'information, etc., jusqu'à l'application du client. C'est le début de la grande période des réseaux.

Le triomphe de la décentralisation[modifier]

Avec tous ces outils (ordinateurs centraux, contrôleurs de communications, logiciels de communication, logiciels gestionnaires de réseaux), on va pouvoir commencer à travailler sur des réseaux aux topologies variées, et même faire communiquer des réseaux aux structures hétérogènes. Pour quoi faire ? Pour transmettre des données (qui ne seront plus seulement alphanumériques, mais qui s'étendront bientôt aux images et aux sons), d'une entreprise à l'autre, d'un département à l'autre au sein d'une même entreprise, d'un point à l'autre dans un même département. Cette situation montre bien qu'un mouvement se dessine dans les choix des structures, faisant renoncer à l'extrême centralisation qui avait été la règle peu de temps auparavant. En effet, le département dans l'entreprise fait maintenant valoir ses besoins spécifiques qui sont de deux types : des besoins locaux, pour les activités propres aux services du département, et des besoins d'échange avec l'extérieur pour les activités qui déterminent la contribution du département au fonctionnement global de l'entreprise. Les ordinateurs « départementaux », comme on les appelle, viennent relayer le système central pour ces tâches. Ce sont des ordinateurs de moindre puissance (mais l'évolution de la technologie leur permettra tout de même d'atteindre assez rapidement des performances remarquables), délocalisés, et affectés à des tâches de services spécialisés (gestion des fichiers et des bases de données, gestion des impressions, gestion des communications, le tout au niveau local). Ils constituent une classe nouvelle d'ordinateurs entre les gros ordinateurs (main frames) et les micro-ordinateurs évoqués plus haut. En pratique, ils se confondent avec la classe dite des « minis ».

Une sorte de hiérarchie s'établit donc entre les différentes machines. Tout en haut, les supercalculateurs, cités ici pour mémoire, puis les gros systèmes centraux, les minis et, au bas de la hiérarchie, les micro-ordinateurs. En dix ans, ces derniers ont connu une formidable expansion. Ils bénéficient désormais de logiciels variés, efficaces et bon marché. Grâce au perfectionnement des microprocesseurs, leur niveau de performance atteint celui qui était il y a peu celui des minis. Il ne leur manque qu'une chose : pouvoir communiquer les uns avec les autres ou avec un ordinateur central. Sans tarder, leur configuration s'enrichit de logiciels de communication et d'adaptateurs particuliers (qui vont permettre leur connexion à des lignes de téléphone ou à des câbles spécialisés). La construction de l'édifice s'achève. Désormais, les individus peuvent travailler sur une station de travail intelligente, personnalisée, capable de traiter d'importantes quantités de données locales, pour des applications locales, mais, aussi, de communiquer, comme avec un simple terminal, et 'accéder ainsi à l'ensemble des données de l'entreprise.

La physionomie de l'informatique évolue donc encore, dès le début des années 1990. Cette fois, on va parler d'informatique répartie. On est au comble de la décentralisation. Les grands réseaux deviennent des réseaux « fédérateurs », des backbones, qui ont pour mission de mettre en relation des dizaines, voire des centaines de petites structures – les réseaux locaux – chargées de satisfaire au mieux, au plus près et au plus vite, l'ensemble des besoins des groupes de travail, des services, des petits départements. Ces réseaux locaux font appel à des architectures caractéristiques où le schéma dit « client-serveur » est devenu une nécessité. Une machine dédiée (un micro-ordinateur performant, avec les capacités d'un mini) a pour mission de « servir » les demandes des « clients » que sont les applications des utilisateurs connectés au réseau local. Ces « serveurs » sont des serveurs de fichiers, d'impression, de communication, etc. D'autres machines spécialisées – « routeurs », « passerelles », commutateurs – permettent d'établir des relations entre réseaux locaux s'appuyant sur des protocoles de communication différents, ou entre réseaux locaux et réseaux étendus, ou même entre configurations de backbone, pour des liaisons complexes à très haute vitesse. On retiendra à ce propos le succès des transmissions par fibres optiques faisant intervenir des protocoles spécifiques, SONET par exemple (Synchronous Optical NETworking, 1985, aux États-Unis), ou SDH (Synchronous Digital Hierarchy, 1989, en Europe, mais répandu dans le monde entier). Les débits accessibles peuvent atteindre 10 milliards de bits par seconde (10 Gbit/s) pour le niveau STM-64 (Synchronous Transport Module) de SDH ou même 40 Gbit/s pour la version STM-256).

Personne n’est une île[modifier]

« Personne n'est une île et chacun de nous est un territoire du continent humain... », rien n'illustre mieux l'évolution caractéristique des principes et des méthodes de l'informatique à partir de 1990 que ce court extrait d'un poème du philosophe et poète anglais John Donne (1573-1631). C'est qu'entre-temps le dernier avatar de la technologie des réseaux, le « réseau des réseaux », Internet, a ouvert à l'utilisateur final l'accès à l'immense base de données des connaissances du monde entier. L'information devient disponible partout, pour tous et à grande vitesse, grâce à des « moteurs de recherche » ultraperformants, par exemple Google (1997, le plus célèbre et le plus utilisé), et à des capacités d'accès étendues utilisant de nouvelles technologies de transport de l'information, via le téléphone, par exemple l'ADSL (asymmetric digital subscriber line, 1999, en France). Alors, tout équipement informatique connectable au réseau est identifié par un numéro unique mondial, (« adresse IP ») ; de même, chaque ressource logique, chaque utilisateur, possède son adresse unique, adresses là encore universelles.

On le voit, le caractère prédominant de l'évolution, c'est l'intégration de l'individu dans un système de communication mondialisé qui fait la part belle aux relations multiples entre personnes ; en peu d'années la messagerie électronique (mél, ou e-mail) a dominé les échanges, ce qui fait qu'aujourd'hui ce sont les courriels (pour courrier électronique) qui constituent l'essentiel du trafic sur Internet. D'ailleurs, à cet égard, la terminologie est significative : on utilise un « explorer » un « navigateur », on « surfe » sur le Net.... On explore toujours, donc, mais il ne s'agit plus ici d'un monde géographique, physique, mais bien d'un monde « moral », le monde des idées, de la connaissance (sans parler du monde virtuel, où chacun peut se doter d'un représentant graphique personnalisé, avatar interactif évoluant dans un « cyberespace »), pour un éventail infini d'activités, y compris les sulfureuses, les interdites.

Car si on peut accéder aux ressources du monde entier, à l'inverse celui-ci peut aussi accéder aux ressources propres de cet utilisateur nouveau qu'on appelle « internaute ». Lequel devient en même temps fragilisé par la curiosité indésirable, la malveillance, voire l'espionnage. D'où le développement simultané de moyens de protection contre le piratage, les intrusions inopportunes, les virus informatiques, les messages non sollicités... De ce point de vue, l'informatique du début du IIIe millénaire, avec ses « antispam », ses « antivirus », ses « coupe-feu », et le formidable essor des techniques de cryptage, met bien en évidence une contradiction propre à notre société partagée entre un besoin exacerbé de communication et une méfiance croissante à l'égard de l'autre.

­Pierre GOUJON

http://searchnetworking.techtarget.com/definition/hub?utm_content=eru-rd2-rcpG&utm_medium=EM&asrc=EM_ERU_87335737&utm_campaign=20171228_ERU%20Transmission%20for%2012/28/2017%20(UserUniverse:%202489472)&utm_source=ERU&src=5703487