EyeVis

v := RTView new.
objs := RTObject withAllSubclasses flatCollect:#methods.
els := RTEllipse new color: Color red; elementsOn: objs.
v addAll: els.
RTCircleLayout2 new initialRadius: 50; centeredAt: 150@150; on: els.
els2 := RTEllipse new color: Color red; elementsOn: objs.
v addAll: els2.
RTCircleLayout2 new initialRadius: 150; centeredAt: 150@150;on: els2.
els3 := RTEllipse new color: Color red; elementsOn: objs.
v addAll: els3.
RTCircleLayout2 new initialRadius: 250; centeredAt: 150@150;on: els3.
els4 := RTEllipse new color: Color red; elementsOn: RTObject withAllSubclasses.
v addAll: els4.
RTCircleLayout2 new initialRadius: 350; centeredAt: 150@150;on: els4.
RTEdge 
    buildEdgesFromObjects: (objs select:[:e| e implementors size > 10])
    from: #yourself 
    toAll: [:e| |i| i := e implementors. 
        i size > 10     ifTrue:[(i first:10) collect:#compiledMethod] 
                ifFalse:[i collect:#compiledMethod]  ] 
    using: (RTLine new color: (Color purple alpha:0.01)) inView: v
    fromScope: els2
    toScope: els.
RTEdge 
    buildEdgesFromObjects: objs
    from: #yourself toAll: #dependentMethods 
    using: (RTLine new color: (Color green alpha:0.1)) inView: v
    fromScope: els2
    toScope: els3.
RTEdge 
    buildEdgesFromObjects: objs
    from: [:e| e classBinding value  ] to:#yourself  
    using: (RTLine new color: (Color blue alpha:0.1)) inView: v
    fromScope: els4
    toScope: els3.
v addAll: edges.
(els, els2, els3, els4) @ RTSetEdgeAlpha.
(els, els2, els3, els4) @ RTPopup.
v

Eyevis-example