Vulgarisation du concept d'architecture logiciel
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.
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.
Évolution du logiciel avec le temps
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.





