SlideShare ist ein Scribd-Unternehmen logo
1 von 36
Downloaden Sie, um offline zu lesen
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

Weitere ähnliche Inhalte

Andere mochten auch

OCamlOScope: a New OCaml API Search
OCamlOScope: a New OCaml API SearchOCamlOScope: a New OCaml API Search
OCamlOScope: a New OCaml API SearchJun Furuse
 
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...Anil Madhavapeddy
 
Ducasse's Maintenance Expertise
Ducasse's Maintenance ExpertiseDucasse's Maintenance Expertise
Ducasse's Maintenance ExpertiseSté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 Enterprisedsyme
 
Moving away from legacy code (AgileCymru)
Moving away from legacy code  (AgileCymru)Moving away from legacy code  (AgileCymru)
Moving away from legacy code (AgileCymru)Konstantin Kudryashov
 
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 WindowsAnil Madhavapeddy
 

Andere mochten auch (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?
 

Ähnlich wie LSE Helping Evolve Systems

Problem Detection (EVO 2008)
Problem Detection (EVO 2008)Problem Detection (EVO 2008)
Problem Detection (EVO 2008)Tudor Girba
 
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)Tudor Girba
 
05 Problem Detection
05 Problem Detection05 Problem Detection
05 Problem DetectionJorge Ressia
 
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)Tudor Girba
 
Humane assessment at ICSM 2010
Humane assessment at ICSM 2010Humane assessment at ICSM 2010
Humane assessment at ICSM 2010Tudor Girba
 
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-12Tudor Girba
 
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 Tudor Girba
 
Reverse Engineering (EVO 2008)
Reverse Engineering (EVO 2008)Reverse Engineering (EVO 2008)
Reverse Engineering (EVO 2008)Tudor Girba
 
History Analysis (EVO 2008)
History Analysis (EVO 2008)History Analysis (EVO 2008)
History Analysis (EVO 2008)Tudor Girba
 
Enhancing agile development through software assessment
Enhancing agile development through software assessmentEnhancing agile development through software assessment
Enhancing agile development through software assessmentTudor Girba
 
Software in Pictures 2008-03-12
Software in Pictures 2008-03-12Software in Pictures 2008-03-12
Software in Pictures 2008-03-12Tudor Girba
 
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 2010Tudor Girba
 
What history can tell us
What history can tell usWhat history can tell us
What history can tell usTudor Girba
 
Restructuring (EVO 2008)
Restructuring (EVO 2008)Restructuring (EVO 2008)
Restructuring (EVO 2008)Tudor Girba
 
Reverse Engineering Techniques 2007-11-29
Reverse Engineering Techniques 2007-11-29 Reverse Engineering Techniques 2007-11-29
Reverse Engineering Techniques 2007-11-29 Tudor Girba
 
Migration and Testing (EVO 2008)
Migration and Testing (EVO 2008)Migration and Testing (EVO 2008)
Migration and Testing (EVO 2008)Tudor Girba
 
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)Tudor Girba
 
Moose Tutorial at WCRE 2008
Moose Tutorial at WCRE 2008Moose Tutorial at WCRE 2008
Moose Tutorial at WCRE 2008Tudor Girba
 
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 WorldMichael zur Muehlen
 

Ähnlich wie LSE Helping Evolve Systems (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
 

Kürzlich hochgeladen

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Manik S Magar
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfPrecisely
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteDianaGray10
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsSergiu Bodiu
 

Kürzlich hochgeladen (20)

Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!Anypoint Exchange: It’s Not Just a Repo!
Anypoint Exchange: It’s Not Just a Repo!
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdfHyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
Hyperautomation and AI/ML: A Strategy for Digital Transformation Success.pdf
 
Take control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test SuiteTake control of your SAP testing with UiPath Test Suite
Take control of your SAP testing with UiPath Test Suite
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptxE-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
E-Vehicle_Hacking_by_Parul Sharma_null_owasp.pptx
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platformsDevEX - reference for building teams, processes, and platforms
DevEX - reference for building teams, processes, and platforms
 

LSE Helping Evolve Systems

  • 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