Principe de l'architecture d'un logiciel
Prenons un traitement de texte ou un tableur. Prenons une base de données, encapsulée dans un logiciel tel un gestionnaire d'agendas ou une base en tant que telle qui est le support d'un applicatif. Prenons un navigateur Internet. Prenons un outil de développement. Prenons un progiciel de comptabilité.
Quel que soit le programme, simple ou complexe, autonome ou partie d'un autre programme, nous pouvons effectuer le même constat : tout traitement automatique de l'information, quelque soit sa nature, repose sur six piliers fondamentaux :
- Le traitement effectué par l'ordinateur.
- Les données volatiles.
- Les données persistantes.
- L'interface entre l'utilisateur et ce programme.
- L'interface entre les autres programmes et ce programme.
- L'interface entre les autres ordinateurs et l'ordinateur où fonctionne ce programme.
A cela s'ajoute le langage de programmation jouant le rôle de ciment entre ces six volets.
Traitement effectué par l'ordinateur
L'objectif est d'effectuer une succession d'actions en réponse à une action extérieure au programme.
Cette action extérieure est déclenchée soit par :
- L'utilisateur via l'interface le liant l'utilisateur.
- Un autre programme via l'interface le liant aux autres programmes.
- Un autre ordinateur via l'interface liant l'ordinateur aux autres ordinateurs.
La suite d'actions déclenchées peut être :
- Réaliser un autre traitement.
- Effectuer un calcul.
- Travailler sur les données volatiles.
- Travailler sur les données persistantes.
- Animer l'interface entre l'utilisateur et ce programme.
- Animer l'interface entre les autres programmes et ce programme.
- Animer l'interface entre les autres ordinateurs et l'ordinateur où fonctionne ce programme.
Voici des exemples d'actions déclenchant un traitement
- L'utilisateur clique sur un bouton, saisit une valeur et la valide.
- Un autre programme envoie un message au programme, actionne un sémaphore.
- Un autre programme d'un autre ordinateur envoie un message via une socquette.
Voici des exemples d'actions déclenchées :
- Le programme appelle un sous-programme.
- Le programme effectue une projection statistique ou une transformée de Fourier.
- Le programme ajoute, met à jour ou supprime des données dans un fichier ou une base de données.
- Le programme affiche une boîte de dialogue, grise des menus, active des boutons, demande une saisie au clavier.
- Le programme envoie un message à un autre programme, actionne un sémaphore - synchronisation entre deux programmes.
- Le programme envoie un message via une socquette - canal de communication sur un réseau.
Données volatiles
Les données volatiles permettent au programme de conserver une trace des actions effectuées ou de conserver les résultats d'un calcul.
Par définition, la durée de vie des données volatiles est identique à de la durée de vie du programme. Lorsque le programme se termine, ces données sont perdues.
Données persistantes
Les données persistantes permettent au programme de conserver une trace des actions effectuées ou de conserver les résultats d'un calcul entre deux exécutions du programme.
Par définition, la durée de vie des données persistantes est indépendante de la durée de vie du programme. Lorsque le programme se termine, ces données sont encore disponibles. Si le programme est ré exécuté ultérieurement, il pourra recharger les données persistantes.
Voici un exemple de conservation des données persistantes
- Un fichier texte.
- Un fichier binaire.
- Un fichier séquentiel indexé.
- Un registre de Windows.
- Une base de données relationnelles Oracle.
Interface entre l'utilisateur et le programme
L'interface entre l'utilisateur et ce programme peut être minimale : il s'agit en ce cas d'un système de saisie de texte pour la communication de l'utilisateur vers le programme, d'un système d'écriture de texte pour la communication du programme vers l'utilisateur. Ceci est appelé l'entrée-sortie standard.
Elle peut être néanmoins plus conviviale. Elle est alors composée de fenêtres, menus, listes, boîtes à cocher, etc. Elle repose en ce cas sur un des grands standards visuels dénommés Interface Homme-Machine (IHM).
Voici des exemples d'interface entre l'homme et le programme
- L'entrée - sortie standard.
- Une interface fenêtrée sous Windows.
- Une interface fenêtrée sous Motif / Unix.
- Une interface fenêtrée sous Mac Os.
- Une interface Hyper Text Markup Language (HTML) / Java intégrée à un navigateur Internet.
Interface entre les autres programmes et le programme
L'ère où un programme était autonome est révolue depuis longtemps : un programme ne peut plus ignorer les autres, sinon il serait condamné à intégrer les fonctionnalités de tous les autres programmes réunis ! Un programme est spécialisé sur une fonctionnalité. En revanche, il a besoin des fonctionnalités des autres programmes pour fonctionner.
Voici des exemples d'interface entre les autres programmes et le programme :
- Les mémoires partagées d'Unix.
- Les fichiers mapés en mémoire de Windows.
- Les données persistantes en détournant leur usage initial.
- L'interface entre les autres ordinateurs et l'ordinateur où fonctionne le programme en détournant son usage initial.
- Le système Common Object Request Broker Architecture (CORBA) simplifié de l'Object Management Group (OMG).
- Le système ActiveX de Microsoft.
Voici des exemples de fonctionnalité d'un programme :
- Un gestionnaire de base de données.
- Un traitement de texte.
- Une feuille de calcul.
- Un système expert.
- Un compilateur.
Interface entre les autres ordinateurs et l'ordinateur où fonctionne ce programme
L'ère où un ordinateur est autonome est en passe d'être révolue : un ordinateur peut à son tour ne plus ignorer les autres, sinon il faudrait qu'il ait la puissance de tous les autres ordinateurs réunis ! Un ordinateur à une spécialisation fonctionnelle. En revanche, il a besoin des spécialisations fonctionnelles des autres programmes pour fonctionner.
Voici des exemples entre les autres ordinateurs et l'ordinateur où fonctionne le programme :
- Le courrier électronique.
- Les socquettes sur Transport Control Protocol/Internet Protocol (IHM/IP).
- Le système Common Object Request Broker Architecture (CORBA) de l'Object Management Group (OMG).
- Le système Com de Microsoft.
Voici des exemples de spécialisation fonctionnelle d'un ordinateur :
- Etre un ordinateur personnel.
- Etre une station de calcul.
- Etre un serveur de traitements.
- Etre un serveur de données.
- Etre un serveur de réseau comportant un Firewall.