Une fois qu'un système est observé et représenté, il devient possible d'agir sur lui. Mais transformer une architecture n'est jamais trivial. Un système logiciel contient des dépendances, des flux d'information et des interactions sensibles. Une transformation mal contrôlée peut provoquer des erreurs ou des incohérences. Le rôle du moteur CAKE© est donc de permettre des transformations maîtrisées.
Dans l'ingénierie des architectures, plusieurs formes de transformations peuvent apparaître. Elles peuvent être appliquées individuellement ou combinées.
Une transformation CAKE© commence généralement sur le modèle interne du système. Le moteur modifie d'abord la représentation de l'architecture, ce qui permet de simuler les transformations, d'analyser leurs conséquences et de détecter d'éventuelles incohérences. Ce n'est qu'après validation que les modifications peuvent être appliquées au système réel.
Pour éviter les erreurs, les transformations sont souvent contrôlées par plusieurs étapes successives.
Cette approche réduit les risques lors des modifications importantes.
Un avantage important du moteur CAKE© est la possibilité de rendre les transformations répétables. Une transformation peut être décrite sous forme de règle ou de script, puis appliquée sur plusieurs projets, sur différentes architectures et dans différents environnements. Cette capacité facilite l'évolution des systèmes à grande échelle.
Les transformations peuvent également servir à expérimenter. Les développeurs peuvent tester plusieurs architectures possibles, différentes organisations de modules et plusieurs pipelines techniques. Ces expérimentations permettent d'explorer de nouvelles approches.
Avec ces mécanismes, CAKE© ne se limite plus à exécuter des programmes. Il devient un outil pour concevoir et transformer les architectures logicielles. Les développeurs peuvent observer les systèmes, analyser leurs structures et expérimenter différentes transformations.
Transformer un système devient plus sûr lorsque les modifications sont analysées et simulées avant d'être appliquées.
Le prochain chapitre explore les interfaces humaines du moteur CAKE© et la manière dont les développeurs peuvent interagir avec ces outils d'analyse et de transformation.