• Aucun résultat trouvé

Fondement du processus d’extraction :

4.4 Définition de la fonction objectif

Notre processus d’exploration nécessite la définition d’une fonction permettant de mesurer la qualité d’une solution. Cette fonction permet de sélectionner la meilleure solution mais surtout elle permet l’ex- ploration de l’espace des solutions en offrant un moyen de comparaison entre les entités de cet espace. Elle repose sur la qualité mesurée par rapport aux guides que nous venons d’étudier et qui définissent les objectifs de notre processus.

La définition de cette fonction repose sur le modèle de mesure de la qualité de la solution que nous avons présenté dans les sections précédentes. Nos deux guides, nous ont permis de définir deux notions décrivant la qualité d’une solution ainsi que tout un modèle de mesure pour chacune d’entre elles.

Dans la suite, nous présentons les deux fonctions permettant de mesurer la validité sémantique et la qualité de l’architecture. Nous utilisons, ensuite, ces deux fonctions pour définir la fonction objectif de notre processus.

4.4.1 Mesure de la validité sémantique de l’architecture

Nous utilisons le modèle de mesure de la validité sémantique de l’architecture afin de définir une fonction d’évaluation utilisant la sémantique associée à l’architecture et aux différents éléments archi- tecturaux.

Ce modèle décrit la caractéristique « validité sémantique de l’architecture » à travers deux ensembles de sous-caractéristiques : les sous-caractéristiques se rapportant à la validité sémantique des composants et celle décrivant la validité sémantique des connecteurs. Par conséquent, nous définissons deux fonctions basées sur le modèle de mesure et utilisant nos métriques pour évaluer chacun de ces ensembles.

A partir de ces deux fonctions d’évaluation, nous définissons une fonction d’évaluation de la vali- dité sémantique d’une architecture. Cette fonction peut être utilisée comme fonction objectif dans notre processus d’extraction. Elle oriente alors l’extraction vers des architectures sémantiquement valides.

4.4.1.1 Evaluation de la validité sémantique des composants

En exploitant le modèle de mesure de la validité sémantique de l’architecture (cf. Figure 4.4), nous définissons une fonction d’évaluation pour chacune des sous-caractéristiques de la validité sémantique des composants : l’autonomie, la spécificité et la composabilité.

Pour cela, il faut considérer le graphe formé par le modèle de mesure comme une forêt. Chaque caractéristique constitue une racine et les métriques sont les feuilles. Il suffit alors d’assembler les mé- triques racines du sous-arbre formé à partir de la sous-caractéristique. Il reste enfin à établir les pondé- rations permettant d’équilibrer les differentes métriques. Nous procédons alors par expérimentations et affinages successifs.

Nous utilisons ensuite ces fonctions pour définir la fonction d’évaluation de la validité sémantique des composants.

Fonction d’évaluation de la spécificité. Nous avons montré que la spécificité dépend de la cohésion moyenne des services par interfaces, du nombre d’interfaces fournies, de la cohésion entre les interfaces fournies, de la cohésion interne et du couplage interne du composant. D’après notre modèle de mesure, la spécificité d’un contour de composant c peut donc être mesuré par la fonction Specomp(c), où IFcest

l’ensemble des contours d’interfaces fournies associées au contour c :

Specomp(c) = 1 4· ( 1 |IFc|·i∈IFc

LCC (i) + LCC (IF ) + LCC (c) + Couplage (c)− 10 · |IFc|

)

Dans cette formule LCC (i) mesure la cohésion entre les services d’un contour d’interface i, LCC (IF ) mesure la cohésion entre les contours d’interfaces fournies et LCC (c) et Couplage (c) mesurent res- pectivement la cohésion et le couplage entre les classes du contour de composant c.

Fonction d’évaluation de l’autonomie. Nous avons montré que l’autonomie dépend du nombre d’in- terfaces requises et du nombre d’interfaces requises verticales. D’après notre modèle de mesure, l’au- tonomie d’un contour de composant c est donc mesurée à travers la fonction Autocomp(c), où IR (c)

est l’ensemble des contours d’interfaces requises associées au contour c et IRv (c) est l’ensemble des contours d’interfaces requises verticales associées au contour c :

Autocomp(c) =−5 · [|IR| + 2 · |IRv|]

Fonction d’évaluation de la composabilité. Nous avons montré que la composabilité dépend du nombre d’interfaces requises verticales et de la moyenne de la cohésion entre les services d’une in- terface fournie. D’après notre modèle de mesure, la composabilité d’un contour de composant c est donc mesurée par la fonction Compcomp(c), où IRvcest l’ensemble des contours d’interfaces requises verti-

cales associées au contour c et IFcest l’ensemble des contours d’interfaces fournies associées au contour

c : Compcomp(c) = 1 |IFc|·i∈IF LCC (i)− 10 · |IRvc|

Fonction d’évaluation de la sémantique des composants. L’évaluation de la caractéristique « vali- dité sémantique des composants » est basée sur l’évaluation de chaque sous-caractéristique. Nous défi- nissons cette fonction comme une combinaison linéaire des fonctions d’évaluation (Specomp, Autocomp,

et Compcomp) :

Semcomp(c) =

1 ∑

iλi

1· Compcomp(c) + λ2· Autocomp(c) + λ3· Specomp(c)] (4.6)

Cette forme linéaire nous permet de considérer uniformément les sous-caractéristiques. Le poids as- socié à chaque fonction permet à l’architecte de modifier, au besoin, l’importance relative des sous- caractéristiques.

4.4.1.2 Evaluation de la validité sémantique des connecteurs

En exploitant le modèle de mesure de la validité sémantique de l’architecture (cf. Figure 4.5), nous définissons une fonction d’évaluation pour chacune des sous-caractéristiques de la validité sémantique

des connecteurs : l’autonomie, la spécificité et la généricité. Pour cela, nous utilisons une approche identique à celle de la section précédente.

Nous utilisons ensuite ces fonctions pour définir la fonction d’évaluation de la validité sémantique des connecteurs.

Fonction d’évaluation de la spécificité. Nous avons montré que la spécificité dépend de la cohésion et du couplage interne du connecteur. D’après notre modèle de mesure, la spécificité d’un contour de connecteur c est mesurée à travers la fonction Specon(c), où LCC (c) et Couplage (c) mesurent respec-

tivement la cohésion et le couplage entre les méthodes et attributs du contour de connecteur c :

Specon(c) =

1

2· (LCC (c) + Couplage (c))

Fonction d’évaluation de l’autonomie. Nous avons montré que l’autonomie dépend de la connexité de la glu du connecteur. D’après notre modèle de mesure, l’autonomie d’un contour de connecteur c est donc une valeur binaire qui indique si les méthodes et attributs du contour forment un ensemble connexe.

Fonction d’évaluation de la généricité. Nous avons montré que la généricité dépend du nombre de rôles, de la cohésion entre les rôles, du couplage entre les rôles, de la moyenne des couplages de chaque rôle et de la moyenne des cohésions de chaque rôle. D’après notre modèle de mesure, la généricité d’un contour de connecteur c est mesurable par la fonction Gencon(c), où Rcest l’ensemble des rôles associés

au contour c : Gencon(c) = 1 4[LCC (Rc) + Couplage (Rc)]− 10 · |Rc| + 1 8· |Rc|·r∈Rc (LCC (r) + Couplage (r))

Fonction d’évaluation de la sémantique des connecteurs. L’évaluation de la caractéristique « vali- dité sémantique des connecteurs » est basée sur l’évaluation de chaque sous-caractéristique. Nous défi- nissons cette fonction comme une combinaison linéaire des fonctions d’évaluation (Specon et Gencon,

et Autocon) :

Semcon(c) =

Auto con iλi

4· Gencon(E) + λ5· Specon(E)] (4.7)

Cette forme linéaire nous permet de considérer uniformément les sous-caractéristiques. Le poids associé à chaque fonction permet à l’architecte de modifier, au besoin, l’importance relative des sous- caractéristiques.

4.4.1.3 Evaluation de la validité sémantique de l’architecture

L’évaluation de la caractéristique de validité sémantique de l’architecture repose sur les deux fonc- tions d’évaluations de la sémantique des éléments architecturaux : Semconet Semcomp. Nous proposons

de définir cette mesure comme une moyenne pondérée de la validité sémantique de chaque élément de l’architecture extraite. Ainsi, nous définissons la fonction d’évaluation d’une solution s selon l’équation suivante, où Ecomp(s) et Econ(s) désignent respectivement l’ensemble des contours de composants et

Sem (s) = (λ6+ λ7+|Ecomp(s)| + |Econ(s)|)−1 ·λ6·c∈Ecomp(s) Semcomp(c) + λ7·c∈Econ(s) Semcon(c)   (4.8) Les pondérations sont fixées par l’architecte et permettent de définir l’importance relative accordée aux composants et aux connecteurs.

4.4.2 Mesure de la qualité architecturale

La caractéristique « qualité architecturale » est basée sur le guide qui utilise les propriétés de qualité des architectures et des différents éléments architecturaux. Pour utiliser cette notion durant l’exploration, nous utilisons le modèle de mesure que nous avons proposé afin de définir une fonction d’évaluation de la qualité architecturale.

Pour définir cette fonction, nous proposons pour chaque sous-caractéristique, maintenabilité et fiabi- lité, une fonction d’évaluation basée sur le modèle de mesure et utilisant nos métriques pour la mesure de la maintenabilité, la complexité et le couplage.

A partir de ces deux fonctions d’évaluation, nous définissons une fonction d’évaluation de la qualité architecturale d’une solution. Cette fonction peut être utilisée pour compléter la fonction traitant de la validité sémantique afin de définir la fonction objectif dans notre processus d’extraction.

4.4.2.1 Mesure de la maintenabilité de l’architecture

Comme nous l’avons vu, la maintenabilité d’une architecture dépend de la maintenabilité de cha- cun des éléments architecturaux qui la compose : configuration, connecteurs et composants. Nous avons étudié, à travers le modèle de mesure comment mesurer cette propriété sur chacun des éléments archi- tecturaux et nous présentons ici la fonction utilisant ces mesures pour évaluer la maintenabilité d’une architecture.

La maintenabilité de l’architecture est définie comme la moyenne de la maintenabilité des compo- sants, de celle des connecteurs et de la maintenabilité de la configuration. Elle est mesurée pour une solution s par la fonction M aint (s), où Ecomp(s) et Econ(s) désignent respectivement l’ensemble des

contours de composants et de connecteurs de s, et c (s) désigne la configuration associée à s :

M aint (s) = 1 3· |Ecomp(s)|c∈Ecomp(s) M Comp (c) + 1 3· |Econ(s)|c∈Econ(s) M Con (c) +1 3 · MConf (c (s)) 4.4.2.2 Mesure de la fiabilité de l’architecture

La mesure de la fiabilité de l’architecture dépend des composants et de leurs liens. Selon notre modèle de mesure, nous proposons de mesurer cette fiabilité par une moyenne pondérée de la complexité des contours de composants et de celle des connecteurs. Le poids associé à chaque composant est le nombre

de connecteurs qui sont reliés au composant, alors que le poids associé à chaque connecteur est le nombre de composants reliés à travers le connecteur.

Nous proposons la fonction F iab (s) pour mesurer la fiabilité d’une solution s, où Ecomp(s) et

Econ(s) désignent respectivement l’ensemble des contours de composants et de connecteurs de s, Comp (c)

et Con (c) désignent respectivement l’ensemble des contours de composants reliés au connecteur c et l’ensemble des contours de connecteurs reliés au composant c :

F iab (s) =   ∑ c∈Ecomp(s) |Comp (c)| +c∈Econ(s) |Con (c)|   −1 ·   ∑ c∈Ecomp(s) Complexite (c)· |Con (c)| +c∈Econ(s) Complexite (c)· |Comp (c)|  

4.4.2.3 Mesure de la qualité architecturale

L’évaluation de la caractéristique « qualité architecturale » repose sur les deux fonctions d’évaluation des sous-caractéristiques : M aint (s) et F iab (s). Nous proposons de définir cette mesure comme la moyenne pondérée de ces fonctions. Ainsi, nous définissons la fonction d’évaluation d’une solution s selon l’équation suivante, où Ecomp(s) et Econ(s) désignent respectivement l’ensemble des contours de

composants et de connecteurs de s :

Qual (s) =∑1

iλi

8· Maint (s) + λ9· F iab (s)) (4.9)

Comme pour l’équation 4.8, celle-ci est une combinaison linéaire afin de considérer uniformément chaque partie. Le poids associé à chaque fonction autorise l’architecte à modifier l’importance de chaque caractéristique de qualité.

4.4.3 Fonction objectif du processus d’exploration

La fonction objectif de notre processus, nous permet de mesurer la qualité d’une solution et de comparer les solutions entre elles tout au long du processus d’extraction. Elle repose sur les guides que nous avons présentés dans ce chapitre, c’est-à-dire la sémantique de la notion d’architecture et la qualité architecturale.

Pour définir cette fonction, nous avons présenté un modèle de mesure de la qualité d’une solution. Ce modèle repose sur les propriétés, extraites des deux guides, que nous avons présentées. Nous avons également présenté une fonction d’évaluation pour chaque caractéristique, Qual (s) et Sem (s). Au final, la définition d’une fonction objectif basée sur ces deux fonctions possède les propriétés requises pour être utilisée dans notre processus : elle permet d’évaluer la qualité d’une solution en mesurant la validité sémantique et la qualité architecturale de l’architecture correspondante à la solution.

Goal (s) = ∑1

iλi

10· Sem (s) + λ11· Qual (s)) (4.10)

Nous définissons la fonction objectif Goal (s) comme la moyenne pondérée des fonctions définies précédemment. Les pondérations sont fixées par l’architecte et permettent de sélectionner l’importance relative accordée aux deux guides.

4.5

Conclusion

Nous avons présenté dans ce chapitre les objectifs de notre approche d’extraction. Ces objectifs dé- finissent la qualité des solutions à travers la qualité et la sémantique architecturale. Ils permettent ainsi d’obtenir une solution qui répond aux exigences de qualité de l’architecte et qui respecte la définition qu’il a des architectures logicielles et des éléments architecturaux.

Pour utiliser ces objectifs dans une approche par exploration, nous avons proposé une fonction ob- jectif qui évalue la qualité des solutions en fonction de ces deux critères. Pour cela, nous avons réalisé une fonction d’évaluation de la qualité architecturale et une autre évaluant l’adéquation entre la solution et le concept d’architecture. La première repose sur un modèle de mesure utilisant les caractéristiques de fiabilité et de maintenabilité pour décrire la qualité architecturale. La seconde fonction repose sur une réification des définitions couramment admises des différents éléments architecturaux en un ensemble de caractéristiques sémantiques des composants et des connecteurs. Nous avons ensuite défini un modèle de mesure de la validité sémantique basé sur ces caractéristiques.

La fonction objectif ainsi définie, nous permet donc d’identifier les bonnes solutions du point de vue de la qualité de l’architecture extraite et de sa validité par rapport aux définitions. Cependant, elle ne repose que sur les informations contenues dans le code source alors qu’il existe d’autres informations telle que la documentation qui permettent d’identifier une certaine architecture du système.

CHAPITRE

5