• Aucun résultat trouvé

Identification d’aspect dans le COP

A.1 La Probl´ematique

A.1.3 Identification d’aspect dans le COP

Les pr´eoccupations transverses r´esultent dans la dispersion et l’embrouillement du code dans les autres pr´eoccupations d’un logiciel. La d´ecouverte des pr´eoccupations transverses est une tˆache difficile et afin de d´ecouvrir les aspects candidats dans un logiciel, les outils et les techniques d’identification d’aspect ont ´et´e propos´es [KMT07]. L’identification des aspects est une technique de r´etro ing´enierie. Elle automatise le processus de la d´ecouverte d’aspect dans les logiciels existants. Ces techniques se fondent sur la supposition que le code dispers´e dans un logiciel est un symptˆome

des aspects et devrait ˆetre encapsul´e dans les aspects [CMM+05, HK01]. Dans les

r´esultats, ces techniques fournissent aux utilisateurs un ou plusieurs aspects can- didats candidats bas´es sur les informations lexicologiques du code, et une analyse statique ou dynamique.

Cependant, dans le cadre du COP, les techniques d’identification des aspects ne fournissent pas des r´esultats fiables [BD08] : Les r´esultats contiennent des can- didats non aspects, appel´e des aspects faux positifs. Le probl`eme des aspects faux positifs se pose parce que le COP se compose du code dispers´e et embrouill´e non seulement dˆu `a l’absence des aspects, mais le COP manifeste ´egalement le code dispers´e apparaissant dˆu `a l’absence de conception orient´ee objet. Le manque de conception orient´ee objet provoque le code non abstrait, c’est `a dire du code li´e aux entit´es de domaine qui n’ont pas leurs propres classes. Par cons´equent, nous observons que les outils propos´es pour identifier les aspects, une fois ap- pliqu´e sur le COP, identifient des entit´es absentes de domaine dans la liste des pr´eoccupations transverses [BD08]. Ces entit´es de domaine sont faussement iden- tifi´ees parce que les techniques d’identification des aspects assument que la dis-

Figure A.2: Le plan de la th`ese

persion et l’embrouillement proviennent seulement des aspects absents, alors que d’autres pr´eoccupations li´ees aux entit´es de domaines ont ´et´e encapsul´es dans leur abstractions orient´ees objet. Comme le ph´enom`ene de la bonne conception est absent dans le COP, alors nous sommes confront´es au probl`eme de la qualification des pr´eoccupations transverses identifi´ees par les outils d’identification des aspects, comme des aspects.

Pouvons-nous diff´erencier entre le code dispers´e dans le COP pour identifier le code provenant due `a l’absence des objets de la liste des aspects identifi´es pour l’identification correcte des aspects?

Les techniques existantes d’identification des aspects [KMT07] ne rapportent pas des candidats faux positifs dans la liste des aspects identifi´es dans le COP. Les autres travaux bas´es sur l’identification des pr´eoccupations diverses pr´esentes

dans un logiciel [EZS+08, KSG+06, RM02] fournissent des approches g´en´erales pour l’identification des pr´eoccupations transverses sans mentionner le code dis- pers´e apparaissant `a l’absence de la conception orient´ee objet. Pour l’identification correcte des aspects dans le COP, il est important d’´etudier les caract´eristiques du code dispers´e apparaissant `a cause de diff´erentes raisons. Il aidera `a d´efinir une strat´egie qui classifie le code dispers´e li´e aux objets et aspects et nous croyons que le COP fournit une bonne occasion de classifier le code dispers´e apparaissant dans les logiciels orient´es objet. Cette classification aidera les techniques exis- tantes d’identification des aspects pour diff´erencier entre les diff´erents types de code dispers´e. Ainsi, les techniques d’identification des aspects vont mieux aider les d´eveloppeurs pour distinguer le code dispers´e apparaissant `a cause des d´efauts de conception du COP et de l’absence des aspects. Cette distinction du code dis- pers´e aide `a appliquer des solutions appropri´ees pour encapsuler le code dispers´e. L’espace global du probl`eme de la th`ese est illustr´e dans la figure A.2.

A.2

Contributions

Toutes les questions de recherches d´etaill´ees ci-dessus sont concern´ees par l’absence de conception orient´ee objet. Aucun travail n’indique les perspectives de restruc- turation des classes et de dispersion du code dans le COP. Ainsi comme mentionn´e bri`evement dans ce chapitre, nous montrons dans cette th`ese que la litt´erature ex- istante ne r´epond pas `a ces questions.

Nous avons fourni des solutions pour deux probl`emes ind´ependants dans le COP. La premi`ere solution concerne l’occurrence du code dispers´e dans le COP et sa classification. Nous choisissons cette perspective car le code dispers´e provenant de l’absence des objets et des aspects dans le COP fournit une opportunit´e pour ´etudier la nature de la dispersion de code. Le but de l’approche est de proposer un perfectionnement des techniques existantes d’identification d’aspect de sorte que ces outils puissent distinguer le code dispers´e li´e `a l’absence des aspects de celui de l’absence des objets.

La deuxi`eme perspective est la restructuration des classes dans le COP dans le but d’am´eliorer la conception orient´ee objet d’un logiciel afin que ce dernier soit compos´e de classes plus coh´esives et de hi´erarchies de classes bien d´ecompos´ees. Cette perspective est importante pour rechercher la strat´egie permettant d’obtenir une conception am´elior´ee orient´ee objet `a partir du COP. Nous ne corr´elons pas les deux perspectives pr´esent´ees dans cette th`ese. Nous croyons que la corr´elation des deux perspectives concernant la classification de code dispers´e dans le COP et la restructuration des classes devrait former le sujet pour un nouveau travail de recherche.

Dans la section ci-dessous, nous ´enum´erons les contributions principales de la th`ese. Ces contributions apportent la r´eponse aux questions de recherches for- mul´ees ci-dessus. Nous ´enum´erons bri`evement les contributions de cette th`ese avant de fournir leur description d´etaill´ee.

• Description des d´efauts de conception et des mauvaises odeurs pr´esents dans le COP avec leur strat´egie d’identification. Nous d´efinissons un outil bas´e sur des principes de l’identification de code dispers´ee pour d´etecter des odeurs de code dispers´es dans le COP.

• Une approche pour la restructuration des classes dans le COP vers une con- ception am´elior´ee orient´ee objet.

• Classification des pr´eoccupations transverses trouv´ees dans le COP par l’analyse structurale des entit´es de code et les m´etriques.

Le chemin dans la figure A.2 illustre ´egalement les contribution de cette th`ese et nous les d´etaillons dans les sections suivantes.

Documents relatifs