La présentation est en train de télécharger. S'il vous plaît, attendez

La présentation est en train de télécharger. S'il vous plaît, attendez

Détection et correction des défauts de conception Démonstrateurs : Marouane Kessentini, Hassen grati Cours ift3912, responsable du cours: Bruno Dufor 22/03/2010.

Présentations similaires


Présentation au sujet: "Détection et correction des défauts de conception Démonstrateurs : Marouane Kessentini, Hassen grati Cours ift3912, responsable du cours: Bruno Dufor 22/03/2010."— Transcription de la présentation:

1 Détection et correction des défauts de conception Démonstrateurs : Marouane Kessentini, Hassen grati Cours ift3912, responsable du cours: Bruno Dufor 22/03/2010

2 Joueur de référence Détecter les défauts de ce joueur? Calcul de similarité Tout être différent, sortant de la norme, est considéré comme fou. [Eric Cantona]

3 Contexte Défaut de conception – des problèmes d'implémentation et de conception provenant de ''mauvais'' choix conceptuels [Brown et al., 1998]

4 4 Exemples de défaut de conception: Blob Blob : Procedural-style design leads to one object with a lions share of the responsibilities while most other objects only hold data or execute simple processes (Brown et al.98)

5 5 Exemple du blob

6 6

7 7

8 8 Exemples de défaut de conception: Spaghetti code Spaghetti code : Ad hoc software structure makes it difficult to extend and optimize code. (Brown et al.98)

9 9 Exemples de défaut de conception: Functionnal Decomposition Functionnal decomposition : Procedural design in an OO language (Brown et al.98)

10 10 Contexte Comment détecter les défauts de conception?

11 11 Détection des défauts

12 12 Détection des défauts Plusieurs techniques utilisées –Métriques (Moha et al. 08, Marinescu et al. 04) –Visualisation (Dhambri et al. 08, Langelier et. 05) –Méta-heuristiques (Harman et al. 07, OKeeffe et al. 08) Limites –Listes exhaustives des défauts de conception –Difficile de définir les défauts –Ordonner les défauts selon un degré de risque Deviance from Perfection is a Better Criterion than Closeness to Evil when Identifying Risky Code

13 13 Contexte Refactoring

14 14 Refactoring JDT has actions for refactoring Java code

15 15 Refactoring Refactoring actions rewrite source code –Within a single Java source file –Across multiple interrelated Java source files Refactoring actions preserve program semantics –Does not alter what program does –Just affects the way it does it Encourages higher code quality –Makes it easier to rewrite poor code

16 16 Refactoring Full preview of all ensuing code changes –Programmer can veto individual changes List of changes before vs. after

17 17 Refactoring Growing catalog of refactoring actions –Rename {field, method, class, package} –Move {field, method, class} –Extract method –Extract local variable –Inline local variable –…

18 18 Extract Method –Crée une nouvelle méthode encapsulant les éléments sélectionnés, et remplace toutes les références à ces éléments (même ailleurs dans le code), par un appel vers cette méthode.cette fonction permet de rapidement nettoyer une méthode trop longue en la découpant en éléments singuliers.

19 19 Rename –Renomme l'élément sélectionné. Move –Déplace l'élément sélectionné, par exemple enlever la classe du paquetage actuel, et la place dans un autre paquetage

20 20 Change Method Signature –Modifie la signature de la méthode en cours, c'est-à-dire ses droits d'accès (public / private / protected / default). Peuvent également être modifiés par cet assistant : le type du résultat, l'ordre, le nom et le type des paramètres et les déclarations d'exceptions.

21 21 Extract Local Variable... –De la même manière que Extract Method, cette fonction crée une nouvelle variable assignée à l'expression sélectionnée. Convert Local Variable to Field –Transforme une variable locale, définie dans une méthode, en champ de classe.

22 22 Push Down, Pull Up –Ces deux fonctions marchent dans le même sens, mais avec des directions différentes : elles déplacent la sélection respectivement vers la sous-classe ou la superclasse actuelle.


Télécharger ppt "Détection et correction des défauts de conception Démonstrateurs : Marouane Kessentini, Hassen grati Cours ift3912, responsable du cours: Bruno Dufor 22/03/2010."

Présentations similaires


Annonces Google