SlideShare une entreprise Scribd logo
1  sur  36
Télécharger pour lire hors ligne
LSE


         Helping you
         evolving your
         systems
                   Stéphane Ducasse
                   stephane.ducasse@inria.fr
                   http://stephane.ducasse.free.fr/



Stéphane Ducasse                                        1
Roadmap
        •   Some facts
        •   Our approach
            •   Supporting maintenance
            •   Moose an open-platform
        •   Some visual examples
        •   Conclusion




                                             LSE
S.Ducasse                                2
1946
1956   2006




       ?
Software is complex.



   29% Succeeded

      18% Failed



   53% Challenged



 The Standish Group, 2004
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
        }                                                                                             }               }
        }
            }               }                                                                             }               }
                    {
Maintenance is
                                 is needed to evolve the code.



                                                                                  Fo
                                                                                       rw
                                                              ing                           ar
                                                            r
                                                       ee                                        d
                                                                                                     en
                                                 gin                                                      gin
                                            en                                                                  ee
                                        e
                                     rs                                                                              rin
                                ve                                                                                         g
                        Re

{               {                                                                                                              {               {
                        {
    {
                            }                                                                                                      {               {
                                                                    Actual development
        }                                                                                                                              }               }
        }
            }               }                                                                                                              }               }
                    {
Roadmap
        •   Some facts
        •   Our approach
            •   Supporting maintenance
            •   Moose an open-platform
        •   Some visual examples
        •   Conclusion




                                             LSE
S.Ducasse                                9
Supporting the evolution of applications
            Our research goal and agenda grounded in reality

            How to help companies maintaining their large
            software?
            What is the xray for software?
              code, people, practices
            Which analyses?
            How can you monitor your system (dashboards....)
            How to present extracted information?




S.Ducasse                               10
Covered topics
                                                                         Analyses


            Topics                                        Reverse
                                                          Engineering

              Metamodeling, Software metrics,
              Program understanding,                    Representation               Transformations

              Visualization, Evolution analysis,
              Duplicated code detection,                                 Evolution

              Code Analysis, Refactorings,
              Tests
            Contributions
              Moose: an open-source extensible reengineering
              environment: (Lugano, Bern, Annecy, Anvers, Louvain la
              neuve, ULB, UTSL)
            Contacts
              Harman-Becker (3 Millions C++), Bedag (Cobol), Nokia,
              ABB, IMEC

S.Ducasse                                          11
Software Metrics
                                                    [LMO99, OOPSLA00]
                                                 Duplicated Code Identification
Understanding Large Systems                         [ICSM99, ICSM02]
                                                 Group Identification
   [WCRE99, TSI00, TSE03]
Static/Dynamic Information                          [ASE03]
                                                 Test Generation
   [ICSM99]
Feature Analysis                                    [CSMR 06]
                                                 Concept Identification
    [JSME 06]
                                         Analyses [WCRE 06]
Class Understanding
   [OOPSLA01,TSE04]
Package Blueprints      Reverse
   [ICSM 07]
                        Engineering
Distribution Maps
   [ICSM 06]

                     Representation                   Transformations
                                                                 Language Independent
                                                                 Refactorings
                                                                    [IWPSE 00]
                                          Evolution
 Language Independent Meta
 Model (FAMIX)                        Reengineering Patterns
    [UML99]                           Version Analyses
 An Extensible Reengineering             [ICSM 05]
 Environment (Moose)                  HISMO metamodel
    [Models 06]                          [JSME 05]


                                                                                   LSE
S.Ducasse                                    12
One Example: who is responsible of what?


                       (4) Visualisation
     (3) Analyses

(2) Modèle


               (1) Extraction




                                           Distribution Map of authors
                                           on JBoss
 S.Ducasse                                  13
Moose is a powerful environment
  McCabe = 21

NOM                          0
      = 102                 0
                        3,0
                      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




                     {               {
                                             {
                         {
                                                 }
                             }
                             }
                                 }               }
                                         {
Roadmap
        •   Some facts
        •   Our approach
            •   Supporting maintenance
            •   Moose an open-platform
        •   Some visual examples
        •   Conclusion




                                              LSE
S.Ducasse                                18
70% of our sensors are dedicated to vision
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.
Developers
        •   More efficient to put people working together in the
            same office?
        •   How can we optimize software development?




                                                                  LSE
S.Ducasse                             24
Who did that?




Files




               Time

                           LSE
S.Ducasse             25
Which author “possesses” which files?




                                        LSE
S.Ducasse              26
Alphabetical order is no order!




                                       LSE
S.Ducasse               27
Based on similar commit signature


                                               Edit       Takeover




            Monologue   Familiarization        Dialogue

                                                                     LSE
S.Ducasse                                 28
How can we predict changes?
            Common wisdom stresses that what changes yesterday
            will change today, but it is true?


            In the Sahara the weather is constant,
            tomorrow: 90% chance that it is the same as today



            In Belgium, the weather is changing really fast (sea
            influence), 30% chance that it is the same as today


                                                                   LSE
S.Ducasse                            29
With history analysis we can get the
     climate of a software system
                       Past Late               Future Early
                       Changers                  Changers



                                                                     1, TopLENOM1..i (S, t1) ∩
                                                                        TopEENOMi..n (S, t2) ≠ ∅
                                                          YWi(S) =
                                                                     0, TopLENOM1..i (S, t1) ∩
                                                                        TopEENOMi..n (S, t2) = ∅


                                                                           ∑ YWi(S, t1, t2)
                                                         YW(S, t1, t2) =
                               Past   Present Future                            n-2
                       hit
                             versions version versions




                                                                                              LSE
S.Ducasse                    30
Roadmap
        •   Some facts
        •   Our approach
            •   Supporting maintenance
            •   Moose an open-platform
        •   Some visual examples
        •   Conclusion




                                              LSE
S.Ducasse                                31
Duplication
                                                                                                detection
  McCabe = 21
                                                                                            Evolution analysis
NOM                          0
      = 102                 0
                        3,0
                                                                                            Dynamic analysis
                      75
                  =
              C
         LO


                                                                                                  ...
                                                                                            Semantic analysis
  Metrics                        Queries                                   Visualizations




                                           {               {
                                                                   {
                                               {
                                                                       }
                                                   }
                                                   }
                                                       }               }
                                                               {
Moose has been validated on real life systems
     written in different languages
        •   Several large, industrial case studies (NDA)
            •   Harman-Becker
            •   Nokia
            •   Daimler
            •   Siemens
        •   Different implementation languages (C++, Java,
            Smalltalk, Cobol)
        •   Different sizes




                                                             LSE
S.Ducasse                               33
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.
Possible New Research Directions

        •   Remodularization
            •   Clustering analysis
            •   Open and Modular modules
        •   SOA - Service Identification
        •   Architecture Extraction/Validation
        •   Software Quality
        •   Cost prediction
        •   EJB Analysis
        •   Business rules extraction
        •   Model transformation




                                                 LSE
S.Ducasse                              35
Evolution is difficult

        •               We are expert in reengineering
        •               We are interested in your problems!
        •               Moose is open-source, you can use it, extend it, change
                        it
        •               We can collaborate!


            {               {
                                    {
                {
                                        }
                    }
                    }
                        }               }
                                {




                                                           NOM > 10 &
                                                           LOC > 100

                                                                                  LSE
S.Ducasse                                          36

Contenu connexe

En vedette

Ducasse's Maintenance Expertise
Ducasse's Maintenance ExpertiseDucasse's Maintenance Expertise
Ducasse's Maintenance Expertise
Stéphane Ducasse
 
SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: Th...
SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: Th...SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: Th...
SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: Th...
Stéphane Ducasse
 
Succeeding with Functional-first Programming in Enterprise
Succeeding with Functional-first Programming in EnterpriseSucceeding with Functional-first Programming in Enterprise
Succeeding with Functional-first Programming in Enterprise
dsyme
 

En vedette (9)

OCamlOScope: a New OCaml API Search
OCamlOScope: a New OCaml API SearchOCamlOScope: a New OCaml API Search
OCamlOScope: a New OCaml API Search
 
Using functional programming within an industrial product group: perspectives...
Using functional programming within an industrial product group: perspectives...Using functional programming within an industrial product group: perspectives...
Using functional programming within an industrial product group: perspectives...
 
Having fun with Stéphane
Having fun with StéphaneHaving fun with Stéphane
Having fun with Stéphane
 
Ducasse's Maintenance Expertise
Ducasse's Maintenance ExpertiseDucasse's Maintenance Expertise
Ducasse's Maintenance Expertise
 
SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: Th...
SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: Th...SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: Th...
SLE/GPCE Keynote: What's the value of an end user? Platforms and Research: Th...
 
Succeeding with Functional-first Programming in Enterprise
Succeeding with Functional-first Programming in EnterpriseSucceeding with Functional-first Programming in Enterprise
Succeeding with Functional-first Programming in Enterprise
 
Moving away from legacy code (AgileCymru)
Moving away from legacy code  (AgileCymru)Moving away from legacy code  (AgileCymru)
Moving away from legacy code (AgileCymru)
 
Advanced Docker Developer Workflows on MacOS X and Windows
Advanced Docker Developer Workflows on MacOS X and WindowsAdvanced Docker Developer Workflows on MacOS X and Windows
Advanced Docker Developer Workflows on MacOS X and Windows
 
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job? Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
Succession “Losers”: What Happens to Executives Passed Over for the CEO Job?
 

Similaire à Helping you reengineering your legacy

05 Problem Detection
05 Problem Detection05 Problem Detection
05 Problem Detection
Jorge Ressia
 

Similaire à Helping you reengineering your legacy (20)

Problem Detection (EVO 2008)
Problem Detection (EVO 2008)Problem Detection (EVO 2008)
Problem Detection (EVO 2008)
 
Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)
Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)
Pragmatic Design Quality Assessment - (Tutorial at ICSE 2008)
 
05 Problem Detection
05 Problem Detection05 Problem Detection
05 Problem Detection
 
Software understanding in the large (EVO 2008)
Software understanding in the large (EVO 2008)Software understanding in the large (EVO 2008)
Software understanding in the large (EVO 2008)
 
Humane assessment at ICSM 2010
Humane assessment at ICSM 2010Humane assessment at ICSM 2010
Humane assessment at ICSM 2010
 
Modeling History to Understand Software Evolution with Hismo 2008-03-12
Modeling History to Understand Software Evolution with Hismo 2008-03-12Modeling History to Understand Software Evolution with Hismo 2008-03-12
Modeling History to Understand Software Evolution with Hismo 2008-03-12
 
Modeling History to Understand Software Evolution With Hismo 2008-02-25
Modeling History to Understand Software Evolution With Hismo 2008-02-25 Modeling History to Understand Software Evolution With Hismo 2008-02-25
Modeling History to Understand Software Evolution With Hismo 2008-02-25
 
Reverse Engineering (EVO 2008)
Reverse Engineering (EVO 2008)Reverse Engineering (EVO 2008)
Reverse Engineering (EVO 2008)
 
History Analysis (EVO 2008)
History Analysis (EVO 2008)History Analysis (EVO 2008)
History Analysis (EVO 2008)
 
Enhancing agile development through software assessment
Enhancing agile development through software assessmentEnhancing agile development through software assessment
Enhancing agile development through software assessment
 
Software in Pictures 2008-03-12
Software in Pictures 2008-03-12Software in Pictures 2008-03-12
Software in Pictures 2008-03-12
 
Humane assessment with Moose at Benevol 2010
Humane assessment with Moose at Benevol 2010Humane assessment with Moose at Benevol 2010
Humane assessment with Moose at Benevol 2010
 
What history can tell us
What history can tell usWhat history can tell us
What history can tell us
 
Software Evolution
Software EvolutionSoftware Evolution
Software Evolution
 
Restructuring (EVO 2008)
Restructuring (EVO 2008)Restructuring (EVO 2008)
Restructuring (EVO 2008)
 
Reverse Engineering Techniques 2007-11-29
Reverse Engineering Techniques 2007-11-29 Reverse Engineering Techniques 2007-11-29
Reverse Engineering Techniques 2007-11-29
 
Migration and Testing (EVO 2008)
Migration and Testing (EVO 2008)Migration and Testing (EVO 2008)
Migration and Testing (EVO 2008)
 
The humane software assessment (Choose Forum 2009)
The humane software assessment (Choose Forum 2009)The humane software assessment (Choose Forum 2009)
The humane software assessment (Choose Forum 2009)
 
Moose Tutorial at WCRE 2008
Moose Tutorial at WCRE 2008Moose Tutorial at WCRE 2008
Moose Tutorial at WCRE 2008
 
BPD Keynote: Design is How We Change the World
BPD Keynote: Design is How We Change the WorldBPD Keynote: Design is How We Change the World
BPD Keynote: Design is How We Change the World
 

Dernier

Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
WSO2
 

Dernier (20)

DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 AmsterdamDEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
DEV meet-up UiPath Document Understanding May 7 2024 Amsterdam
 
Architecting Cloud Native Applications
Architecting Cloud Native ApplicationsArchitecting Cloud Native Applications
Architecting Cloud Native Applications
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
Navigating the Deluge_ Dubai Floods and the Resilience of Dubai International...
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)Introduction to Multilingual Retrieval Augmented Generation (RAG)
Introduction to Multilingual Retrieval Augmented Generation (RAG)
 
FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
Vector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptxVector Search -An Introduction in Oracle Database 23ai.pptx
Vector Search -An Introduction in Oracle Database 23ai.pptx
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Corporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptxCorporate and higher education May webinar.pptx
Corporate and higher education May webinar.pptx
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
MS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectorsMS Copilot expands with MS Graph connectors
MS Copilot expands with MS Graph connectors
 
Strategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a FresherStrategies for Landing an Oracle DBA Job as a Fresher
Strategies for Landing an Oracle DBA Job as a Fresher
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
Exploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with MilvusExploring Multimodal Embeddings with Milvus
Exploring Multimodal Embeddings with Milvus
 

Helping you reengineering your legacy

  • 1. LSE Helping you evolving your systems Stéphane Ducasse stephane.ducasse@inria.fr http://stephane.ducasse.free.fr/ Stéphane Ducasse 1
  • 2. Roadmap • Some facts • Our approach • Supporting maintenance • Moose an open-platform • Some visual examples • Conclusion LSE S.Ducasse 2
  • 4. 1956 2006 ?
  • 5. Software is complex. 29% Succeeded 18% Failed 53% Challenged The Standish Group, 2004
  • 6. 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
  • 7. Software development is more than forward engineering. Fo rw ar d en gin ee rin g { { { { { { } { { Actual development } } } } } } } } {
  • 8. Maintenance is is needed to evolve the code. Fo rw ing ar r ee d en gin gin en ee e rs rin ve g Re { { { { { { } { { Actual development } } } } } } } } {
  • 9. Roadmap • Some facts • Our approach • Supporting maintenance • Moose an open-platform • Some visual examples • Conclusion LSE S.Ducasse 9
  • 10. Supporting the evolution of applications Our research goal and agenda grounded in reality How to help companies maintaining their large software? What is the xray for software? code, people, practices Which analyses? How can you monitor your system (dashboards....) How to present extracted information? S.Ducasse 10
  • 11. Covered topics Analyses Topics Reverse Engineering Metamodeling, Software metrics, Program understanding, Representation Transformations Visualization, Evolution analysis, Duplicated code detection, Evolution Code Analysis, Refactorings, Tests Contributions Moose: an open-source extensible reengineering environment: (Lugano, Bern, Annecy, Anvers, Louvain la neuve, ULB, UTSL) Contacts Harman-Becker (3 Millions C++), Bedag (Cobol), Nokia, ABB, IMEC S.Ducasse 11
  • 12. Software Metrics [LMO99, OOPSLA00] Duplicated Code Identification Understanding Large Systems [ICSM99, ICSM02] Group Identification [WCRE99, TSI00, TSE03] Static/Dynamic Information [ASE03] Test Generation [ICSM99] Feature Analysis [CSMR 06] Concept Identification [JSME 06] Analyses [WCRE 06] Class Understanding [OOPSLA01,TSE04] Package Blueprints Reverse [ICSM 07] Engineering Distribution Maps [ICSM 06] Representation Transformations Language Independent Refactorings [IWPSE 00] Evolution Language Independent Meta Model (FAMIX) Reengineering Patterns [UML99] Version Analyses An Extensible Reengineering [ICSM 05] Environment (Moose) HISMO metamodel [Models 06] [JSME 05] LSE S.Ducasse 12
  • 13. One Example: who is responsible of what? (4) Visualisation (3) Analyses (2) Modèle (1) Extraction Distribution Map of authors on JBoss S.Ducasse 13
  • 14. Moose is a powerful environment McCabe = 21 NOM 0 = 102 0 3,0 75 = ... C LO Metrics Queries Visualizations { { { { } } } } } {
  • 15. Metrics compress the system into numbers 0 Cyclomatic complexity = 21 00 3, 75 NOM = 102 = OC L { { { { } } } } } {
  • 16. Queries reduce the analysis space { { { { } } } } } {
  • 17. Visualization compresses the system into pictures { { { { } } } } } {
  • 18. Roadmap • Some facts • Our approach • Supporting maintenance • Moose an open-platform • Some visual examples • Conclusion LSE S.Ducasse 18
  • 19. 70% of our sensors are dedicated to vision
  • 20. Polymetric views show up to 5 metrics. Lanza etal, 03 Width metric Height metric Position metrics Color metric
  • 21. System Complexity shows class hierarchies. attributes methods lines
  • 22. Class Blueprint shows class internals. Ducasse, Lanza, 05 Initialize Interface Internal Accessor Attribute invocation and access direction
  • 23. Class Blueprint shows class internals.
  • 24. Developers • More efficient to put people working together in the same office? • How can we optimize software development? LSE S.Ducasse 24
  • 25. Who did that? Files Time LSE S.Ducasse 25
  • 26. Which author “possesses” which files? LSE S.Ducasse 26
  • 27. Alphabetical order is no order! LSE S.Ducasse 27
  • 28. Based on similar commit signature Edit Takeover Monologue Familiarization Dialogue LSE S.Ducasse 28
  • 29. How can we predict changes? Common wisdom stresses that what changes yesterday will change today, but it is true? In the Sahara the weather is constant, tomorrow: 90% chance that it is the same as today In Belgium, the weather is changing really fast (sea influence), 30% chance that it is the same as today LSE S.Ducasse 29
  • 30. With history analysis we can get the climate of a software system Past Late Future Early Changers Changers 1, TopLENOM1..i (S, t1) ∩ TopEENOMi..n (S, t2) ≠ ∅ YWi(S) = 0, TopLENOM1..i (S, t1) ∩ TopEENOMi..n (S, t2) = ∅ ∑ YWi(S, t1, t2) YW(S, t1, t2) = Past Present Future n-2 hit versions version versions LSE S.Ducasse 30
  • 31. Roadmap • Some facts • Our approach • Supporting maintenance • Moose an open-platform • Some visual examples • Conclusion LSE S.Ducasse 31
  • 32. Duplication detection McCabe = 21 Evolution analysis NOM 0 = 102 0 3,0 Dynamic analysis 75 = C LO ... Semantic analysis Metrics Queries Visualizations { { { { } } } } } {
  • 33. Moose has been validated on real life systems written in different languages • Several large, industrial case studies (NDA) • Harman-Becker • Nokia • Daimler • Siemens • Different implementation languages (C++, Java, Smalltalk, Cobol) • Different sizes LSE S.Ducasse 33
  • 34. 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.
  • 35. Possible New Research Directions • Remodularization • Clustering analysis • Open and Modular modules • SOA - Service Identification • Architecture Extraction/Validation • Software Quality • Cost prediction • EJB Analysis • Business rules extraction • Model transformation LSE S.Ducasse 35
  • 36. Evolution is difficult • We are expert in reengineering • We are interested in your problems! • Moose is open-source, you can use it, extend it, change it • We can collaborate! { { { { } } } } } { NOM > 10 & LOC > 100 LSE S.Ducasse 36