De l’ingénierie système au développement logiciel.
L’architecture logicielle permet de transférer le travail d’ingénierie système vers une structure logicielle adaptée. La structure du code doit permettre la réalisation technique du projet, mais bien plus encore. Elle doit être flexible, sécuritaire et réutilisable. Elle doit faciliter la maintenance à long terme et elle doit être explicite.
- La réalisation technique du projet est le but premier du développement logiciel. Le but est que le produit final corresponde au besoin du client.
- La structure développée doit rester flexible et réutilisable puisque les besoins changent et qu’il est très fréquent d’ajouter des fonctionnalités.
- Le niveau de sécurité demandé varie d’un projet à l’autre, mais il ne faut jamais le négliger.
- Une architecture bien adaptée permettant des tests faciles et rapides permet une maintenance plus aisée sur le long terme.
- L’architecture logicielle doit être explicite pour faciliter sa documentation. Un ensemble de diagrammes UML pour expliquer les différentes sections doit être construit.
Quel type de représentation?
À noter qu’il ne faut pas confondre les modèles de conception architecturaux avec les modèles de conception du code. Le premier s’intéresse à la structure haut niveau tandis que le second s’intéresse à la structure de l’implémentation des objets du code lui-même.
La documentation sous forme de diagrammes UML s’étend à n’importe quelle de ces deux modèles de conception. Elle peut être sous forme structurale comme un diagramme de classe ou fonctionnelle comme un diagramme d’activité. Le but n’est pas de définir 100% du code sous la forme de diagramme. Le faire serait contre-productif. Ce type de travail est plutôt utile pour représenter les parties complexes du système. Nous arrêtons ce type de travail lorsque que le système est suffisamment bien décrit pour que l’implémentation du code lui-même semble trivial.
Le fait d’avoir fait un travail de fond avec de l’ingénierie système d’abord, permet de mieux définir l’architecture logicielle dès le départ.
Un travail continuel
L’architecture logicielle se modifie au fur à mesure que le logiciel prend forme. En théorie, il serait préférable de tout définir dès le départ, mais en pratique c’est rarement possible. Il faut donc continuellement revoir les diagrammes UML et les mettre à jour. Ce travail à haut niveau permet de prendre une pause et de regarder le projet dans son ensemble et ainsi de voir apparaître les problèmes avant de les coder. Pour se faire, il faut continuellement revoir l’architecture et prévoir les développements futurs en conséquence.
Une documentation gratuite
L’architecture logicielle doit aussi être vue comme une documentation haut niveau du système. Même si une seule personne travaille sur un code, il est important d’avoir un minimum de documentation qui permet de facilement remettre les parties du système en perspective. Comme pour l’ingénierie système, il est humainement impossible de garder en tête tous les éléments et tous les détails d’interactions entre les différentes parties d’un système complexe. Un système schématisé permet cependant de repousser cette limite, favorisant ainsi la création de nouvelles idées novatrices.