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

Présentations similaires


Présentation au sujet: "Détection et correction des défauts de conception"— Transcription de la présentation:

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

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

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 Exemples de défaut de conception: Blob
Blob : “Procedural-style design leads to one object with a lion’s share of the responsibilities while most other objects only hold data or execute simple processes ” (Brown et al.’98)

5 Exemple du blob

6 Exemple du blob

7 Exemple du blob

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 Exemples de défaut de conception: Functionnal Decomposition
Functionnal decomposition : “ Procedural design in an OO language” (Brown et al.’98)

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

11 Détection des défauts

12 Détection des défauts Plusieurs techniques utilisées Limites
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, O’Keeffe 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 Contexte Refactoring

14 Refactoring JDT has actions for refactoring Java code

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 Refactoring Full preview of all ensuing code changes
Programmer can veto individual changes List of changes Screen shot shows Extract Method applied to the print statement in HelloWorld.main method. “before” vs. “after”

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 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 Rename Move Renomme l'élément sélectionné.
Déplace l'élément sélectionné, par exemple enlever la classe du paquetage actuel, et la place dans un autre paquetage

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 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 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"

Présentations similaires


Annonces Google