moose overview

Post on 28-Nov-2014

5.642 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

 

TRANSCRIPT

Tudor Gîrbawww.tudorgirba.com

1946

1956

1956

1956

1956 2006

1956 2006

1956 2006

?1956 2006

Software is complex.

The Standish Group, 2004

53% Challenged

18% Failed

29% Succeeded

How large is your project?

How large is your project?

1’000’000 lines of code

How large is your project?

1’000’000 lines of code

* 2 = 2’000’000 seconds

How large is your project?

1’000’000 lines of code

* 2 = 2’000’000 seconds

/ 3600 = 560 hours

How large is your project?

1’000’000 lines of code

* 2 = 2’000’000 seconds

/ 3600 = 560 hours

/ 8 = 70 days

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

Software developmentis more than forward engineering.

Forward engineering

Actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

Reverse engineeringis needed to make sense of the code.

Rever

se en

ginee

ring

Forward engineering

Actual development}

{

}

{

}

{

}

{}

{

}

{

}

{}

{

}

{

Reverse engineering is creating high level views.

}

{

}

{

}

{}

{

}

{

Rever

se en

ginee

ring

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC =

753,0

00NOM = 102

Metrics Queries Visualizations ...

Metrics compress the system into numbers.

Cyclomatic complexity = 21

LOC = 753,000NOM = 102

}

{

}

{

}

{}

{

}

{

Queries reduce the analysis space.

}

{

}

{

}

{}

{

}

{

Visualization compresses the system into pictures.

}

{

}

{

}

{}

{

}

{

70% of our sensors are dedicated to vision.

How many groups do you see?

How many groups do you see?

How many groups do you see?

How many groups do you see?

CodeCity

shows

where

your

code

lives.

Wettel, Lanza, 07

Distribution Map

shows

how

properties

spread.

Ducasse etal, 06

Polymetric views show up to 5 metrics.

Color metric

Width metric

Height metric

Position metrics

Lanza etal, 03

System Complexity shows class hierarchies.

lines

attributes

methods

Class Blueprint shows class internals.

Initialize Interface Internal Accessor Attribute

invocation and access direction

Ducasse, Lanza, 05

Class Blueprint shows class internals.

Visualization compresses the system into pictures.

}

{

}

{

}

{}

{

}

{

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC =

753,0

00NOM = 102

Metrics Queries Visualizations ...

}

{

}

{

}

{}

{

}

{

McCabe = 21

LOC =

753,0

00NOM = 102

Metrics Queries Visualizations ...

Duplicationdetection

Evolution analysis

Dynamic analysis

Semantic analysis

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

CVS hides the past

But, who did this?

We color the files according to the authors.

Still, alphabetical order is no order.

Ownership Map reveals developer patterns.

Girba etal, 2005

Repository Meta MondrianUIFAMIX Core

EyeSee

MSE

Repository Meta MondrianUI

Smalltalk

Java

C++

iPlasma

FAMIX Core

EyeSee

MSE

Repository Meta MondrianUI

Smalltalk

Java

C++

iPlasma

FAMIX Core

HapaxDynaMoose SoftwarenautChronia SmallDude

EyeSee

Cook CodeCity

MSE

Repository Meta MondrianUI

Smalltalk

Java

C++

iPlasma

FAMIX Core

HapaxDynaMoose SoftwarenautChronia SmallDude

EyeSee

Cook

CVS

CodeCity

MSE SourceJ-Wiretap

MSE

Repository Meta MondrianUI

Smalltalk

Java

C++

iPlasma

FAMIX Core

HapaxDynaMoose SoftwarenautChronia SmallDude

EyeSee

Cook

CVS

CodeCity

MSE SourceJ-Wiretap

SubversionBugsLife ClusteringConceptAnalysis ...

Moose is a collective effort

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.

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

Tudor Gîrbawww.tudorgirba.com

top related