rmodrmod quality and software visualization...s.ducasse lse rmod maintenance: continuous development...

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 01-Jan-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Stéphane Ducasse

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

RModRMod

Quality and SoftwareVisualization

1

Page 2: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

4

Page 5: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

Let’s face it, this is the Graal

5

Page 6: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

Software...

The Standish Group, 2004

53% Challenged

18% Failed

29% Succeeded

7

Page 8: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

53% Challenged

18% Failed

29% Succeeded

8

Software is complex.

Page 9: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

1946

Page 10: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

System evolution is like... SimCity

13

Page 14: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Software developmentis more than forward engineering.

Forward engineering

Actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

Page 16: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Maintenance is is needed to evolve the code.

Rever

se en

ginee

ring

Forward engineering

Actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

Page 17: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

Distribution Map

23

Page 24: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC =

753,0

00NOM = 102

Metrics Queries Visualizations ...

Moose is a powerful environment

Page 25: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

How many 5?

28

3332123466509000096766689877835367786676091091981897174643303982176834467865860880221167687687789762

Page 29: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

How many 5?

29

3332123466509000096766689877835367786676091091981897174643303982176834467865860880221167687687789762

Page 30: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Color / intensity

31

Page 32: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Position

32

Page 33: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Form / Orientation

33

Page 34: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Form / Line length

34

Page 35: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Form / Line width

35

Page 36: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Form / Size

36

Page 37: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Form / Shapes

37

Page 38: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Form / Added marks

38

Page 39: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Form / Enclosure

39

Page 40: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Context

40

Page 41: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Principle of Proximity

41

Page 42: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Principle of Similarity

42

Page 43: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Principle of Similarity

43

Page 44: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba 44

Principle of Enclosure

Page 45: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Principle of Enclosure

45

Page 46: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Principle of Closure

46

Page 47: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba 47

Principle of connectivity

Page 48: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Tudor Gîrba

Principle of connectivity

48

Page 49: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Polymetric views show up to 5 metrics.

Color metric

Width metric

Height metric

Position metrics

Lanza etal, 03

Page 53: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

System Complexity shows class hierarchies.

lines

attributes

methods

Page 54: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

Understanding classesUnderstanding even a class is difficult!

55

Page 56: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Class Blueprint shows class internals.

Initialize Interface Internal Accessor Attribute

invocation and access direction

Ducasse, Lanza, 05

Page 57: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

Class Blueprint shows class internals.

Page 58: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective
Page 59: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

Cycles?IdentifyUnderstandFix

Enhancing Dependency Structural Matrix

59

Page 60: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

Graph you said?

60

Page 61: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

Identify cycles

63

Page 64: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

Causes and distribution

64

Page 65: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

Who did that?

67

Files

Time

Page 68: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

Which author “possesses” which files?

69

Page 70: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

Alphabetical order is no order!

70

Page 71: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

Based on similar commit signature

71

DialogueMonologue

Edit Takeover

Familiarization

Page 72: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

S.Ducasse LSERMod

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

76

Page 77: RModRMod Quality and Software Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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 Visualization...S.Ducasse LSE RMod Maintenance: Continuous Development 11 Between 50% and 75% of global effort is spent on “maintenance” ! 17.4% Corrective

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