• Aucun résultat trouvé

Code orient´e objet proc´edural

A.1 La Probl´ematique

A.1.1 Code orient´e objet proc´edural

Quelles sont les caract´eristiques principales des classes et patrons dans le code qui apparat `a l’absence de la conception orient´e objet?

Nous appelons les logiciels d´evelopp´es en utilisant les langages de type ori- ent´e objet, d´emontrant l’absence de conception orient´e objet, le code orient´e objet proc´edural (COP). Nous croyons qu’il est important d’identifier les d´efauts de con- ception et des mauvaise odeurs de code qui apparaissent dans le COP de sorte qu’ils puissent ˆetre identifi´es et d´etect´es, et plus tard ˆetre enlev´es du code. Le COP se compose de classes partiellement d´ecompos´ees — les classes ´enormes qui d´efinissent la logique des sous-syst`emes ou services au lieu des entit´es particuli`eres de domaine. Les classes partiellement d´ecompos´ees apparaissent dans le COP. De ces classes partiellement d´ecompos´ees dans le COP r´esultent certains d´efauts de conception au niveau de l’architecture du logiciel. Ceux-ci incluent l’absence des hi´erarchies de classe. En cons´equence les relations des types et des sous-types sont absents pour les entit´es de domaine — le code des entit´es de domaine n’est pas produit dans la relation hi´erarchique repr´esent´ee par une classe parent et ses sous- classes d´eriv´ees. Ainsi, le code li´e `a une entit´e de domaine ne peut pas ˆetre r´eutilis´e `a travers les classes d´eriv´ees. En outre, certaines entit´es de domaine ne sont pas repr´esent´ees dans leurs classes pr´ecises, c’est-`a-dire leurs propres classes sont ab- sentes du code. Ainsi, leur code est dispers´e `a travers les autres classes du logiciel. La figure A.1, qui montre la graphe d’hi´erarchie, d´emontre que souvent les classes sont des structures ´enormes avec une hi´erarchie de classes tr`es peu d´evelopp´ee. Les classes ´enormes et l’hi´erarchie de classes tr`es peu d´evelopp´ee mettent en ´evidence les classes mal d´ecompos´ees et l’absence des hi´erarchies de classe pour les entit´es de domaine pr´esentes dans le logiciel.

Les d´efauts de conception dans le COP se manifestent en code comme des pa- trons de code, appel´es g´en´eralement des mauvaises odeurs de code. Ces mauvaises odeurs de code incluent l’occurrence des appels similaires dans les m´ethodes, les clones de codes, les types ´enum´er´es globaux, et les m´ethodes mal plac´ees. Ces odeurs de code devraient ˆetre pr´esent´ees en d´etail, de sorte que leur manifestation

Figure A.1: Code orient´e objet proc´edural

en code soit identifi´ee, d´etect´ee, et corrig´ee pour am´eliorer la conception orient´ee objet du logiciel.

Les d´efauts de code et de conception sont des probl`emes communs et r´ecurrents de l’impl´ementation et de la conception, provenant de ”mauvais” choix conceptuels et qui ont pour cons´equence de freiner le d´eveloppement et la maintenance des logiciels en les rendant plus difficiles `a maintenir et `a ´evoluer.

Les d´efauts de conception sont des probl`emes qui apparaissent `a cause de mauvaises pratiques en mati`ere de conception, ou les d´eviations des normes bien connues de conception [DM00, Rie96]. Il y a quelques travaux de recherche pertinents qui mentionnent les d´efauts de code et de conception dans un logi-

ciel [BMMM98, DDN02, FBB+99, Rie96]. Cependant, les d´efauts de concep-

tion qui se produisent en raison de l’absence de conception orient´ee objet sont d´ecrivis `a niveau ´elev´e [BMMM98]. Aucun exemple au niveau de code n’est fourni. Les odeurs de code d´ecrivent les petites anomalies de conception de code

qui repr´esentent les opportunit´es de changement de code [FBB+99]. Mais les

odeurs fournissent une liste d’anomalies de conception qui affectent quelques par- ties dans le code. Celles-ci ne fournissent pas les odeurs de code li´ees `a l’absence de la conception orient´e objet global du logiciel.

Est il possible de fournir des techniques et des outils pour la d´ecouverte des classes de POC et les patrons de code apparaissant dans le COP? Il y a plusieurs travaux qui traitent de l’identification des probl`emes de concep- tion dans le code. Les techniques bas´ees sur les m´etriques de qualit´e de logiciel

et les techniques de visualisation fournissent des indices pour l’identification des classes partiellement d´ecompos´ees et des hi´erarchies de classes peu d´evelopp´ees [Ciu99, LD03, Mar04, MlHG06]. N´eanmoins, ceux-ci ne supportent pas l’identification des mauvaises odeurs du COP qui produisent le code dispers´e `a cause de l’absence de la conception orient´ee objet [BD07]. La d´etection des mauvaises odeurs du COP exige l’utilisation de l’analyse structurale des entit´es dispers´ees et de leur comportement. Par cons´equent, les outils existants doivent ˆetre am´elior´es pour identifier correctement les mauvaises odeurs pr´esentes dans le COP.

Le code orient´e objet proc´edural se compose des classes, partiellement d´ecompos´ees, qui encapsulent la logique concernant plusieurs entit´es de domaine et par cons´equent une partie de ces entit´es de domaine n’a pas ses propres classes dans le code. Nous croyons que des d´efauts de conception et des odeurs de code dans le COP exercent un effet nuisible sur la modularit´e de logiciel et ceux-ci devraient ˆetre supprim´es du logiciel. Ainsi, il est important de rechercher des mani`eres de r´eorganiser les classes pr´esentes dans le COP pour encapsuler chacune des entit´es de domaine dans leur classe appropri´ee de sorte que la modularit´e de logiciel COP soit am´elior´ee.

Documents relatifs