Owf 2013 rii moose speaker 2

36
Software Analysis Platform Usman Bha) RMod – INRIA Lille

Transcript of Owf 2013 rii moose speaker 2

Page 1: Owf 2013 rii moose speaker 2

Software Analysis Platform

Usman  Bha)RMod  –  INRIA  Lille

Page 2: Owf 2013 rii moose speaker 2

Software MaintenanceSoftware needs to be adapted

Context changes

Customers change

Technology changes

People change

Software maintenance is a sign of success

Page 3: Owf 2013 rii moose speaker 2

Software Maintenance

Between 50% and 80% of global effort is spent on

“maintenance” !

80%

20%

Page 4: Owf 2013 rii moose speaker 2

Software Maintenance

Between 50% and 80% of global effort is spent on

“maintenance” !

80%

20%

40%

20%40%

Understand Code

Page 5: Owf 2013 rii moose speaker 2

Software Maintenance

Between 50% and 80% of global effort is spent on

“maintenance” !

80%

20%

40%

20%40%

50% of maintenance is spent reading code!

Understand Code

Page 6: Owf 2013 rii moose speaker 2

Software Maintenance

Between 50% and 80% of global effort is spent on

“maintenance” !

80%

20%

40%

20%40%

50% of maintenance is spent reading code!

Understand Code

Page 7: Owf 2013 rii moose speaker 2

CurrentPractices

Page 8: Owf 2013 rii moose speaker 2

tailoredmanual automatic

generic

We spend a lot of money at the wrong placewith the wrong tools!

Page 9: Owf 2013 rii moose speaker 2

tailoredmanual automatic

generic

We spend a lot of money at the wrong placewith the wrong tools!

Page 10: Owf 2013 rii moose speaker 2

feedback is key

contextualcontinuous

Page 11: Owf 2013 rii moose speaker 2

Pla7orm  for  So;ware  Analysis

Open  source  project  since  1996

Several  hundred  person-­‐years  of  R&D

Page 12: Owf 2013 rii moose speaker 2

importers modelsdata analyses

engines

In a Nutshell

Page 13: Owf 2013 rii moose speaker 2

Java C  /  C++ Smalltalk .NET

Page 14: Owf 2013 rii moose speaker 2

NavigaTon  in  the  Model

Page 15: Owf 2013 rii moose speaker 2

JBoss Developer activity

Page 16: Owf 2013 rii moose speaker 2

Test coverage

Page 17: Owf 2013 rii moose speaker 2

13

Query-­‐based  VisualizaTons

Page 18: Owf 2013 rii moose speaker 2

Tools Compact Better Focus

Page 19: Owf 2013 rii moose speaker 2

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 ].

Page 20: Owf 2013 rii moose speaker 2

Is  this  all  useful?

Page 21: Owf 2013 rii moose speaker 2

Case Study - Papyrus UML

• Problem: Understand dependencies introduced by developers of Papyrus UML

• 29  layers,  404  plugins,  10421  total  plugin  dependencies

• Dependencies  between  layers  and  plugins

• And  disTnguish  types  of  dependencies  -­‐>  Export,  Direct,  Implicit

Page 22: Owf 2013 rii moose speaker 2

Modeling of Eclipse Plugins

Page 23: Owf 2013 rii moose speaker 2

Contextual Visualization of Plugins

Layer and plugin dependencies

Colors to distinguish dependency types

Page 24: Owf 2013 rii moose speaker 2

Custom RulesRule followers and breakers

green: followersorange: break < 5 rules

Red: break > 5 rules

Page 25: Owf 2013 rii moose speaker 2

Dedicated  Tools  for  So;ware  Analysis

Page 26: Owf 2013 rii moose speaker 2

Synectique

• Software business intelligence

• Tailored solution to specific needs

• Legacy languages

Page 27: Owf 2013 rii moose speaker 2

Data Model

CreateAnalysis

Act

Analyze

Analysis should allow concrete actions

Page 28: Owf 2013 rii moose speaker 2

Data Model

CreateAnalysis

Act

Dedicated Tools

Analyze

Analysis should allow concrete actions

Page 29: Owf 2013 rii moose speaker 2

Code Model Dashboard

IDE

Duplication

Page 30: Owf 2013 rii moose speaker 2

Code Model

Dedicated Tools

Dashboard

IDE

Duplication

Page 31: Owf 2013 rii moose speaker 2

DashboardFrequency of Dead functions

Number of Dead Functions in Module

Num

ber o

f Mod

ule

Overall System view

Page 32: Owf 2013 rii moose speaker 2

Interactions

Modules

Properties and Metrics

Calls

Visualization

Page 33: Owf 2013 rii moose speaker 2

Code Duplication

Page 34: Owf 2013 rii moose speaker 2

Bug Maps

Page 35: Owf 2013 rii moose speaker 2

Tools and Services

- Modularization and impact analysis,- Architecture Extraction and Compliance,- Software Metrics and Quality models,- Maps and Visualizations of program artefacts,- Custom rules checking and Live report,- Trends Analysis, Evolution Analysis

- Languages: Java, C#, Cobol, 4D, ABAP, ...

Page 36: Owf 2013 rii moose speaker 2

Synectique offers

- Dedicated software analysis for effective/efficient decision making

- Software Business Intelligence for successful/reliable management of Software systems 

http://www.synectique.eu