moose overview

54
Tudor Gîrba www.tudorgirba.com

Upload: tudor-girba

Post on 28-Nov-2014

5.644 views

Category:

Technology


1 download

DESCRIPTION

 

TRANSCRIPT

Page 1: Moose Overview

Tudor Gîrbawww.tudorgirba.com

Page 2: Moose Overview

1946

Page 3: Moose Overview

1956

Page 4: Moose Overview

1956

Page 5: Moose Overview

1956

Page 6: Moose Overview

1956 2006

Page 7: Moose Overview

1956 2006

Page 8: Moose Overview

1956 2006

Page 9: Moose Overview

?1956 2006

Page 10: Moose Overview

Software is complex.

The Standish Group, 2004

53% Challenged

18% Failed

29% Succeeded

Page 11: Moose Overview

How large is your project?

Page 12: Moose Overview

How large is your project?

1’000’000 lines of code

Page 13: Moose Overview

How large is your project?

1’000’000 lines of code

* 2 = 2’000’000 seconds

Page 14: Moose Overview

How large is your project?

1’000’000 lines of code

* 2 = 2’000’000 seconds

/ 3600 = 560 hours

Page 15: Moose Overview

How large is your project?

1’000’000 lines of code

* 2 = 2’000’000 seconds

/ 3600 = 560 hours

/ 8 = 70 days

Page 16: Moose Overview

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

Page 17: Moose Overview

Software developmentis more than forward engineering.

Forward engineering

Actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

Page 18: Moose Overview

Reverse engineeringis needed to make sense of the code.

Rever

se en

ginee

ring

Forward engineering

Actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

Page 19: Moose Overview

Reverse engineering is creating high level views.

}

{

}

{

}

{}

{

}

{

Rever

se en

ginee

ring

Page 20: Moose Overview

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC =

753,0

00NOM = 102

Metrics Queries Visualizations ...

Page 21: Moose Overview

Metrics compress the system into numbers.

Cyclomatic complexity = 21

LOC = 753,000NOM = 102

}

{

}

{

}

{}

{

}

{

Page 22: Moose Overview

Queries reduce the analysis space.

}

{

}

{

}

{}

{

}

{

Page 23: Moose Overview

Visualization compresses the system into pictures.

}

{

}

{

}

{}

{

}

{

Page 24: Moose Overview

70% of our sensors are dedicated to vision.

Page 25: Moose Overview

How many groups do you see?

Page 26: Moose Overview

How many groups do you see?

Page 27: Moose Overview

How many groups do you see?

Page 28: Moose Overview

How many groups do you see?

Page 29: Moose Overview
Page 30: Moose Overview

CodeCity

shows

where

your

code

lives.

Wettel, Lanza, 07

Page 31: Moose Overview

Distribution Map

shows

how

properties

spread.

Ducasse etal, 06

Page 32: Moose Overview

Polymetric views show up to 5 metrics.

Color metric

Width metric

Height metric

Position metrics

Lanza etal, 03

Page 33: Moose Overview

System Complexity shows class hierarchies.

lines

attributes

methods

Page 34: Moose Overview

Class Blueprint shows class internals.

Initialize Interface Internal Accessor Attribute

invocation and access direction

Ducasse, Lanza, 05

Page 35: Moose Overview

Class Blueprint shows class internals.

Page 36: Moose Overview

Visualization compresses the system into pictures.

}

{

}

{

}

{}

{

}

{

Page 37: Moose Overview

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC =

753,0

00NOM = 102

Metrics Queries Visualizations ...

Page 38: Moose Overview

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC =

753,0

00NOM = 102

Metrics Queries Visualizations ...

Duplicationdetection

Evolution analysis

Dynamic analysis

Semantic analysis

Page 39: Moose Overview

view := ViewRenderer new.view borderedRectangleShape.view nodes: classes forEach: [:each |

view nodes: each methods.view gridLayout

].view edgesFrom: #superclass.view treeLayout.view open.

Moose provides an agile visualization scripting.

Meyer etal, 2005

Page 40: Moose Overview

CVS hides the past

Page 41: Moose Overview

But, who did this?

Page 42: Moose Overview

We color the files according to the authors.

Page 43: Moose Overview

Still, alphabetical order is no order.

Page 44: Moose Overview

Ownership Map reveals developer patterns.

Girba etal, 2005

Page 45: Moose Overview

Repository Meta MondrianUIFAMIX Core

EyeSee

Page 46: Moose Overview

MSE

Repository Meta MondrianUI

Smalltalk

Java

C++

iPlasma

FAMIX Core

EyeSee

Page 47: Moose Overview

MSE

Repository Meta MondrianUI

Smalltalk

Java

C++

iPlasma

FAMIX Core

HapaxDynaMoose SoftwarenautChronia SmallDude

EyeSee

Cook CodeCity

Page 48: Moose Overview

MSE

Repository Meta MondrianUI

Smalltalk

Java

C++

iPlasma

FAMIX Core

HapaxDynaMoose SoftwarenautChronia SmallDude

EyeSee

Cook

CVS

CodeCity

MSE SourceJ-Wiretap

Page 49: Moose Overview

MSE

Repository Meta MondrianUI

Smalltalk

Java

C++

iPlasma

FAMIX Core

HapaxDynaMoose SoftwarenautChronia SmallDude

EyeSee

Cook

CVS

CodeCity

MSE SourceJ-Wiretap

SubversionBugsLife ClusteringConceptAnalysis ...

Page 50: Moose Overview

Moose is a collective effort

Page 51: Moose Overview

Current TeamStéphane DucasseTudor GîrbaAdrian Kuhn

Previous TeamSerge DemeyerMichele LanzaSander Tichelaar

Current ContributorsHani Abdeen Ilham AllouiGabriela Arevalo Mihai BalintPhilipp Bunge Marco D’AmbrosOrla Greevy Markus Hofstetter Matthias Junker Adrian LienhardMartin von Löwis Mircea LunguMichael Meyer Damien PolletSara Sellos Lucas StreitToon Verwaest Roel WuytsRichard Wettel

Previous ContributorsTobias Aebi Frank BuchliThomas Bühler Calogero ButeraDaniel Frey Georges GolomingiDavid Gurtner Reinout HeeckMarkus Kobel Michael LocherPietro Malorgio Michael MeerLaura Ponisio Daniel RatiuMatthias Rieger Azadeh Razavizadeh Andreas Schlapbach Daniel SchweizerMauricio Seeberger Lukas SteigerDaniele Talerico Herve VerjusVioleta Voinescu.

Page 52: Moose Overview

Current TeamStéphane DucasseTudor GîrbaAdrian Kuhn

Previous TeamSerge DemeyerMichele LanzaSander Tichelaar

Current ContributorsHani Abdeen Ilham AllouiGabriela Arevalo Mihai BalintPhilipp Bunge Marco D’AmbrosOrla Greevy Markus Hofstetter Matthias Junker Adrian LienhardMartin von Löwis Mircea LunguMichael Meyer Damien PolletSara Sellos Lucas StreitToon Verwaest Roel WuytsRichard Wettel

Previous ContributorsTobias Aebi Frank BuchliThomas Bühler Calogero ButeraDaniel Frey Georges GolomingiDavid Gurtner Reinout HeeckMarkus Kobel Michael LocherPietro Malorgio Michael MeerLaura Ponisio Daniel RatiuMatthias Rieger Azadeh Razavizadeh Andreas Schlapbach Daniel SchweizerMauricio Seeberger Lukas SteigerDaniele Talerico Herve VerjusVioleta Voinescu.

~ 100 men years

Page 53: Moose Overview

Tudor Gîrbawww.tudorgirba.com