Retour

Vulgarisation du concept d'architecture logiciel

Publié le 3 novembre 2025 à 11:39 Par Marc Chappuis

Ceci est un article de vulgarisation à l'attention des non-programmeurs pour comprendre le concept d'architecture logiciel. Le but de cet article est d'illustrer la problématique des choix architecturaux lors de la réalisation d'un projet informatique et de comprendre l'impact de ces choix sur l'évolution d'un logiciel.

Ces concepts peuvent être facilement compris par analogie avec des constructions basées sur des briques de Légo. Pour construire avec des Légos il faut des briques et pour produire des briques il faut injecter du plastique dans des moules. La fabrication d'un moule est couteuse mais la production de briques est relativement bon marché.

Demande initiale du client

Le client vient avec un besoin. Ce que le client demande c'est une structure de 6 unités de large par 2 unités de profondeur et 3 unités de haut.

Le client ignore généralement les composants qui vont permettre de réaliser la structure demandée. Ce qui compte pour lui c'est la forme finale et son coût.

image

Analyse de la demande

Le développeur analyse la demande du client et réfléchi à des architectures possibles en fonction d'éléments de base qu'il devra concevoir et des contraintes en terme de délais et de coûts.

Choix d'architecture #1

Ici le développeur choisi de concevoir un seul moule qui permet de produire des briques de 6x2. Il en produira 3 placées les unes au dessus des autres. L'avantage de ce choix est qu'il ne comporte qu'un élément structurel et mènera au résultat plus rapidement.

image

Choix d'architecture #2

Ici le développeur préfère utiliser deux types de briques et concevoir deux moules différents. Un moule 2x2 et un moule 4x2. Par combinaison de trois briques de chaque, on arrive au même résultat.

image

Évolution du logiciel avec le temps

Quelques temps après, le client revient avec une demande de modification de son logiciel. Une adjonction d'une colonne 2x2 sur trois étages.

Suivant le choix d'architecture initial, la modification sera réalisée différemment.

image

A partir de l'architecture #1

Dans ce cas il est nécessaire de concevoir un nouveau moule pour produire des briques 2x2. Ceci permet de construire une colonne 2x2 sur trois étages à côté.

image

A partir de l'architecture #2

Sur la base de l'architecture #2, il n'y a pas besoin de créer de nouveau moule. Il suffit de produire de nouvelles briques et de modifier un peu l'agencement.

image

Quelles différences au final?

Au final, le résultat apparent est le même et réponds à l'attente du client. Cependant il y a plusieurs différences notables.

Robustesse

La colonne ajoutée sur la base de l'architecture #1 est plus fragile mécaniquement. Alors que dans l'architecture #2 on a profité d'intercaler une brique 4x2 à l'étage central pour solidifier la colonne.

Fiabilité

Dans la modification basée sur l'architecture #1 il a fallu concevoir un nouveau moule 2x2. C'est une opération coûteuse et cette brique n'a pas encore vécu l'épreuve du test réel. Dans l'architecture #2 deux moules déjà longuement testées sont réutilisés.

Coûts

Initialement l'architecture #1 était moins coûteuse car basée sur un seul moule. Cependant après la modification cet avantage disparaît.

Délais

Le réagencement de l'architecture #2 est une opération plus rapide que la conception d'un nouveau moule.

Conclusion

La bonne compréhension des besoins du client et surtout l'anticipation de l'évolution du logiciel sont des éléments cruciaux pour partir sur les bonnes bases architecturales.

Réduire les frais et les délais initiaux mènent souvent à des logiciels plus difficiles à maintenir et à faire évoluer.

Lors de la réalisation d'un logiciel il est important de budgetiser ses coûts de réalisation et d'anticiper les coûts de son évolution.

Il est parfois moins coûteux de développer un projet de petite envergure et de planifier un redéveloppent complet après une période d'exploitation réelle du projet initial. En effet l'expérience de celle-ci permet de partir généralement sur une bonne architecture dans un 2ème temps.