Owf 2013 rii moose speaker 2
-
Upload
patrick-moreau -
Category
Technology
-
view
65 -
download
0
Transcript of Owf 2013 rii moose speaker 2
Software Analysis Platform
Usman Bha)RMod – INRIA Lille
Software MaintenanceSoftware needs to be adapted
Context changes
Customers change
Technology changes
People change
Software maintenance is a sign of success
Software Maintenance
Between 50% and 80% of global effort is spent on
“maintenance” !
80%
20%
Software Maintenance
Between 50% and 80% of global effort is spent on
“maintenance” !
80%
20%
40%
20%40%
Understand Code
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
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
CurrentPractices
tailoredmanual automatic
generic
We spend a lot of money at the wrong placewith the wrong tools!
tailoredmanual automatic
generic
We spend a lot of money at the wrong placewith the wrong tools!
feedback is key
contextualcontinuous
Pla7orm for So;ware Analysis
Open source project since 1996
Several hundred person-‐years of R&D
importers modelsdata analyses
engines
In a Nutshell
Java C / C++ Smalltalk .NET
NavigaTon in the Model
JBoss Developer activity
Test coverage
13
Query-‐based VisualizaTons
Tools Compact Better Focus
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 ].
Is this all useful?
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
Modeling of Eclipse Plugins
Contextual Visualization of Plugins
Layer and plugin dependencies
Colors to distinguish dependency types
Custom RulesRule followers and breakers
green: followersorange: break < 5 rules
Red: break > 5 rules
Dedicated Tools for So;ware Analysis
Synectique
• Software business intelligence
• Tailored solution to specific needs
• Legacy languages
Data Model
CreateAnalysis
Act
Analyze
Analysis should allow concrete actions
Data Model
CreateAnalysis
Act
Dedicated Tools
Analyze
Analysis should allow concrete actions
Code Model Dashboard
IDE
Duplication
Code Model
Dedicated Tools
Dashboard
IDE
Duplication
DashboardFrequency of Dead functions
Number of Dead Functions in Module
Num
ber o
f Mod
ule
Overall System view
Interactions
Modules
Properties and Metrics
Calls
Visualization
Code Duplication
Bug Maps
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, ...
Synectique offers
- Dedicated software analysis for effective/efficient decision making
- Software Business Intelligence for successful/reliable management of Software systems
http://www.synectique.eu