Représenter l’Invisible
L’architecture d’un logiciel est par nature intangible. Contrairement à l’architecture d’un bâtiment, on ne peut pas la “voir” d’un seul coup d’œil. Pourtant, sans plan clair, un système devient rapidement un enchevêtrement incompréhensible de dépendances (le fameux Spaghetti Code).
En 1995, Philippe Kruchten publie une méthode révolutionnaire pour décrire les systèmes logiciels : Le modèle des 4+1 vues.
Le Constat de Kruchten
Un diagramme unique ne peut pas représenter tous les aspects d’un logiciel complexe. Un développeur a besoin de voir les classes et les modules, un administrateur réseau a besoin de voir les serveurs physiques, et un chef de projet a besoin de comprendre comment les fonctionnalités sont réalisées.
Kruchten propose donc de diviser l’architecture en vues distinctes mais complémentaires :
1. La Vue Logique (Logical View)
Elle s’adresse aux développeurs. Elle décrit l’architecture fonctionnelle : les packages, les classes, les entités du domaine métier et leurs relations. C’est le “cœur” algorithmique.
3. La Vue Développement (Development View)
Elle concerne l’organisation statique du code dans l’environnement de développement : la structure des dossiers, les modules logiciels, les bibliothèques tierces.
4. La Vue Physique (Physical View)
S’adresse aux ingénieurs DevOps et système. Elle mappe les éléments logiciels sur les éléments matériels (nœuds de serveurs, bases de données, réseaux, clusters cloud).
Pourquoi c’est encore pertinent
Aujourd’hui, même avec le Cloud et les microservices, le modèle 4+1 reste le standard mental pour séparer les préoccupations. Avant de coder, être capable de dessiner au moins la vue logique et la vue physique évite 80% des erreurs de conception structurelles.