Moose Overview

4,473 views
4,366 views

Published on

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

No Downloads
Views
Total views
4,473
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/

×