Introduction
En passant du niveau d'analyse au niveau de conception de l'architecture, il convient de déterminer la conception des
composants matériels et logiciels. Cette spécification de niveau conception est constituée des composants à déployer :
matériels, logiciels et travailleurs.
Les composants matériels sont déterminés en analysant les localisations, leurs caractéristiques dérivées et les
opérations de sous-systèmes hébergées. Le résultat de cette analyse permet de sélectionner les réalisations des
localisations au niveau du descripteur. Les diagrammes de noeud de descripteur spécifient les composants, les serveurs,
les postes de travail, les travailleurs etc. sans choix particulier des technologies implémentant ces composants. La
figure ci-dessous est un exemple de diagramme de noeud Descripteur qui réalise le diagramme Localisation dans Concept : Localisation. La distribution Localisation comprend quatre composants :
une passerelle d'entrepôt de données, un système de messagerie/publipostage et deux travailleurs.
Les caractéristiques des noeuds Descripteur proviennent de leurs localisations via un processus d'affectation ou de
budgétisation.
Matériel
Les composants matériels d'implémentation, c'est-à-dire l'ensemble de matériels déployé, sont déterminés en faisant des
compromis en termes de coût/performance/capacité à partir de la vue Descripteur. En fait, un système peut avoir
plusieurs configurations matérielles, chacune répondant à des exigences différentes en termes de prix et de
performance.
Logiciels
Les composants sont déterminés en spécifiant un ensemble de classes puis en compilant et en assemblant le code associé
à ces classes dans des fichiers exécutables. Une conception de composants logiciels complète doit refléter différentes
préoccupations :
-
Localisation — emplacement où les composants doivent s'exécuter
-
Hébergement — ensemble d'instructions processeur et limitations de mémoire pour le code d'exécution
-
Accès concurrent — séparation du traitement en différents hôtes ou espaces mémoire pour répondre aux exigences de
fiabilité et questions associées
Il s'ensuit que les informations nécessaires pour spécifier les composants comprennent l'analyse des opérations du
sous-système hébergé pour les localisations et leurs composants matériels réalisés, l'analyse des opérations exécutées
pour les processus, ainsi que les collaborations réalisant les opérations du sous-système, qui renvoient l'ensemble des
classes nécessaires à la constitution d'une structure de composants.
Supposez tout d'abord que toutes les classes soient dans un seul composant, le mappage composant/sous-système se
faisant alors dans une relation un à un — c'est la suggestion par défaut que vous trouverez dans Instructions relatives au produit : Sous-système de conception. Cherchez ensuite les
raisons de subdiviser davantage le composant. Si un ensemble de classes contient plusieurs classe actives, qui
représentent un processus, envisagez alors de créer une classe active (processus) par composant, en reliant ces classes
avec des relations fortes. Certaines classes peuvent ainsi être utilisées par de multiples composants. Si l'une de ces
classes représente un état partagé dans un ensemble commun d'instances auxquelles plusieurs composants doivent accéder,
il y a alors matière à les séparer en composants distincts. Si les classes partagées n'ont pas d'état et sont
fonctionnellement cohésives, vous pouvez choisir de les séparer en un composant de service (un composant fonctionnel
sans état). Même dans un sous-système passif (sans classes actives), vous pouvez choisir de les diviser encore, par
exemple pour rechercher des composants plus détaillés qui sont réutilisables. Terminez le processus en
séparant/divisant davantage les composants afin de représenter des choix spécifiques de technologie (comme la
plateforme J2EE, ou Microsoft .NET), les contraintes de mémoire (par exemple, choix entre .exe et .dll), les limites de
livraison de supports, etc.
Toutes ces tâches ont pour résultat un ensemble de composants logiciels et matériels spécifiques qui composent le
système.
|