Il existe un moment précis où l'architecture quitte le domaine conceptuel — celui de l'exécution. Un système logiciel n'existe réellement que lorsqu'il fonctionne dans un environnement capable d'exécuter ses instructions. Dans l'architecture CAKE©, cet environnement n'est pas considéré comme un simple détail technique. Il constitue une couche fondamentale du système.
Un environnement d'exécution définit les conditions dans lesquelles un programme devient actif — un runtime, une machine virtuelle, un moteur d'interprétation, un système d'exploitation, des ressources matérielles. Ces éléments forment le contexte dans lequel le programme interagit avec le monde réel.
Comprendre ce contexte est essentiel pour comprendre le comportement du système.
L'environnement d'exécution influence profondément le système. Il détermine la gestion de la mémoire, les interactions avec le matériel, les performances et les mécanismes de sécurité. Dans l'approche CAKE©, ces éléments doivent rester visibles dans l'architecture.
Cette visibilité permet de répondre à plusieurs questions essentielles : où le programme est-il exécuté ? Quel moteur interprète le code ? Quelles ressources sont utilisées ? Comment les modules interagissent avec l'environnement ?
Dans l'architecture CAKE©, les environnements d'exécution sont intégrés dans la structure globale — ils ne sont pas séparés de l'architecture, ils en font partie. Chaque environnement peut être identifié, chaque interaction avec cet environnement peut être examinée. Cette organisation renforce la lisibilité du système.
Les systèmes modernes doivent souvent fonctionner dans plusieurs contextes — sur différents systèmes d'exploitation, dans des environnements virtualisés, sur des plateformes distribuées. Une architecture qui identifie clairement ses environnements peut s'adapter plus facilement à ces variations. Les développeurs peuvent comprendre comment le système s'exécute dans chaque contexte.
Les environnements d'exécution jouent un rôle important dans la sécurité. De nombreux mécanismes de protection dépendent du runtime ou du système d'exploitation — la gestion des permissions, l'isolation des processus, les mécanismes de sandbox. Lorsqu'un environnement est clairement identifié dans l'architecture, ces mécanismes deviennent plus faciles à examiner.
La sécurité peut être analysée de manière plus rigoureuse.
Dans la programmation transversale, les environnements d'exécution complètent les flux de transformation. Le chemin complet du système peut être suivi : depuis la description du code, à travers les transformations, jusqu'à l'environnement où le programme fonctionne réellement. Cette continuité permet de comprendre le système dans son intégralité.
Lorsque les environnements d'exécution sont explicitement intégrés dans l'architecture, les développeurs peuvent anticiper les effets des changements. Une modification dans le runtime ou dans l'environnement système peut avoir des conséquences importantes. La visibilité de ces éléments permet de mieux gérer ces évolutions.
Un système logiciel ne devient réel qu'à travers son environnement d'exécution.
— Principe clé · T02 C05 · CAKE© Library