Your SlideShare is downloading. ×
0
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
2014 01-ticosa
Upcoming SlideShare
Loading in...5
×

Thanks for flagging this SlideShare!

Oops! An error has occurred.

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

2014 01-ticosa

401

Published on

A presentation about reengineering tools for the TICOSA conference

A presentation about reengineering tools for the TICOSA conference

Published in: Education, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
401
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
3
Comments
0
Likes
1
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. Dedicated tools and research for Software Business intelligence @ Tisoca 2014 Dr. S. Ducasse rmod.lille.inria.fr stephane.ducasse.free.fr 1
  • 2. stephane.ducasse.free.fr • Leader of RMOD Inria team • Co-founder of http://www.synectique.eu • • • • Co-creator of Moose http://www.moosetechnology.org Leader of http://www.pharo.org Coder and object-designer Traits co-father
  • 3. Software is Complex
  • 4. Software is a living entity... •Early decisions were certainly good at that time •But the context changes •Customers change •Technology changes •People change
  • 5. Maintenance = Success!!
  • 6. We only maintain useful successful software
  • 7. Maintenance is continuous Development 4% Other 20% 80% 18% Adaptive (new platforms or OS) Between 50% and 90% of global effort is spent on “maintenance” ! 4% 18% 18% 60% 18% Corrective (fixing reported errors) 60% Perfective (new functionality) “Maintenance”
  • 8. 50% of development time is lost trying to understand code ! 20% 20% 80% Between 50% and 80% of the overall cost is spent in the evolution 40% 40% We lose a lot of time with inappropriate and ineffective practices
  • 9. We need dedicated tools!
  • 10. Pragmatic researchers in action
  • 11. Dedicated tools tailored to your problems Profitable in terms of cost http://www.synectique.eu
  • 12. RMOD RMoD: code analysis, metamodeling, software metrics, program understanding, program visualization, evolution analysis, refactorings, legacy code, quality, ... Current focus Remodularization analyses Reverse Engineering Quality models (PSA-Airfrance) Towards semantic merge Old and odd language analyses Representation Rule and bug assessment Collaborations Soft-VUB (Belgium), Pleiad (Chile) UFMG (Brazil), SCG (Swiss), LIRMM Analyses Transformations Evolution 13
  • 13. Understanding Large Systems Static/Dynamic Information Feature Analysis Class Understanding Reverse Package Blueprints Engineering Distribution Maps Analyses Representation Software Metrics Quality Models Duplicated Code Identification Test Generation Cycle and Layer Identification Merging technics Rules assessment Transformations Evolution Language Independent Meta Model (FAMIX) An Extensible Reengineering Environment S.Ducasse Language Independent Refactorings Reengineering Patterns Version Analyses HISMO metamodel 14 LSE
  • 14. Java C  /  C++ Smalltalk .NET
  • 15. ols d To cate edi D Data Develop Analysis Model Analysis Take decision “an analysis should lead to a decision”
  • 16. Example : Who is behind package X ? (4) Visualisation (3) Analyses (2) Modèle (1) Extraction
  • 17. Step 1 - Model Creation/Import (4) Visualisation (3) Analyses (2) Modèle (1) Extraction Definition of a model to represent entities Data Extraction (CVS...)
  • 18. Step 2 - Analyses (4) Visualisation (3) Analyses (2) Modèle (1) Extraction Who wrote how many lines of code?
  • 19. Step : 3 - Creating the Map
  • 20. JBoss at a glance Interactive tool Data in perspective (4) Visualisation (3) Analyses (2) Modèle (1) Extraction
  • 21. data importers models engines m o o se techno l ogy.org analyses
  • 22. Naviga3on  in  the  Model
  • 23. Queries  reduce  the  analysis   Query
  • 24. So@ware  Metrics
  • 25. Metrics  in  Moose
  • 26. Metrics Dashboard
  • 27. Evolution Dashboard
  • 28. Evolution Matrix
  • 29. Moose  Meta-­‐Model To  represent  program   informa3on Java Smalltalk C/C++ .NET ...
  • 30. Custom rules can be captured and checked daily for you.
  • 31. Dedicated Analysis reports with Moose provide pertinent analysis for software elements
  • 32. Reports can integrated into software process: Automated, continuous reports with integration servers
  • 33. Custom Rules Rule followers and breakers green: followers orange: break < 2 rules Red: break > 2 rules
  • 34. Tudor Gîrba
  • 35. Tools  Design  With  Moose
  • 36. Modeling of Eclipse Plugins
  • 37. Contextual Visualization of Plugins Core: Blue Uml: Red
  • 38. Visualization of Plugins & Dependencies All incoming dependencies for a package in green
  • 39. Analysis of bugs
  • 40. Dedicated Analyses ...
  • 41. Dedicated Tools Rich Compact Best Focus
  • 42. b := GLMTabulator new. b column: #namespaces; column: #classes; column: #methods. b transmit to: #namespaces; andShow: [:a | a tree display: [ :model | model allNamespaces select: #isRoot ]; children: #childScopes; format: #name ]. b transmit to: #classes; from: #namespaces; andShow: [:a | a list display: #classes; format: #name ]. b transmit to: #methods; from: #classes; andShow: [:a | a list display: #methods; format: #signature ]. b transmit toOutsidePort: #class; from: #classes. b transmit to: #methods; from: #methods. B := GLMTabulator new. B title: 'Code Browser'. B row: #nav; row: #details. B transmit to: #nav; andShow: [:a | a custom: b ]. B transmit to: #details; from: #nav port: #class; andShow: [:a | a text display: #sourceText ]. B transmit to: #details; from: #nav port: #method; andShow: [:a | a text display: #sourceText ].
  • 43. One picture is worth one thousand words Which one? How could it be that simple? 50
  • 44. Program visualization is difficult Limited number of colors: 12 Blur and color emergence Limited screen size Limited context, edges crossing Limited short-term memory (three to nine) Difficult to remember too many symbols/semantics Culture, Colorblind 51
  • 45. Our constraints Lot of existing and advanced solutions ICPC is full of them HEB Plenty of works on information visualization Simple but not simplistic Ideally, solutions that an engineer could reproduce in a couple of days 52
  • 46. Understanding large systems • • • • Understanding code is difficult! Systems are large Code is abstract Should I really convinced you? • Some existing approaches -Metrics: you often get meaningless results once combined -Visualization: often beautiful but with little meaning • Polymetric view is an idea of M. Lanza [WCRE,TSE]
  • 47. System  Complexity Class  Blueprint Classes  and  their  hierarchy Height  =  NOM Width  =  NOA Color  =  LOC Outer  Rectangles  =  Classes  Inner  =  methods/aVributes Demonstrates  class  layers  and   class  interac3ons Chronia X-­‐axis  =  3me Y-­‐axis  =  files Colors  =  authors Distribu2on  Map Rectangles  =  A  reference  Par33on (Example:  Packages) Color  =  Some  property (words) Code  City Districts  =  Packages Towers  =  Classes Tower  Height  =  NOM Tower  width  =  NOA Trace  Signal Lines  =  execu3on  of  methods
  • 48. System Complexity shows class hierarchies. attributes methods lines
  • 49. Polymetric views condense information To get a feel of the inheritance semantics: adding vs. reusing Classes+Inheritance W: # of Added Methods H: # of Overridden Methods C: # of Method Extended methods LOC # statements # parameters S.Ducasse 56 LSE
  • 50. Understanding Classes: Easier? • Public and non public methods • No predefined reading order • Inheritance • Class blueprint is an idea of M. Lanza [OOPSLA]
  • 51. Understanding Changes
  • 52. Introducing a feature Introduced PopupChoice / RequestDialog 59
  • 53. How to understand changes • Torch is the work of V. Uquillas-Gomez
  • 54. Package Structure
  • 55. Removing a feature (I) Removed Pen and PenPointRecorder 64
  • 56. Editing comments
  • 57. Lessons learned • Program visualization is difficult • Squares and little symbols are just squares and little symbols • Glancing at code is still efficient
  • 58. Omnipresent code + visualization is excellent
  • 59. Dedicated tools tailored to your problems Profitable in terms of cost http://www.synectique.eu
  • 60. Inven3ve  Toolkit •  Multi-language •  Meta-tool: An environment to build tools •  Any kind of data: logs, authors, bugs, …
  • 61. Example of dedicated tools http://www.synectique.eu
  • 62. Analysis and Migration Support Problem: Since 30 years company X develops insurance solution. The old compiler costs more and more. Which part to migrate first? How to reduce the migration cost (duplicated code, screen numbers)? How to control the migration? Solution : Build a specific analysis tools (2 cycles of 6 weeks) Domain and problem analysis Engineer formation
  • 63. Reverse engineering and support new generation Problem: Since 15 years company X develops missile shooting systems. The most of original team left. Other foreign code to maintain. Understanding current message driven architecture. Extracting domain model Mapping concepts back to code. Supporting testing components Solution : Domain and problem analysis Build a specific analysis tools (3-4 months) Engineer formation
  • 64. Decision Making Support Problem: Since 20 years company X develops insurance solution. The old compiler costs more and more. Which part depends on which other one? Duplicated code? Dead code? Solution : Domain and problem analysis Build a specific analysis tools (2 cycles of 6 weeks) Engineer formation
  • 65. : #isGod ses select clas 00 ,0 53 7 McCabe = 21 C = LO ... Inventive Toolkit /59
  • 66. Multi levels Dashboard Code   analyzer Impact  analyzer /59 Duplica3on   inspector
  • 67. Dashboard • Metrics: o Method projets o Forms o Tables • Quality • Debt • Reports /59
  • 68. Code Analyzer /59 • Code Browser • Dependencies • Filters
  • 69. Duplication Inspector • Duplication detector • Customizable /59
  • 70. Impact Analyzer • Global dependencies • Interactif • Cyclic dependencies  /59
  • 71. Rule Checker /59 Automated rule checking Specific client driven rules
  • 72. http://stephane.ducasse.free.fr http://www.synectique.eu
  • 73. Interested by your problems - Migration support - Decision making support - Extraction and definition of rules - Software architecture Verification - Visualizations - Cost prediction - Impact change - Service-oriented architecture - Software analysis

×