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...
How large is your project?


    1’000’000 lines of code
    * 2 = 2’000’000 seconds
      / 3600 = 560 hours
         / 8...
Software development
                        is more than forward engineering.



                                        ...
Reverse engineering
                    is needed to make sense of the code.



                                          ...
Reverse engineering is creating high level views.




                                                             ing
   ...
McCabe = 21

NOM                          0
      = 102
                          ,00
                        3
          ...
Metrics compress the system into numbers.

                                                                      0
       ...
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 me...
System Complexity shows class hierarchies.




                                          attributes


                    ...
Class Blueprint shows class internals.
                                                       Ducasse, Lanza, 05

Initiali...
Class Blueprint shows class internals.
Visualization compresses the system into pictures.




                     {               {
                            ...
McCabe = 21

NOM                          0
      = 102
                          ,00
                        3
          ...
Duplication
                                                                                                detection
  Mc...
Moose provides an agile visualization scripting.
                                         Meyer etal, 2005




view := Vie...
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...
Chronia Cook CodeCity DynaMoose Hapax Softwarenaut SmallDude




             FAMIX
                        Meta      UI  ...
CVS         J-Wiretap     MSE                              Source




Chronia Cook CodeCity DynaMoose Hapax Softwarenaut S...
CVS          J-Wiretap         MSE                                   Source

                                             ...
Moose is a collective effort
Current Team                                Previous Team
Stéphane Ducasse                            Serge Demeyer
Tudor ...
Current Team                                Previous Team
Stéphane Ducasse                            Serge Demeyer
Tudor ...
Tudor Gîrba
www.tudorgirba.com
Tudor Gîrba
       www.tudorgirba.com




creativecommons.org/licenses/by/3.0/
Moose Overview
Upcoming SlideShare
Loading in...5
×

Moose Overview

4,134

Published on

Published in: Technology, Business
0 Comments
2 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
4,134
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
61
Comments
0
Likes
2
Embeds 0
No embeds

No notes for slide

Moose Overview

  1. 1. Tudor Gîrba www.tudorgirba.com
  2. 2. 1946
  3. 3. 1956
  4. 4. 1956
  5. 5. 1956
  6. 6. 1956 2006
  7. 7. 1956 2006
  8. 8. 1956 2006
  9. 9. 1956 2006 ?
  10. 10. Software is complex. 29% Succeeded 18% Failed 53% Challenged The Standish Group, 2004
  11. 11. How large is your project?
  12. 12. How large is your project? 1’000’000 lines of code
  13. 13. How large is your project? 1’000’000 lines of code * 2 = 2’000’000 seconds
  14. 14. How large is your project? 1’000’000 lines of code * 2 = 2’000’000 seconds / 3600 = 560 hours
  15. 15. How large is your project? 1’000’000 lines of code * 2 = 2’000’000 seconds / 3600 = 560 hours / 8 = 70 days
  16. 16. 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
  17. 17. Software development is more than forward engineering. Fo rw ar d en gin ee rin g { { { { { { } { { Actual development } } } } } } } } {
  18. 18. 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 } } } } } } } } {
  19. 19. Reverse engineering is creating high level views. ing r ee in ng e e s er ev R { { { { } } } } } {
  20. 20. McCabe = 21 NOM 0 = 102 ,00 3 75 = C LO ... Metrics Queries Visualizations { { { { } } } } } {
  21. 21. Metrics compress the system into numbers. 0 Cyclomatic complexity = 21 ,00 3 75 NOM = = 102 OC L { { { { } } } } } {
  22. 22. Queries reduce the analysis space. { { { { } } } } } {
  23. 23. Visualization compresses the system into pictures. { { { { } } } } } {
  24. 24. 70% of our sensors are dedicated to vision.
  25. 25. How many groups do you see?
  26. 26. How many groups do you see?
  27. 27. How many groups do you see?
  28. 28. How many groups do you see?
  29. 29. CodeCity Wettel, Lanza, 07 shows where your code lives.
  30. 30. Distribution Map shows how properties spread. Ducasse etal, 06
  31. 31. Polymetric views show up to 5 metrics. Lanza etal, 03 Width metric Height metric Position metrics Color metric
  32. 32. System Complexity shows class hierarchies. attributes methods lines
  33. 33. Class Blueprint shows class internals. Ducasse, Lanza, 05 Initialize Interface Internal Accessor Attribute invocation and access direction
  34. 34. Class Blueprint shows class internals.
  35. 35. Visualization compresses the system into pictures. { { { { } } } } } {
  36. 36. McCabe = 21 NOM 0 = 102 ,00 3 75 = C LO ... Metrics Queries Visualizations { { { { } } } } } {
  37. 37. Duplication detection McCabe = 21 Evolution analysis NOM 0 = 102 ,00 3 Dynamic analysis 75 = C LO ... Semantic analysis Metrics Queries Visualizations { { { { } } } } } {
  38. 38. 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.
  39. 39. CVS hides the past
  40. 40. But, who did this?
  41. 41. We color the files according to the authors.
  42. 42. Still, alphabetical order is no order.
  43. 43. Ownership Map reveals developer patterns. Girba etal, 2005
  44. 44. FAMIX Meta UI Mondrian EyeSee Repository Core
  45. 45. FAMIX Meta UI Mondrian EyeSee Repository Core Java iPlasma MSE Smalltalk C++
  46. 46. Chronia Cook CodeCity DynaMoose Hapax Softwarenaut SmallDude FAMIX Meta UI Mondrian EyeSee Repository Core Java iPlasma MSE Smalltalk C++
  47. 47. CVS J-Wiretap MSE Source Chronia Cook CodeCity DynaMoose Hapax Softwarenaut SmallDude FAMIX Meta UI Mondrian EyeSee Repository Core Java iPlasma MSE Smalltalk C++
  48. 48. 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++
  49. 49. Moose is a collective effort
  50. 50. 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.
  51. 51. 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.
  52. 52. Tudor Gîrba www.tudorgirba.com
  53. 53. Tudor Gîrba www.tudorgirba.com creativecommons.org/licenses/by/3.0/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×