20090929 02 - Dependency structural matrix (Inria)

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
20090929 02 - Dependency structural matrix (Inria)
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/
1 of 43

Recommended

La mesure logicielle by
La mesure logicielleLa mesure logicielle
La mesure logicielleRachid Lajouad
1.4K views21 slides
5.5 Clustering by
5.5 Clustering5.5 Clustering
5.5 ClusteringBoris Guarisma
2.3K views28 slides
Mise en oeuvre des framework de machines et deep learning v1 by
Mise en oeuvre des framework de machines et deep learning v1 Mise en oeuvre des framework de machines et deep learning v1
Mise en oeuvre des framework de machines et deep learning v1 ENSET, Université Hassan II Casablanca
10.7K views208 slides
cours-ADMINISTRATION DUN RESEAU INFORMATIQUE.pdf by
cours-ADMINISTRATION DUN RESEAU INFORMATIQUE.pdfcours-ADMINISTRATION DUN RESEAU INFORMATIQUE.pdf
cours-ADMINISTRATION DUN RESEAU INFORMATIQUE.pdfGodefroyCheumaniTche1
306 views37 slides
Algorithme knn by
Algorithme knnAlgorithme knn
Algorithme knnWassim Lahbibi
22.6K views14 slides
Evaluation d’explications pour la prédiction de liens dans les graphes de con... by
Evaluation d’explications pour la prédiction de liens dans les graphes de con...Evaluation d’explications pour la prédiction de liens dans les graphes de con...
Evaluation d’explications pour la prédiction de liens dans les graphes de con...Fabien Gandon
85 views22 slides

More Related Content

More from LeClubQualiteLogicielle

20171122 03 - Les tests de performance en environnement DevOps by
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
2.3K views30 slides
20171122 04 - Automatisation - formation et certifications by
20171122 04 - Automatisation - formation et certifications20171122 04 - Automatisation - formation et certifications
20171122 04 - Automatisation - formation et certificationsLeClubQualiteLogicielle
764 views37 slides
20171122 01 - REX : Intégration et déploiement continu chez Engie by
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
1.1K views30 slides
20171122 02 - Engage developers to use better coding practices by
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
269 views21 slides
20171122 - Accueil Club Qualité Logicielle by
20171122 - Accueil Club Qualité Logicielle 20171122 - Accueil Club Qualité Logicielle
20171122 - Accueil Club Qualité Logicielle LeClubQualiteLogicielle
415 views12 slides
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des... by
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
460 views23 slides

More from LeClubQualiteLogicielle(20)

20171122 03 - Les tests de performance en environnement DevOps by LeClubQualiteLogicielle
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 01 - REX : Intégration et déploiement continu chez Engie by LeClubQualiteLogicielle
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
20151013 - Crédit Mutuel ARKEA : mise en place d'une traçabilité outillée des... by 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...
20140410 - Cartographie applicative multi-technologies et analyse d'impact by LeClubQualiteLogicielle
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 by LeClubQualiteLogicielle
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... by LeClubQualiteLogicielle
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...
20130113 02 - TMMI, un modèle pour rentabiliser une organisation de test et a... by LeClubQualiteLogicielle
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... by 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 04 - Tests d'integration et virtualisation - La vision IBM by LeClubQualiteLogicielle
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 ... by LeClubQualiteLogicielle
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 ...

20090929 02 - Dependency structural matrix (Inria)