• Aucun résultat trouvé

Chapitre 5 : Un Métamodèle pour l’ADL Wright

5.2 Aspects structuraux de Wright

Wright repose sur les abstractions architecturales de base qui sont les composants, les connecteurs et la configuration.

5.2.1 . Le concept Composant

Un composant Wright est une unité abstraite localisée et indépendante. La description d’un composant contient deux parties importantes, l’interface et la partie calcul (computation).

L’interface consiste en un ensemble de ports, chacun représente une interaction avec l’extérieur à laquelle le composant peut participer. Chaque port décrit deux aspects : le comportement partiel attendu du composant (services offerts par le composant via ce port) et ce que le composant attend du système (services requis).

La partie calcul, quant à elle, consiste à décrire ce que le composant fait du point de vue comportemental, en indiquant comment celui-ci utilise les ports. Ainsi, les ports qui sont décrits indépendamment dans l’interface, sont utilisés pour décrire le comportement du composant dans le calcul.

La figure 2.1 illustre le métamodèle du concept composant de Wright selon une vue structurelle.

Ce métamodèle, représenté par un diagramme de classes, est composé de trois métaclasses : Component, Port et Computation.

Component et Port contiennent chacune un méta-attribut nommé name, dont le type est une chaîne de caractères.

72

Il existe deux méta-associations composition, qui ont pour source la métaclasse Component et pour cible les deux métaclasses : Port, avec multiplicité un ou plusieurs, et Computation, avec multiplicité un. Ceci explique qu’un composant peut avoir un ou plusieurs ports et une et une seule partie calcul ou computation.

Port name : String Computation Component name : String 1..* +port 1..* +component 1 +computation 1 +component

Figure 2.1. Métamodèle Component de l’ADL Wright

La figure 2.2 décrit un composant appelé Titulaire selon la syntaxe concrète de Wright.

Figure 2.2. Composant « Titulaire » selon la syntaxe concrète de Wright

La figure 2.3 donne, sous forme d’un diagramme d’objets, le composant "Titulaire" considéré comme un modèle conforme au métamodèle Component.

Consultation : Port name = " consultation" :Computation Titulaire : Component name = "titulaire"

Figure 2.3. Modèle objet du composant "Titulaire"

5.2.2 . Le concept Connecteur

Un connecteur représente une interaction entre une collection de composants. Il possède un type et contient deux parties qui sont un ensemble de rôles et la glu :

Chaque rôle décrit les attentes du connecteur dans ses interactions avec les composants.

La glu décrit comment les rôles travaillent ensemble pour créer cette interaction. Component Titulaire

Port consultation = … Computation = …

73

La figure 2.4 illustre le métamodèle du concept connector de l’ADL Wright selon la définition citée précédemment. Ce métamodèle est composé de trois métaclasses. Les métaclasses Connector et Role contiennent un méta-attribut appelé name de type chaîne de caractères et la métaclasse Glue.

Role name : String Glue Connector name : String 2..* +role 2..* +connector 1 +glue 1 +connector

Figure 2.4. Métamodèle Connector de l’ADL Wright

Il existe deux méta-associations composition, qui ont pour source la métaclasse Connector et pour cible les métaclasses Role et Glue.

La figure 2.5 décrit un connecteur appelé CS (Client-Serveur) selon la syntaxe concrète de Wright.

Figure 2.5. Connecteur « CS » selon la syntaxe concrète de Wright

La figure 2.6 donne, sous forme d’un diagramme d’objets, le connecteur "cs" considéré comme un modèle conforme au métamodèle Connector.

Figure 2.6. Modèle objet du connecteur "CS"

5.2.3 . Le concept Configuration

La configuration permet de décrire l’architecture d’un système en regroupant des instances de composants et des instances de connecteurs. La description d’une configuration est composée de trois parties qui sont la déclaration des composants et des connecteurs utilisés

Connector cs Role client= … Role serveur = …. Glue = …

74

dans l’architecture, la déclaration des instances de composants et de connecteurs, les descriptions des liens (ou attachements) entre les instances de composants et les instances de connecteurs (Sanlaville, 1997).

Dans la suite, nous décrivons les différentes sections formant une configuration Wright.

5.2.3.1 . Les types de composants et connecteurs

Une configuration doit en premier lieu déclarer les types de composants et connecteurs qu’elle va utiliser. Pour cela, elle utilise les conventions mentionnées auparavant.

5.2.3.2 . Les instances

Pour pouvoir utiliser des types de composants et de connecteurs dans la création d’un système spécifique, l’architecte doit d’abord définir et nommer un ensemble d’instances de ces types.

5.2.3.3 . Les liens

Une fois que ces instances de composants et de connecteurs ont été déclarées, une configuration est créée en décrivant un ensemble de liens entre les différents ports et rôles de ces instances. Ces liens décrivent la topologie du système en indiquant quel composant participe à quelle interaction.

Figure 2.7. Métamodèle Configuration de l’ADL Wright

La figure 2.7 illustre le métamodèle du concept configuration de l’ADL Wright. Le diagramme de classes de ce métamodèle est composé de onze métaclasses.

D’après la définition semi-formelle du concept configuration, il existe deux méta-associations navigables, qui ont pour source la métaclasse Configuration et pour cible les deux métaclasses Component et Connector. Ceci traduit le fait qu’une configuration Wright peut utiliser plusieurs types de composants et de connecteurs.

Et puisqu’on peut avoir plusieurs instances de composants et ou de connecteurs, et plusieurs attachements ou liens, il existe dans notre diagramme de classes deux méta-associations composition, qui ont pour source la métaclasse Configuration et pour cible les deux métaclasses Instance et Attachements. Ceci traduit le fait qu’en Wright, les instances des composants et des connecteurs sont propres à une configuration donnée et également pour les attachements. Instance Connector name : String Role name : String InstanceConnec name : String * 1 * +type 1 InstanceRole 1 * +type 1 * * 1 +instanceRole * 1 Configuration name : String * 1 +instance * 1 * * +connector * +configuration * Attachment * 1 +attachement * 1 1 1 1 +instanceRole 1 Port name : String Component name : String * * +component * +configuration * InstancePort 1 1 1 +instancePort 1 1 * +type 1 * InstanceCompo name : String * 1 * +type 1 * 1 +instancePort * 1 s

75

Il existe deux métaclasses qui héritent de la métaclasse Instance : InstanceComp et InstanceConnec. InstanceComp est reliée par une méta-association navigable avec la métaclasse Component, et par une méta-association composition avec la métaclasse InstancePort. InstanceConnec est reliée par une méta-association navigable avec la métaclasse Connector, et par une méta-association composition avec la métaclasse InstanceRole.

La figure 2.8 décrit une configuration appelée AppBancaire selon la syntaxe concrète de Wright.

Figure 2.8. Expression Wright de la configuration "AppBancaire"

La figure 2.9 donne, sous forme d’un diagramme d’objets, la configuration "AppBancaire" considérée comme un modèle conforme au métamodèle configuration.