Your SlideShare is downloading. ×
0
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Moose Overview
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

×
Saving this for later? Get the SlideShare app to save on your phone or tablet. Read anywhere, anytime – even offline.
Text the download link to your phone
Standard text messaging rates apply

Moose Overview

4,082

Published on

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

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

Report content
Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
No notes for slide

Transcript

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

×