Your SlideShare is downloading. ×
0
LSE


         Helping you
         evolving your
         systems
                   Stéphane Ducasse
                   ...
Roadmap
        •   Some facts
        •   Our approach
            •   Supporting maintenance
            •   Moose an op...
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...
Software development
                        is more than forward engineering.



                                        ...
Maintenance is
                                 is needed to evolve the code.



                                         ...
Roadmap
        •   Some facts
        •   Our approach
            •   Supporting maintenance
            •   Moose an op...
Supporting the evolution of applications
            Our research goal and agenda grounded in reality

            How to ...
Covered topics
                                                                         Analyses


            Topics     ...
Software Metrics
                                                    [LMO99, OOPSLA00]
                                   ...
One Example: who is responsible of what?


                       (4) Visualisation
     (3) Analyses

(2) Modèle


      ...
Moose is a powerful environment
  McCabe = 21

NOM                          0
      = 102                 0
              ...
Metrics compress the system into numbers

                                                                     0
         ...
Queries reduce the analysis space




             {               {
                                     {
              ...
Visualization compresses the system into pictures




                     {               {
                             ...
Roadmap
        •   Some facts
        •   Our approach
            •   Supporting maintenance
            •   Moose an op...
70% of our sensors are dedicated to vision
Polymetric views show up to 5 metrics.
                                      Lanza etal, 03
                      Width me...
System Complexity shows class hierarchies.




                                          attributes


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

Initiali...
Class Blueprint shows class internals.
Developers
        •   More efficient to put people working together in the
            same office?
        •   How can we ...
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




            Mon...
How can we predict changes?
            Common wisdom stresses that what changes yesterday
            will change today, ...
With history analysis we can get the
     climate of a software system
                       Past Late               Futu...
Roadmap
        •   Some facts
        •   Our approach
            •   Supporting maintenance
            •   Moose an op...
Duplication
                                                                                                detection
  Mc...
Moose has been validated on real life systems
     written in different languages
        •   Several large, industrial ca...
Current Team                                Previous Team
Stéphane Ducasse                            Serge Demeyer
Tudor ...
Possible New Research Directions

        •   Remodularization
            •   Clustering analysis
            •   Open an...
Evolution is difficult

        •               We are expert in reengineering
        •               We are interested in...
Upcoming SlideShare
Loading in...5
×

Helping you reengineering your legacy

835

Published on

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

  • Be the first to like this

No Downloads
Views
Total Views
835
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
28
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Transcript of "Helping you reengineering your legacy"

  1. 1. LSE Helping you evolving your systems Stéphane Ducasse stephane.ducasse@inria.fr http://stephane.ducasse.free.fr/ Stéphane Ducasse 1
  2. 2. Roadmap • Some facts • Our approach • Supporting maintenance • Moose an open-platform • Some visual examples • Conclusion LSE S.Ducasse 2
  3. 3. 1946
  4. 4. 1956 2006 ?
  5. 5. Software is complex. 29% Succeeded 18% Failed 53% Challenged The Standish Group, 2004
  6. 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. 7. Software development is more than forward engineering. Fo rw ar d en gin ee rin g { { { { { { } { { Actual development } } } } } } } } {
  8. 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. 9. Roadmap • Some facts • Our approach • Supporting maintenance • Moose an open-platform • Some visual examples • Conclusion LSE S.Ducasse 9
  10. 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. 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. 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. 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. 14. Moose is a powerful environment McCabe = 21 NOM 0 = 102 0 3,0 75 = ... C LO Metrics Queries Visualizations { { { { } } } } } {
  15. 15. Metrics compress the system into numbers 0 Cyclomatic complexity = 21 00 3, 75 NOM = 102 = OC L { { { { } } } } } {
  16. 16. Queries reduce the analysis space { { { { } } } } } {
  17. 17. Visualization compresses the system into pictures { { { { } } } } } {
  18. 18. Roadmap • Some facts • Our approach • Supporting maintenance • Moose an open-platform • Some visual examples • Conclusion LSE S.Ducasse 18
  19. 19. 70% of our sensors are dedicated to vision
  20. 20. Polymetric views show up to 5 metrics. Lanza etal, 03 Width metric Height metric Position metrics Color metric
  21. 21. System Complexity shows class hierarchies. attributes methods lines
  22. 22. Class Blueprint shows class internals. Ducasse, Lanza, 05 Initialize Interface Internal Accessor Attribute invocation and access direction
  23. 23. Class Blueprint shows class internals.
  24. 24. Developers • More efficient to put people working together in the same office? • How can we optimize software development? LSE S.Ducasse 24
  25. 25. Who did that? Files Time LSE S.Ducasse 25
  26. 26. Which author “possesses” which files? LSE S.Ducasse 26
  27. 27. Alphabetical order is no order! LSE S.Ducasse 27
  28. 28. Based on similar commit signature Edit Takeover Monologue Familiarization Dialogue LSE S.Ducasse 28
  29. 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. 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. 31. Roadmap • Some facts • Our approach • Supporting maintenance • Moose an open-platform • Some visual examples • Conclusion LSE S.Ducasse 31
  32. 32. Duplication detection McCabe = 21 Evolution analysis NOM 0 = 102 0 3,0 Dynamic analysis 75 = C LO ... Semantic analysis Metrics Queries Visualizations { { { { } } } } } {
  33. 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. 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. 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. 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
  1. A particular slide catching your eye?

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

×