Application monolithique

En génie logiciel, une application monolithique décrit une application logicielle à un seul niveau dans laquelle l’interface utilisateur et le code d’accès aux données sont combinés en un seul programme à partir d’une seule plate-forme.

Une application monolithique est autonome et indépendante des autres applications informatiques. La philosophie de conception est que l’application est responsable non seulement d’une tâche particulière, mais peut effectuer toutes les étapes nécessaires pour compléter une fonction particulière. Aujourd’hui, certaines applications de finances personnelles sont monolithiques en ce sens qu’elles aident l’utilisateur à effectuer une tâche complète, de bout en bout, et sont des silos de données privés plutôt que des parties d’un système plus vaste d’applications qui fonctionnent ensemble. Certains traitements de texte sont des applications monolithiques. Ces applications sont parfois associées à des ordinateurs centraux.

En génie logiciel, une application monolithique décrit une application logicielle conçue sans modularité. La modularité est souhaitable, en général, car elle prend en charge la réutilisation de parties de la logique applicative et facilite également la maintenance en permettant la réparation ou le remplacement de parties de l’application sans nécessiter de remplacement en gros.

La modularité est obtenue à des degrés divers par différentes approches de modularisation. La modularité basée sur le code permet aux développeurs de réutiliser et de réparer des pièces de l’application, mais des outils de développement sont nécessaires pour effectuer ces fonctions de maintenance (par exemple, l’application peut devoir être recompilée). La modularité basée sur les objets fournit l’application sous la forme d’une collection de fichiers exécutables distincts qui peuvent être maintenus et remplacés indépendamment sans redéployer l’application entière (par exemple, fichiers « dll » Microsoft; fichiers « objets partagés » Sun/UNIX). Certaines fonctionnalités de messagerie d’objets permettent aux applications basées sur des objets d’être distribuées sur plusieurs ordinateurs (par exemple, Microsoft COM+). Les architectures orientées services utilisent des normes/protocoles de communication spécifiques pour communiquer entre les modules.

Dans son utilisation originale, le terme « monolithique  » décrivait d’énormes applications mainframe sans modularité utilisable. Ceci, combiné à l’augmentation rapide de la puissance de calcul et donc à l’augmentation rapide de la complexité des problèmes pouvant être résolus par le logiciel, a entraîné des systèmes non maintenables et la « crise du logiciel ».