Qu'est-ce que l'architecture logicielle ?
Que fait un.e architecte logicielle lors de la conception d'un projet, quel est son rôle ? En réalité, il est assez proche d'un architecte classique...
Article publié le 01/03/2023, dernière mise à jour le 19/09/2023
Dans les métiers de la construction, l'architecte est celui ou celle qui conçoit, en amont, les plans nécessaires à la fabrication d'un bâtiment. L'objectif est de partir des besoins spécifiques du client, pour arriver à un plan détaillé des solutions possibles en utilisant son expertise métier.
Et bien c'est la même chose pour l'architecture logicielle !
Un.e architecte logiciel va prendre en compte les besoins et les contraintes du client, mais également du projet pour proposer la modélisation d'une solution technique qui correspondra au mieux au projet de départ.
Il y a néanmoins une grosse différence entre l'architecture classique et logicielle : c'est la fréquence des changements !
Lorsque l'on construit un bâtiment, il doit être fonctionnel et robuste. Un logiciel, lui, sera en constante évolution. C'est donc le travail de l'architecte (et des développeurs/développeuses ensuite) de faire en sorte que la solution technique soit fonctionnelle, robuste ET évolutive !
Pour arriver à concevoir cette architecture, il faut donc bien comprendre les enjeux du projet, mais aussi avoir une très bonne connaissance des contraintes techniques qui peuvent impacter le fonctionnement du projet.
Si l'architecte n'est pas censé.e implémenter la solution, il/elle doit préparer les spécifications du projet au mieux possible afin que l'implémentation se fasse avec le moins de problèmes.
Quels outils ?
L'architecture logicielle ne se repose pas sur des plans à proprement parlé, mais plutôt sur des langages de modélisation comprenant des outils normalisés (diagrammes) pour concevoir une architecture de logicielle.
Le "langage" le plus utilisé est l'UML, qui signifie "Unified Modeling Language".
En UML, on retrouve une dizaine de types de diagrammes différents, avec chacun leur représentation et leur utilité, parmi lesquels :
- "Diagramme de Cas d'Utilisation" pour représenter l'interaction des utilisateurs avec le logiciel
- "Diagramme d'activité" pour modéliser un comportement logique
- "Diagramme de classes" pour la structure des données
- "Diagramme de séquence " pour modéliser l'échange des informations/données
- Et bien d'autre...
Voici à quoi peuvent ressembler certains de ces diagrammes UML, utilisés pour l'architecture logicielle :
Une fois le travail d'architecture logicielle terminé, on peut alors démarrer l'implémentation (même si une phase d'architecture est requise à chaque évolution du projet).
Attention : Il ne faut pas confondre l'architecture logicielle avec l'architecture des systèmes d'information, qui consiste à concevoir/planifier les serveurs, les réseaux et toute l'infrastructure d'un projet et/ou d'une entreprise !
Aucun commentaire pour l'instant