rmodrmod quality and software...

78
Stéphane Ducasse Dr. Stéphane Ducasse [email protected] http://stephane.ducasse.free.fr/ RMod RMod Quality and Software Visualization 1

Upload: others

Post on 05-Jul-2020

9 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Stéphane Ducasse

Dr. Stéphane [email protected]://stephane.ducasse.free.fr/

RModRMod

Quality and SoftwareVisualization

1

Page 2: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

RMOD expertise

Supporting software evolution and software compositionAxis 1: Reengineering

Maintaining large software systemsMoose: a powerful platform for reengineeringNokia, Daimler, Harman-Becker, Siemens, Cincom

Axis 2: Dynamic languages to support evolutionRevisiting fundamental aspects of OO languagesReuse Traits: Fortress (SUN Microsystems), Perl-6, Scala (EPFL), Squeak, Dr-Scheme, Security and Dynamic Languages

2

RMod

Page 3: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

A word of presentationSince 1996 Moose (reengineering platform)

Object-Oriented Reengineering Patterns

Grounded in realityMaintainer of open-source projects

Worked with:Harman-Becker AG Bedag AG, Nokia, Daimler

3

Page 4: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

4

Page 5: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Let’s face it, this is the Graal

5

Page 6: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Roadmap• Some software development facts • Our approach

• Supporting maintenance• Moose an open-platform

• Visual principles in 3 min• Some visual examples• Conclusion

6

Page 7: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Software...

The Standish Group, 2004

53% Challenged

18% Failed

29% Succeeded

7

Page 8: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

53% Challenged

18% Failed

29% Succeeded

8

Software is complex.

Page 9: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

1946

Page 10: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

How large is your project?

1’000’000 lines of code* 2 = 2’000’000 seconds

/ 3600 = 560 hours/ 8 = 70 days

/ 20 = 3 months

10

Page 11: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Maintenance: Continuous Development

11

Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

(fixing reported errors)

18.2% Adaptive(new platforms or OS)

60.3% Perfective(new functionality)

4.1% Other

The bulk of the maintenance cost is due to new functionalityeven with better requirements, it is hard to predict new functions

Page 12: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Lehman’s Software Evolution LawsContinuous Change: “A program that is used in a real-world environment must change, or become progressively less useful in that environment.”

Software Entropy: “As a program evolves, it becomes more complex, and extra resources are needed to preserve and simplify its structure.”

12

Page 13: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

System evolution is like... SimCity

13

Page 14: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Software are living…Early decisions were certainly good at that timeBut the context changesCustomers changeTechnology changesPeople change

14

Page 15: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Software developmentis more than forward engineering.

Forward engineering

Actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

Page 16: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Maintenance is is needed to evolve the code.

Rever

se en

ginee

ring

Forward engineering

Actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

Page 17: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Roadmap• Some software development facts • Our approach

• Supporting maintenance• Moose an open-platform

• Visual principles in 3 min• Some visual examples• Conclusion

17

Page 18: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse

Help teams maintaining large software

What is the xray for software?code, people, practices

Which analyses?How can you monitor your system (dashboards....)How to present extracted information?

18

Page 19: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse

Since 1996...

TopicsMetamodeling, metrics,program understanding,visualization, evolution analysis,duplicated code detection,code Analysis, refactorings,test generation...

ContributionsMoose: an open-source extensible reengineering environment: (Lugano, Bern, Annecy, Anvers, Louvain la neuve, ULB, UTSL)

ContactsHarman-Becker (3 Millions C++), Bedag (Cobol), Nokia, ABB, IMEC

19

Representation Transformations

Reverse

Engineering

Analyses

Evolution

Page 20: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

20

Representation Transformations

Reverse

Engineering

Analyses

EvolutionLanguage Independent Meta Model (FAMIX)

[UML99]An Extensible Reengineering Environment (Moose)

[Models 06]

Reengineering PatternsVersion Analyses

[ICSM 05]HISMO metamodel

[JSME 05]

Understanding Large Systems [WCRE99, TSI00, TSE03]Static/Dynamic Information

[ICSM99]Feature Analysis

[JSME 06]Class Understanding

[OOPSLA01,TSE04]Package Blueprints

[ICSM 07]Distribution Maps

[ICSM 06]

Software Metrics [LMO99, OOPSLA00]

Duplicated Code Identification[ICSM99, ICSM02]

Group Identification [ASE03]

Test Generation [CSMR 06]Concept Identification

[WCRE 06]

Language Independent Refactorings

[IWPSE 00]

Page 21: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse

An example: who is responsible of what?

21

(1) Extraction

(2) Modèle

(4) Visualisation

(3) Analyses

Page 22: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse

An example: who is responsible of what?

22

(1) Extraction

(2) Modèle

(4) Visualisation

(3) Analyses

Distribution Map of authors on JBoss

Page 23: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Distribution Map

23

Page 24: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC =

753,0

00NOM = 102

Metrics Queries Visualizations ...

Moose is a powerful environment

Page 25: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Moose is designed to be extensible

Method Class

Inheritance

Method Class

Inheritance

Author

File

Duplication

Event

Trace

ClassVersion

ClassHistory

openmeta-described

Page 26: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Moose has been validated on real life systems

Several large, industrial case studies (NDA)Harman-BeckerNokiaDaimlerSiemens

Different implementation languages (C++, Java, Smalltalk, Cobol)

We use external C++ parsersDifferent sizesMoose is used in several research groups

26

Page 27: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Visualization principles in 3 min

• Preattentive visualization (unconscious < 200ms)• Gestalt principles (from 1912)• 70% of our sensors are dedicated to vision

27

Page 28: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

How many 5?

28

3332123466509000096766689877835367786676091091981897174643303982176834467865860880221167687687789762

Page 29: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

How many 5?

29

3332123466509000096766689877835367786676091091981897174643303982176834467865860880221167687687789762

Page 30: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Preattentive attributes

30

Color intensity

Form: orientation, line length, line width, size, shape, added marks, enclosure

Spatial position (2D location)

Motion (flicker)

Page 31: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Color / intensity

31

Page 32: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Position

32

Page 33: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Form / Orientation

33

Page 34: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Form / Line length

34

Page 35: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Form / Line width

35

Page 36: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Form / Size

36

Page 37: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Form / Shapes

37

Page 38: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Form / Added marks

38

Page 39: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Form / Enclosure

39

Page 40: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Context

40

Page 41: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Principle of Proximity

41

Page 42: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Principle of Similarity

42

Page 43: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Principle of Similarity

43

Page 44: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba 44

Principle of Enclosure

Page 45: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Principle of Enclosure

45

Page 46: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Principle of Closure

46

Page 47: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba 47

Principle of connectivity

Page 48: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Tudor Gîrba

Principle of connectivity

48

Page 49: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Roadmap• Some software development facts • Our approach

• Supporting maintenance• Moose an open-platform

• Visual principles in 3 min• Some visual examples• Conclusion

49

Page 50: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Challenges in VisualizationScreen sizeMax 12 colorsEdge-crossingLimited short-term memory (three to nine)Extracting semantics outBeauty cannot be a goal

Get some help fromGestalt principlespre-attentive visualization

50

Page 51: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Understanding large systemsUnderstanding code is difficult!Systems are largeCode is abstractShould I really convinced you?

Some existing approachesMetrics: you often get meaningless results once combinedVisualization: often beautiful but with little meaning

51

Page 52: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Polymetric views show up to 5 metrics.

Color metric

Width metric

Height metric

Position metrics

Lanza etal, 03

Page 53: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

System Complexity shows class hierarchies.

lines

attributes

methods

Page 54: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Polymetric views condense information

54

Classes+InheritanceW: # of Added Methods H: # of Overridden MethodsC: # of Method Extended

To get a feel of the inheritance semantics: adding vs. reusing

methods LOC # statements # parameters

Page 55: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Understanding classesUnderstanding even a class is difficult!

55

Page 56: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Class Blueprint shows class internals.

Initialize Interface Internal Accessor Attribute

invocation and access direction

Ducasse, Lanza, 05

Page 57: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

Class Blueprint shows class internals.

Page 58: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting
Page 59: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Cycles?IdentifyUnderstandFix

Enhancing Dependency Structural Matrix

59

Page 60: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Graph you said?

60

Page 61: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Building a DSM

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

61

Page 62: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

7 Packages visualization

1 cell = 1 dependency1 column = used packages1 line = using packages

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

62

Page 63: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Identify cycles

63

Page 64: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Causes and distribution

64

Page 65: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

D: two classes referring

each other

F: candidate for direct

cycle fix

I: incoming funnel

A: indirect cycle

E: high % of target

impacted

G: invocations

H: inheritance

+ otherC: accesses

F: candidate for

direct cycle

fix

B: complex cycleB: complex cycle

C: accesses

E: high % of source

I: outgoing funnel

Page 66: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

How developers develop?• More efficient to put people working together in the

same office? • How can we optimize software development?

66

Page 67: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Who did that?

67

Files

Time

Page 68: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Line colors show which author owned which files in which period

68

File A

File B

Green authorlarge commit

Green authorownership

Blue authorsmall commit

Page 69: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Which author “possesses” which files?

69

Page 70: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Alphabetical order is no order!

70

Page 71: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Based on similar commit signature

71

DialogueMonologue

Edit Takeover

Familiarization

Page 72: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Language IndependentLanguage independent, Textual, [ICSM’99], M. Rieger’s PhD. Thesis

Duploc handledPascal, Java, Smalltalk, Python, Cobol, C++, PDP-11, C

Slower than other approaches but...Max 45 min to adapt our approach to a new languageBetween 3% and 10% less identification than parametrized match

72

Exact Copies

a b c d e f a b c d e f

Copies with

a b c d e fa b x y e f

Page 73: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

A Conceptual MatrixFile A

File A

File B

File B

Exact Copies

a b c d e f a b c d e f

Copies with

a b c d e fa b x y e f

Variations73

Page 74: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Evolution holds useful information

74

A

B

A

BC

A

BC

D

A

BC

D

A

D

time

B is stable

C was removed

E is newborn

A is persistent

D inherited from C and then from A …

Page 75: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Hierarchy Evolution Complexity View characterizes class hierarchy histories

75

B is stable

C was removed

E is newborn

A is persistent

D inherited from C and then from A …

A

B

E

C

D

ENOS

Removed

Age

Removed

Age InheritanceHistory

ClassHistory

ENOM

Page 76: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

Class hierarchies over 40 versions of Jun - a 740 classes, 3D framework

76

Page 77: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSERMod

We are interested in your Remodularization/RepackagingSOA - Service IdentificationArchitecture Extraction/ValidationSoftware QualityCost predictionEJB AnalysisBusiness rules extractionModel transformation

and also language challenges...

77

Page 78: RModRMod Quality and Software Visualizationsdmeta.gforge.inria.fr/Presentations/2009-PSA-Qualimetri... · 2014-10-22 · Quality and Software Visualization 1. RMOD expertise Supporting

S.Ducasse LSE

Evolution is difficult

• We are interested in your problems!• Moose is open-source, you can use it, extend it, change

it• We can collaborate!

78

}

{

}

{

}

{}

{

}

{

NOM > 10 & LOC > 100