moose overview
Embed Size (px)
DESCRIPTION
TRANSCRIPT

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
creativecommons.org/licenses/by/3.0/