Résumons nous ...
Aujourd'hui, c'est déjà hier 


Nous avons proposé la thèse que l'idée de modélisation a introduit une rupture profonde dans l'ingénierie du logiciel au début des années 80. Nous la complétons maintenant d'une autre thèse : une seconde rupture, tout aussi profonde est à l'oeuvre depuis déjà quelques années.

Le tableau suivant en forme d'inventaire (les item proposés en lignes) distingue trois périodes de l'histoire du Génie Logiciel :
 
Période Fonctionnelle Conceptuelle Communicante
Les problèmes à résoudre structurés, permanents :
information = constater l'activité
ouverts et localisés :
information = interroger & analyser 
évolutifs et globaux :
information = distribuer et partager 
dans le projet de ... développer des applications indépendantes relier les applications, accès concurrent et partagé faire coopérer des modules indépendants mais interopérables
avec des architectures matérielles centralisées, spécialisées et propriétaires héterogènes
+ terminaux passifs
+ Micro informatique
décentralisées
+ terminaux intelligents
+ réseaux de communication
au moyen d'architectures logicielles Fichiers et chaînes de traitement préenregistrées (Job Control Languages) d'une Base de Données, un SGBD 
et un moniteur transactionnel
Réparties, organisées en client serveur, non dédiées, évolutives et donc à concevoir
pour des utilisateurs Inexistants (hors système d'information) Passifs (saisie et consultation) Décideurs (exprimant des besoins, dialoguant avec leurs machines)
avec des langages de programmation Procéduraux Procéduraux + Déclaratifs (SQL) Langages à Objets
au moyen d'outils Générateurs de code CASE CASE + langages de programmation 
une conception  ... par découpage en sous-problèmes , analytico fonctionnelle : des résultats vers les données par modélisation : "construire le SI, c'est construire sa base de données" pour et par réutilisation : Frameworks, Design Patterns, bibliothèques de classes
et des méthodes d'analyse structurée globales qui séparent données/ traitements et permettent une validation de principe par références croisées - exploitant un capital  d'expériences 
- unifiées par une notation commune (UML)
- procédant de manière incrémentale
- validant par simulation effective
Remarque : il est vain de chercher à dater les frontières de colonnes :
- les résultats de la recherche ne sont pas concomitants de leur exploitation par l'industrie, même si l'écart tend à se réduire.
- au sein des entreprises elles-mêmes, les rythmes sont différents et pas toujours nettement marqués : on peut voir un SGBD utilisé à la mode gestion de fichiers, du code Java ou C++ écrit à la mode procédurale, etc.

Ce qui nous semble significatif de la deuxième rupture :
- la prise de pouvoir des utilisateurs sur l'informatique (une appropriation)
- le centrage des problèmes sur la communication de l'information
- la montée en abstraction des langages permet d'exprimer aussi bien l'analyse que la réalisation et d'obtenir une traçabilité des étapes, inscrite dans les logiciels applicatifs
- la question à résoudre : celle des architectures logicielles. Généralistes et modulaires, elles s'affranchissent des contextes applicatifs. Alors que chaque contexte applicatif dictait son style d'architecture, ce style est aujourd'hui lui-même à concevoir. Par un effet de balancier classique, la prise de pouvoir des utilisateurs redonne du grain à moudre aux informaticiens.

On peut observer la trace de ce changement dans le glissement du vocabulaire lui-même. Alors que le terme de  "conception" référait au système d'information, indépendamment de ses aspects proprements informatiques, le même terme réfère aujourd'hui à l'architecture du logiciel et prend la place de l'ancien terme "réalisation". Quant à la conception du SI, on l'appelle plus volontiers "analyse", ce qui nous semble douteux.


Auteur : Bernard Morand  Eléments historiques Date de dernière mise à jour : 1/11/2000