RECHERCHE :
Bienvenue sur le site de Michel VOLLE
Powered by picosearch  


Vous êtes libre de copier, distribuer et/ou modifier les documents de ce site, à la seule condition de citer la source.
 GNU Free Documentation License.

Découpage du système informatique en "applications"

28 décembre 2002

Tout système informatique est un dispositif dans lequel des données (résultats de mesures effectuées sur des faits du monde réel, ou événements) sont :
- entrées (soit elles sont saisies, soit elles proviennent d'autres programmes), 
- traitées (addition, calcul de ratios etc.) afin de procurer de nouvelles données, les résultats

Les résultats sont édités (mis en mémoire et/ou présentés sur une interface) soit pour commander un automate, soit pour être utilisés par un être humain qui décidera et agira en conséquence. 

La complexité des traitements interdit en général de maîtriser un système global. On le découpe donc en applications, exécutées chacune par un programme. Pour définir ce découpage, on établit le tableau croisant données d'entrée et résultats puis on classe ce tableau de façon à lui donner une structure bloc-diagonale (beaucoup d'échanges à l'intérieur d'un même bloc, peu d'échanges entre blocs différents). A chaque bloc correspond une application. 


Logiciel, application, logiciel système, progiciel

Parmi les logiciels, on a été amené à distinguer les "logiciels systèmes" qui fournissent des ressources utilisées par les applications (système d'exploitation, pilotes, BIOS, moniteur transactionnel, système d'exploitation du réseau, protocoles de communication, protocole de messagerie etc.)

A l'origine, le mot "application" a été retenu pour désigner une utilisation spécifique de l'ordinateur en vue d'automatiser l'une des grandes fonctions de l'entreprise comme la gestion des stocks, la paie ou la facturation : l'ordinateur est en effet alors "appliqué" à cette fonction. 

Parmi les applications, on distingue celles qui nécessitent un programme spécifique et celles qu'il est plus efficace de faire réaliser par un logiciel du commerce, appelé "produit logiciel" ou encore "progiciel" (SGBD, traitement de texte, tableur, logiciel graphique, messagerie, agenda et annuaire téléphonique, gestion de projet, CAD, production d'images, progiciels mathématiques et scientifiques, production multimédia, navigateurs Web etc.)

 

Organisation du système informatique en applications

Le système informatique est alors défini par un ensemble d'applications à l'intérieur desquelles les échanges de données sont intenses mais dont les échanges mutuels sont relativement faibles. Ce découpage, associé à une organisation des échanges "transverses" et des référentiels, c'est la tâche de l'urbanisme. Elle se fait en pratique de façon empirique et approximative, car elle doit tenir compte de contraintes qui résultent de l'histoire de l'entreprise (de même, quand on organise l'entreprise, il convient en principe de regrouper dans les mêmes unités les personnes qui ont beaucoup d'informations à partager ou à échanger ; cette répartition se fait en pratique de façon empirique, la théorie servant seulement de référence directrice).

Les applications reçoivent chacune un nom propre ("Géode", "Gide", "Sage" etc.). Elles sont représentées par une icône sur le poste de travail des utilisateurs, ce qui leur confère une sorte de personnalité. Elles sont définies selon les besoins des utilisateurs (de même, on construit une maison selon les besoins de ses habitants futurs) ; cependant une fois construites elles ont une existence propre et tout se passe comme si c'était l'utilisateur qui devait s'adapter aux applications (il en est de même pour quelqu'un qui emménage dans une maison existante). L'attention se concentre alors sur les données et les traitements, sur la partie informatique du système d'information et sur les contraintes techniques auxquelles elle doit obéir : cela ne doit pas faire oublier que le système d'information est fait pour être utilisé, tout comme une maison est faite pour être habitée.

Qualité des applications

Pour construire un programme, il suffit de définir les données et de programmer les traitements, ou "algorithmes" (d'où le titre du livre de Niklaus Wirth, créateur du langage Pascal : Algorithms + Data Structures = Programs, Prentice-Hall, 1976). Mais sauf dans les cas les plus simples on ne peut pas plus se lancer directement dans la programmation que l'on ne pourrait construire une maison sans avoir dessiné son plan. 

Le plan d'un programme, c'est un modèle qui doit répondre aux besoins des utilisateurs tout en tenant compte de l'état de l'art informatique et des contraintes techniques et économiques de la réalisation. Les principales qualités sémantiques que doit posséder un modèle sont :
- la pertinence : il faut que le modèle réponde correctement aux besoins des utilisateurs ; 
- puis la sobriété : comme toute représentation du monde réel, celle que donne le modèle est schématique ; ce schématisme doit non seulement être accepté, mais assumé de façon positive : il faut s'efforcer de simplifier le système d'information (voir "Complexité et complication") ; 
- enfin la cohérence : si l'application comportait une incohérence interne elle serait fausse et il faudrait corriger cette "bogue" ; elle doit en outre être cohérente avec le système d'information de l'entreprise : ses identifiants et ses nomenclatures doivent suivre les évolutions du référentiel.  

Historiquement, l'attention des informaticiens a d'abord été concentrée sur les traitements ; ils ont mis au point des les algorithmes (cf. Donald E. Knuth, The Art of Computer Programming, Addison Wesley 1997) qui permettent :
- de calculer (l'approximation des nombres réels par des nombres rationnels pose de redoutables problèmes mathématiques), 
- produire des nombres au hasard (nécessaires pour les calculs qui simulent un comportement aléatoire),
- classer et trier les données etc. 
Les informaticiens ont aussi défini des structures de données, du plus simple (chaîne de caractère, booléen, entier relatif, rationnel, réel) au plus compliqué (vecteurs, tenseurs, structures composites). 
La connaissance des structures et algorithmes classiques, ainsi que de leurs conditions d'utilisation, fait partie du bagage professionnel de l'informaticien. Il doit maîtriser aussi les procédés de vérification des programmes ("déboguage"). 

Outre les qualités sémantiques citées ci-dessus, l'application doit avoir des qualités techniques : elle doit être construite de sorte qu'une modification introduite en un endroit du programme ne provoque pas d'erreurs dans d'autres parties du programme, que la correction des "bogues" soit aisée, enfin qu'il soit facile d'y introduire des changements pour tenir compte de l'évolution des besoins des utilisateurs ("évolutivité"). 

L'évolutivité implique et résume les autres qualités techniques : pour que l'application soit évolutive, il faut que les modifications ne provoquent pas d'erreur et qu'il soit aisé de corriger les erreurs. La sobriété favorise l'évolutivité : toutes choses égales d'ailleurs, plus une application est simple, plus il sera facile de la faire évoluer. 

Enfin, le système informatique doit assurer les échanges de données entre l'application et les autres applications en assurant le synchronisme et les transcodages nécessaires (voir A propos des EAI).

Une application peut fonctionner parfaitement et satisfaire les utilisateurs lors de sa recette sans pour autant être sobre, ni cohérente, ni évolutive ; ces défauts n'apparaîtront qu'à la longue et ils entraîneront une obsolescence rapide. Après quelques années il faudra refaire l'application et, dans l'attente de la réfection, les utilisateurs auront dû se servir d'un outil inadapté. Le manque d'évolutivité accroît donc le coût annuel moyen de l'application tout en altérant sa pertinence.