Helping you reengineering your legacy

  • 780 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
780
On Slideshare
0
From Embeds
0
Number of Embeds
1

Actions

Shares
Downloads
27
Comments
0
Likes
0

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. 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
  • 3. 1946
  • 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