Moose Overview
Upcoming SlideShare
Loading in...5
×
 

Moose Overview

on

  • 5,467 views

 

Statistics

Views

Total Views
5,467
Views on SlideShare
4,894
Embed Views
573

Actions

Likes
2
Downloads
59
Comments
0

8 Embeds 573

http://www.tudorgirba.com 553
http://mwyrobek.tumblr.com 7
http://flavors.me 4
http://www.slideshare.net 3
http://localhost:8008 2
http://localhost:8080 2
http://localhost:8001 1
http://tudorgirba.com 1
More...

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

CC Attribution License

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Moose Overview Moose Overview Presentation Transcript

  • Tudor Gîrba www.tudorgirba.com
  • 1946
  • 1956
  • 1956
  • 1956
  • 1956 2006
  • 1956 2006
  • 1956 2006
  • 1956 2006 ?
  • Software is complex. 29% Succeeded 18% Failed 53% Challenged The Standish Group, 2004
  • 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 development is more than forward engineering. Fo rw ar d en gin ee rin g { { { { { { } { { Actual development } } } } } } } } {
  • Reverse engineering is needed to make sense of the code. Fo rw ing ar r ee d en gin gin n e ee se rin er g v Re { { { { { { } { { Actual development } } } } } } } } {
  • Reverse engineering is creating high level views. ing r ee in ng e e s er ev R { { { { } } } } } {
  • McCabe = 21 NOM 0 = 102 ,00 3 75 = C LO ... Metrics Queries Visualizations { { { { } } } } } {
  • Metrics compress the system into numbers. 0 Cyclomatic complexity = 21 ,00 3 75 NOM = = 102 OC L { { { { } } } } } {
  • 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 Wettel, Lanza, 07 shows where your code lives.
  • Distribution Map shows how properties spread. Ducasse etal, 06
  • Polymetric views show up to 5 metrics. Lanza etal, 03 Width metric Height metric Position metrics Color metric
  • System Complexity shows class hierarchies. attributes methods lines
  • Class Blueprint shows class internals. Ducasse, Lanza, 05 Initialize Interface Internal Accessor Attribute invocation and access direction
  • Class Blueprint shows class internals.
  • Visualization compresses the system into pictures. { { { { } } } } } {
  • McCabe = 21 NOM 0 = 102 ,00 3 75 = C LO ... Metrics Queries Visualizations { { { { } } } } } {
  • Duplication detection McCabe = 21 Evolution analysis NOM 0 = 102 ,00 3 Dynamic analysis 75 = C LO ... Semantic analysis Metrics Queries Visualizations { { { { } } } } } {
  • Moose provides an agile visualization scripting. Meyer etal, 2005 view := ViewRenderer new. view borderedRectangleShape. view nodes: classes forEach: [:each | view nodes: each methods. view gridLayout ]. view edgesFrom: #superclass. view treeLayout. view open.
  • 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
  • FAMIX Meta UI Mondrian EyeSee Repository Core
  • FAMIX Meta UI Mondrian EyeSee Repository Core Java iPlasma MSE Smalltalk C++
  • Chronia Cook CodeCity DynaMoose Hapax Softwarenaut SmallDude FAMIX Meta UI Mondrian EyeSee Repository Core Java iPlasma MSE Smalltalk C++
  • CVS J-Wiretap MSE Source Chronia Cook CodeCity DynaMoose Hapax Softwarenaut SmallDude FAMIX Meta UI Mondrian EyeSee Repository Core Java iPlasma MSE Smalltalk C++
  • CVS J-Wiretap MSE Source ... Concept BugsLife Clustering Subversion Analysis Chronia Cook CodeCity DynaMoose Hapax Softwarenaut SmallDude FAMIX Meta UI Mondrian EyeSee Repository Core Java iPlasma MSE Smalltalk C++
  • Moose is a collective effort
  • Current Team Previous Team Stéphane Ducasse Serge Demeyer Tudor Gîrba Michele Lanza Adrian Kuhn Sander Tichelaar Current Contributors Previous Contributors Hani Abdeen Ilham Alloui Tobias Aebi Frank Buchli Gabriela Arevalo Mihai Balint Thomas Bühler Calogero Butera Philipp Bunge Marco D’Ambros Daniel Frey Georges Golomingi Orla Greevy Markus Hofstetter David Gurtner Reinout Heeck Matthias Junker Adrian Lienhard Markus Kobel Michael Locher Martin von Löwis Mircea Lungu Pietro Malorgio Michael Meer Michael Meyer Damien Pollet Laura Ponisio Daniel Ratiu Sara Sellos Lucas Streit Matthias Rieger Azadeh Razavizadeh Toon Verwaest Roel Wuyts Andreas Schlapbach Daniel Schweizer Richard Wettel Mauricio Seeberger Lukas Steiger Daniele Talerico Herve Verjus Violeta Voinescu.
  • Current Team Previous Team Stéphane Ducasse Serge Demeyer Tudor Gîrba Michele Lanza Adrian Kuhn Sander Tichelaar Current Contributors menPrevious Contributors ~ 100 years Hani Abdeen Ilham Alloui Tobias Aebi Frank Buchli Gabriela Arevalo Mihai Balint Thomas Bühler Calogero Butera Philipp Bunge Marco D’Ambros Daniel Frey Georges Golomingi Orla Greevy Markus Hofstetter David Gurtner Reinout Heeck Matthias Junker Adrian Lienhard Markus Kobel Michael Locher Martin von Löwis Mircea Lungu Pietro Malorgio Michael Meer Michael Meyer Damien Pollet Laura Ponisio Daniel Ratiu Sara Sellos Lucas Streit Matthias Rieger Azadeh Razavizadeh Toon Verwaest Roel Wuyts Andreas Schlapbach Daniel Schweizer Richard Wettel Mauricio Seeberger Lukas Steiger Daniele Talerico Herve Verjus Violeta Voinescu.
  • Tudor Gîrba www.tudorgirba.com
  • Tudor Gîrba www.tudorgirba.com creativecommons.org/licenses/by/3.0/