Pour analyser ou transformer un système logiciel, il faut d'abord pouvoir le représenter. Un programme n'est pas seulement un ensemble de fichiers — c'est une structure composée de modules, de dépendances, de flux de données et d'interactions entre composants. Le moteur CAKE© doit donc disposer d'une manière claire de représenter ces architectures.
Représenter une architecture revient à construire une carte du système. Cette carte peut montrer les composants principaux, les relations entre modules et les chemins empruntés par les données. Grâce à cette représentation, le moteur peut comprendre la structure globale du logiciel.
Dans une représentation d'architecture, plusieurs types d'éléments apparaissent généralement.
Une fois l'architecture représentée, le moteur peut manipuler ce modèle. Il peut analyser les dépendances, détecter des structures répétitives et simuler des transformations. Cette manipulation se fait sur le modèle interne, sans modifier immédiatement les fichiers réels.
Les représentations peuvent également être visualisées. Une interface graphique peut permettre d'afficher les modules d'un système, de montrer les flux entre composants et d'observer l'évolution d'une architecture. Cette visualisation aide les développeurs à comprendre rapidement des structures complexes.
La représentation d'une architecture constitue la base de toutes les transformations. Avant de modifier un système, le moteur doit savoir quels composants existent, comment ils interagissent et quelles dépendances les relient. Une représentation précise permet d'effectuer des transformations plus sûres.
Les architectures évoluent. La représentation du système doit donc pouvoir être mise à jour lorsque de nouveaux modules apparaissent, lorsque certaines dépendances changent ou lorsque les flux de données évoluent. Cette adaptation permet au moteur de rester synchronisé avec le système réel.
Pour transformer un système logiciel, il faut d'abord en construire une représentation claire.
Le prochain chapitre explore les transformations concrètes des architectures et les mécanismes permettant de modifier les systèmes analysés par CAKE©.