• Share
  • Email
  • Embed
  • Like
  • Save
  • Private Content
Detecting Cycles with DSM
 

Detecting Cycles with DSM

on

  • 1,413 views

Detecting Cycles with DSM by J. Laval, ESUG09, Brest, France.

Detecting Cycles with DSM by J. Laval, ESUG09, Brest, France.

Statistics

Views

Total Views
1,413
Views on SlideShare
1,410
Embed Views
3

Actions

Likes
0
Downloads
29
Comments
0

2 Embeds 3

http://www.slideshare.net 2
https://duckduckgo.com 1

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

    Detecting Cycles with DSM Detecting Cycles with DSM Presentation Transcript

    • DETECTING SYSTEM CYCLES WITH DSM Jannik Laval PhD Student - RMod Team http://rmod.lille.inria.fr !"#$
    • DSM? • Dependency Structural Matrix • How to organize tasks based on their dependencies?
    • ROADMAP •A cycle? • What is DSM? • Using color for cycle detection • DSM at Work • Advanced features (research)
    • ROADMAP •A cycle? • What is DSM? • Using color for cycle detection • DSM at Work • Advanced features (research)
    • A CYCLE •a path which comes back to its origin • between 2 or more elements A B C D
    • CYCLE PROBLEMS • Dependency logic • Modular? A B • Build dependencies C D
    • YOU SAID GRAPH?
    • ROADMAP •A cycle? • What is DSM? • Using color for cycle detection • DSM at Work • Advanced features (research)
    • DEPENDENCY MATRIX • Origin: process optimization A B C D A x • Appliedto dependency in software B x x reengineering C x x D x • Compact • Support cycle and layer identification
    • A DEPENDENCY MATRIX A B C D A B A X B X X C X X C D D X A B C D A 0 1 0 0 B 1 0 1 0 C 1 0 0 1 D 0 0 1 0
    • PACKAGE STRUCTURE WITH DSM A B C D •a cell is a dependency A 2 • information in a cell B 1 2 C 4 8 •a column represents used packages D 1 •a line represents using packages
    • DEPENDENCIES • Inheritances • Direct class references • Invocations • Extensions
    • EXTENSIONS • reverse dependencies • structure packages by concerns Network Core Network Core Url String Url asUrl String String asUrl ^ Url new ^ Url new path: self path: self
    • ROADMAP •A cycle? • What is DSM? • detecting cycles • Using color for cycle detection • DSM at Work • Advanced features (research)
    • 2 METHODS TO DETECT CYCLES • Squared adjacency matrix • Path searching
    • SQUARED ADJACENCY MATRIX
    • SQUARED ADJACENCY MATRIX • Pros • mathematical approach • Cons • blurry cycles • no information about path
    • PATH SEARCHING
    • PATH SEARCHING • Pros • information about path • Cons • slow
    • BLACK AND WHITE NETWORK x x x x x x x x x x x x x 71 3 x 2 1 8 7 6 x 3 • what do we see? x 4 51 2 2 2 x 4 10 4 34 3 x 15 1 x 30 x 2 2 6
    • ROADMAP •A cycle? • What is DSM? • what about cycles ? • Using color for cycle detection • DSM at Work • Advanced features (research)
    • FOLDING CYCLES TO FIND LAYERS • When we have cycles we can consider the packages as a single one and continue...
    • FOLDING ... 1 2 3 4 5 6 7 8 9 10 1 2 3+ 9 10 1 1 2 2 3 71 3 3+ 10 67 4 2 1 8 7 6 9 30 5 3 10 2 8 6 4 51 2 2 2 7 4 10 4 34 3 8 15 1 Layer3 1 2 9 30 Layer2 3+ 10 2 2 6 Layer1 9 10
    • DSM... • Pros • Cycle spotting • Layer • Cons • Reading • Where to fix first?
    • ROADMAP •A cycle? • What is DSM? • Using color for cycle detection • DSM at Work • Advanced features (research)
    • ENHANCEMENT ONE: COLOR A B C D • Direct Cycle in red A X B X X • Indirect cycle in yellow C X 8 • Complexe cycle in pale blue D 1
    • ENHANCEMENT TWO: DEPENDENCIES • Inheritances • Direct class references • Invocations • Extensions
    • 1 AN EXAMPLE 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
    • CLARIFY DEPENDENCIES NetworkTest
    • DETECT CYCLES
    • OFFER PROGNOSTIC
    • DISYMMETRIC • Remove ? • Reverse links ? • ???
    • SYMMETRIC • Merge ? • Make two different packages ? • ???
    • ROADMAP •A cycle? • What is DSM? • Using color for cycle detection • DSM at Work • Seaside 2.9 (no cycle....) • Pharo • Advanced features (research)
    • SEASIDE 2.9
    • PHARO
    • ROADMAP •A cycle? • What is DSM? • Using color for cycle detection • DSM at Work • Advanced features (research)
    • EDSM P3 Tot Inh Acc Msg Ext Source P1 C A B D' P1 B A C D' P2 Z X Y D X Y Z D Target P2 P4 Background color: cycle
    • EXAMPLE OF A CELL
    • DETAILED INFORMATION Classes in Morphic-Basic Classes in Morphic-Widgets use classes in Morphic-Widgets use classes in Morphic-Basic
    • DSM IN SOFTWARE REENGINEERING • Clarify dependencies • Detect cycles • Offer prognostic (pink/red) • Lattix (www.lattix.com) • http://moose.unibe.ch/