SlideShare ist ein Scribd-Unternehmen logo
1 von 43
Downloaden Sie, um offline zu lesen
DETECTION DE CYCLES
AVEC DSM
Jannik Laval
PhD Student - RModTeam
http://rmod.lille.inria.fr
RMod
DSM?
• Dependency Structural Matrix
• Comment organiser des tâches selon leurs dépendences ?
• Appliqué aux packages d’un logiciel.
ROADMAP
• Un cycle ?
• Construire une DSM.
• Detecter les cycles.
• Que faire de ces informations ?
ROADMAP
• Un cycle ?
• Construire une DSM.
• Detecter les cycles.
• Que faire de ces informations ?
UN CYCLE
• Un chemin qui revient à son point d’origine
• Entre 2 ou plus éléments
A B
C D
A B
C D
PROBLÈMES DE CYCLE
• Modularité ?
• Logique de dépendance
• Fragilité du système
COMMENT DÉTECTER LES
CYCLES ?
A B
C D
UN GRAPHE ?
+60 PACKAGES
50 PACKAGES !
+60 PACKAGES
ROADMAP
• Un cycle ?
• Construire une DSM.
• Detecter les cycles.
• Que faire de ces informations ?
MATRICE DE DÉPENDANCE
• Origine: optimisation de processus
• Appliqué aux logiciels
• Visualisation compacte et structurée
• Permet l’identification de cycles et de
couches
A B C D
A x
B x x
C x x
D x
MATRICE DE DÉPENDANCE
A B C D
A X
B X X
C X X
D X
A B
C D
A B C D
A 0 1 0 0
B 1 0 1 0
C 1 0 0 1
D 0 0 1 0
VISUALISATION DES
PACKAGES
• 1 case = 1 dépendance
• => ajout d’information
• 1 colonne = packages utilisés
• 1 ligne = packages clients
A B C D
A 2
B 1 2
C 4 8
D 1
INFORMATIONS DANS UNE
CASE ?
• Héritage
• Accès direct aux classes
• Invocation
• Extension
EXTENSIONS
• Inverse la dépendance
• Structure les packages
• En CLOS, Objective-C, Ruby, Smalltalk, C#3.0
Core
asUrl
String
Network
Url
^ Url new
path: self
Core
String
Network
Url
String
asUrl
^ Url new
path: self
RÉSULTAT
• Que voit-on ?
x x x x x x x x x x
x
x
x
71 3
x
2 1 8 7 6
x
3
x
4 51 2 2 2
x
4 10 4 34 3
x
15 1
x
30
x 2 2 6
ROADMAP
• Un cycle ?
• Construire une DSM.
• Detecter les cycles.
• Que faire de ces informations ?
2 METHODES POUR
DETECTER LES CYCLES
• Multiplication de la matrice d’adjacence
• Recherche de chemins
MULTIPLICATION DE LA
MATRICE D’ADJACENCE
MULTIPLICATION DE LA
MATRICE D’ADJACENCE
• Avantage
• Approche mathématique
• Inconvénients
• Cycles “flous”
• Pas d’information à propos du chemin
RECHERCHE DE CHEMIN
RECHERCHE DE CHEMIN
• Avantage
• Connaissance de chaque cycle
• Inconvénient
• Lenteur
ROADMAP
• Un cycle ?
• Construire une DSM.
• Detecter les cycles.
• Que faire de ces informations ?
• Détection de couches
• Compréhension et amélioration du design
REGROUPER LES CYCLES...
• Quand il y a des cycles, nous pouvons les
considérer comme un seul package, jusqu’à ne
plus avoir de cycle...
POUR DÉTECTER LES
COUCHES1 2 3 4 5 6 7 8 9 10
1
2
3
71 3
4
2 1 8 7 6
5
3
6
4 51 2 2 2
7
4 10 4 34 3
8
15 1
9
30
10 2 2 6
1 2 3+ 9 10
1
2
3+
10 67
9
30
10
2 8
Layer3 1 2
Layer2 3+
Layer1 9 10
ROADMAP
• Un cycle ?
• Construire une DSM.
• Detecter les cycles.
• Que faire de ces informations ?
• Détection de couches
• Compréhension et amélioration du design
COMPREHENSION DU
DESIGN
•En 3 niveaux:
• Niveau 1: Couleurs
• Niveau 2: information textuelle
• Niveau 3: information structurelle
NIVEAU 1: COULEURS
• Cycles en bleu
• Cycles directs en rouge
• Cycles indirects en jaune
A B C D
A X
B X X
C X 8
D 1
UN EXEMPLE
1 2 3 4 5 6 7 8 9 10
1
2
3
3 71
4
2 1 3
5
2 1 8 7 6
6
4 51 2 2 2
7
4 4 18 34 3
8
15 1
9
30
10
2 2 6
NIVEAU 2: INFORMATION
TEXTUELLE
• Héritage (I)
• Accès direct aux classes (R)
• Invocation (S)
• Extension (E)
UN EXEMPLE
DETECTER DES CYCLES
NetworkTest
NON SYMÉTRIQUE
• Supprimer ?
• Inverser les liens ?
• ???
SYMÉTRIQUE
• Fusionner ?
• Réorganiser les
packages ?
• ???
DSM...
• Avantages
• Détection de cycles
• Détection de couches
• Inconvénients
• Lisibilité
• Par où commencer les modifications ?
NIVEAU 3: EDSM
NIVEAU 3: EDSM
Source P1
Target P2
Background color: cycle
Tot Inh Acc Msg Ext
C
Z X Y
BA D'
D
ROADMAP
• DSM at Work
• Seaside 2.9 (no cycle....)
• Pharo
SEASIDE 2.9
PHARO
• 150
packages
• 70 packages
en cycles
• 260 cycles
DSM IN SOFTWARE
REENGINEERING
• Clarifie les dépendences
• Detecte les cycles
• Offre des pronostics (pink/red)
• Lattix (www.lattix.com)
• http://moose.unibe.ch/

Weitere ähnliche Inhalte

Mehr von LeClubQualiteLogicielle

20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOpsLeClubQualiteLogicielle
 
20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certificationsLeClubQualiteLogicielle
 
20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez EngieLeClubQualiteLogicielle
 
20171122 02 - Engage developers to use better coding practices
20171122 02 - Engage developers to use better coding practices20171122 02 - Engage developers to use better coding practices
20171122 02 - Engage developers to use better coding practicesLeClubQualiteLogicielle
 
20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle 20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle LeClubQualiteLogicielle
 
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...LeClubQualiteLogicielle
 
20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven developmentLeClubQualiteLogicielle
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?LeClubQualiteLogicielle
 
20151013 - Accueil Club Qualité Logicielle
20151013 - Accueil Club Qualité Logicielle 20151013 - Accueil Club Qualité Logicielle
20151013 - Accueil Club Qualité Logicielle LeClubQualiteLogicielle
 
20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continue20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continueLeClubQualiteLogicielle
 
20140410 - Cartographie applicative multi-technologies et analyse d'impact
20140410 - Cartographie applicative multi-technologies et analyse d'impact20140410 - Cartographie applicative multi-technologies et analyse d'impact
20140410 - Cartographie applicative multi-technologies et analyse d'impactLeClubQualiteLogicielle
 
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologieLeClubQualiteLogicielle
 
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...LeClubQualiteLogicielle
 
20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de testLeClubQualiteLogicielle
 
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...LeClubQualiteLogicielle
 
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...LeClubQualiteLogicielle
 
20130113 05 - Inspection continue et roadmap 2013
20130113 05 - Inspection continue et roadmap 201320130113 05 - Inspection continue et roadmap 2013
20130113 05 - Inspection continue et roadmap 2013LeClubQualiteLogicielle
 
20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBM20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBMLeClubQualiteLogicielle
 
20130523 06 - The mathematics the way algorithms think / the mathematics the ...
20130523 06 - The mathematics the way algorithms think / the mathematics the ...20130523 06 - The mathematics the way algorithms think / the mathematics the ...
20130523 06 - The mathematics the way algorithms think / the mathematics the ...LeClubQualiteLogicielle
 

Mehr von LeClubQualiteLogicielle (20)

20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps20171122 03 - Les tests de performance en environnement DevOps
20171122 03 - Les tests de performance en environnement DevOps
 
20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certifications
 
20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie20171122 01 - REX : Intégration et déploiement continu chez Engie
20171122 01 - REX : Intégration et déploiement continu chez Engie
 
20171122 02 - Engage developers to use better coding practices
20171122 02 - Engage developers to use better coding practices20171122 02 - Engage developers to use better coding practices
20171122 02 - Engage developers to use better coding practices
 
20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle 20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle
 
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des...
 
20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development20151013 - Agirc arrco : Behavior driven development
20151013 - Agirc arrco : Behavior driven development
 
20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?20151013 - Réduire les coûts des tests de performance ?
20151013 - Réduire les coûts des tests de performance ?
 
20151013 - Accueil Club Qualité Logicielle
20151013 - Accueil Club Qualité Logicielle 20151013 - Accueil Club Qualité Logicielle
20151013 - Accueil Club Qualité Logicielle
 
20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continue20151013 - DevOps et qualification continue
20151013 - DevOps et qualification continue
 
20140410 - Cartographie applicative multi-technologies et analyse d'impact
20140410 - Cartographie applicative multi-technologies et analyse d'impact20140410 - Cartographie applicative multi-technologies et analyse d'impact
20140410 - Cartographie applicative multi-technologies et analyse d'impact
 
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
20140410 - Implémentation de squash TM-TA - Architecture et méthodologie
 
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
20140410 - Gestion des identités, traçabilité des accés - Analogie avec la qu...
 
20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test20140410 - Choisir et implanter un outil de test
20140410 - Choisir et implanter un outil de test
 
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a...
 
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
20130113 06 - Travaux de recherche sur la corrélation entre qualité du code e...
 
20130113 05 - Inspection continue et roadmap 2013
20130113 05 - Inspection continue et roadmap 201320130113 05 - Inspection continue et roadmap 2013
20130113 05 - Inspection continue et roadmap 2013
 
20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBM20130113 04 - Tests d'integration et virtualisation - La vision IBM
20130113 04 - Tests d'integration et virtualisation - La vision IBM
 
20130523 06 - The mathematics the way algorithms think / the mathematics the ...
20130523 06 - The mathematics the way algorithms think / the mathematics the ...20130523 06 - The mathematics the way algorithms think / the mathematics the ...
20130523 06 - The mathematics the way algorithms think / the mathematics the ...
 
20130523 05 - Cyclomatic complexity
20130523 05 - Cyclomatic complexity20130523 05 - Cyclomatic complexity
20130523 05 - Cyclomatic complexity
 

20090929 02 - Dependency structural matrix (Inria)