20120612 07 - Portail qualimétrie mis en oeuvre chez Schneider Squoring
1. Software Qualimetry at Schneider
Electric using SQuORE
Hervé Dondey
Schneider Electric
Strategy & Innovation
2. Make the most of your
energy™
Schneider Electric at a glance
3. Schneider Electric – Strategy & Innovation – H. Dondey 2012 3
1999
Groupe Schneider becomes
Schneider Electric,
focused on Power & Control
1975
Merlin Gerin joins
Groupe Schneider
1988
Telemecanique joins
Groupe Schneider
1991
Square D joins
Groupe Schneider
1996
Modicon, historic leader in
Automation, becomes a
Schneider brand
2007
Acquisition of
APC corp. and Pelco
1836
Creation of Schneider
at Le Creusot, France
19th century 20th century 21st century
2000
Acquisition of
MGE UPS Systems
2003
Acquisition of
T.A.C
2005
Acquisition of
Power Measurement Inc.
2003-2008
Targeted acquisitions in wiring devices
and home automation
(Lexel, Clipsal, Merten, Ova, GET, etc.)
2008
Acquisition of
Xantrex
Steel
Industry
Power &
Control
2010
Acquisition of Areva’s distribution
activity
Energy
Management
More than 170 years of history
4. Schneider Electric – Strategy & Innovation – H. Dondey 2012 4
Residential 9%
Utilities & Infrastructure 20%
Industrial & machines 24%
Data centres 17%
Non-residential buildings 30%
Balanced geographies – FY 2010 sales
Year-end 2010 employees
Diversified end markets – FY 2010 sales1
North
America
24%
Asia
Pacific
24%Rest of
World
18%
Western
Europe
34%
1 Proforma with Areva D integrated on 12-month basis
26,000
41,700
31,900
19,200
Schneider Electric – the global
specialist in energy management
billion € sales in 2010
% of sales in new economies
people in 100+ countries
of sales devoted to R&D
5. Schneider Electric – Strategy & Innovation – H. Dondey 2012 5
● Around 9 100 employees in R&D and
technical engineering
● More than 2 500 employees in Software
Development
● 60 major R&D centers in about 23 countries,
representative in terms of markets and
competences
Schneider Electric R&D and
technical engineering population
7. Schneider Electric – Strategy & Innovation – H. Dondey 2012 7
The Cost of Waiting Focusing on Code
8. Schneider Electric – Strategy & Innovation – H. Dondey 2012 8
Three pillars, but …
Prevent
Industry
standard
coding
Rules
C/C++,C#,
Java &Security
MISRA, JSF, =S=
Detect
Static
Code
Analysis
Early defect
Detection
Coverity,Klocwork
…
Source
Code
Quality
Measure
Qualimetry
SCQI / SQUORE
Measure
Source Code Quality model
One Source Code Quality Model
This code quality solution enables SW bug prevention, defect identification,
policy enforcement and corrective actions early in the development cycle
9. Software Qualimetry at Schneider Electric
- The Source Code Quality Indicators
(SCQI) Method
10. Schneider Electric – Strategy & Innovation – H. Dondey 2012 10
SCQI Basic Concepts
Quality
Objectives
Technical Debt
Quality Model
Analysis Model
11. Schneider Electric – Strategy & Innovation – H. Dondey 2012 11
RxR4R3R2R1 Comment ratio Complexity
Readability Understandability Changeability
The Quality Model describes the break down of code quality
into characteristics, sub characteristics and then establish the
link with the internal properties of the code artifacts
Portability Reliability ….ilityMaintainability
Quality
1st concept: the Quality Model
Cyclomatic Complexity
Comment line count
Non Conformity count
for rule R
Coupling Between Object
Code Measures
12. Schneider Electric – Strategy & Innovation – H. Dondey 2012 12
Schneider Electric
Source Code Quality Model (SCQM)
All quality sub characteristics are linked to 50 internal property checks
(measures or coding rules)
Re-usability Maintainability
* for future extension of quality model ** when code coverage measures are available
13. Schneider Electric – Strategy & Innovation – H. Dondey 2012 13
Tailored Source Code Quality Model
Tailored (at department level)
Source Code Quality Model
14. Schneider Electric – Strategy & Innovation – H. Dondey 2012 14
A Quality Hierarchy of
(sub) characteristics
linked to measures/rules
QH
Q
Measure/rule
Sub characteristic
CharacteristicMaintainability
An Artifact
Hierarchy
2nd concept: the Analysis Model
Rules to aggregate from one AH level to the upper level
Rules to aggregate from one QH level to the upper level
The Analysis Model describes the rules and algorithms for
combining measures in order to build the relevant indicators
AH
A Application
C
Files
Component
15. Schneider Electric – Strategy & Innovation – H. Dondey 2012 15
3nd concept: the Technical Debt
The Technical Debt is the cost of remediating / refactoring the
software components to remove (intentional or unintentional)
defects or to comply with requirements related to source code
The Technical Debt of a software artifact shall aggregate the
technical debts of the embedded artifacts.
AH
A
QH
Σ
17. Schneider Electric – Strategy & Innovation – H. Dondey 2012 17
Using software qualimetry during project
ConstructionDefinition
Concept and
feasibility
Validation Closure
1 - Quality Assessment
before maintenance
CLOSESELLDOSELECTOPEN
Release for
Validation
2 - Quality stage gate (intermediate
and final audit before launching)
......
3 - Quality measurement integrated into
each design and coding phase with 1 to n
iterations as needed
18. Schneider Electric – Strategy & Innovation – H. Dondey 2012 18
SQuORE: An Open and Scalable Architecture
A Collaborative Platform for
Optimizing Software Project Management
SQuORE DataBase
SQuORE Server
Data Analysis
& Modeling
Optimized
Remediation Plan Dashboards &
Reporting
Source
Code
Design
Models
Requirements
Test
Coverage
Bug
Tracking User Defined
Checklists
…
SQuORE Evaluation Engine
19. Schneider Electric – Strategy & Innovation – H. Dondey 2012 19
SQuORE: An intuitive Portal to Key Performance
Indicators
19
Trend analysis
version by
version
Forecast
Predicting the
trend
Objective and
impartial
evaluation
Breakdown into
Quality
characteristics
Distribution of artifacts
according to their level
of performance
Double
Drill-Down
20. Schneider Electric – Strategy & Innovation – H. Dondey 2012 20
SQCI Infrastructure
in January 2012
SQuORE
servers
UserUser
Admin
Centralized infrastructure
http://http://
Standard browser
(M:)
Local source
repository
Continuous integration
CLI*
* CLI: SQuORE Command Line Interface
(Z:)
Local source
repository
Pre-Prod
Prod #1
Prod #2
Prod #3
22. Schneider Electric – Strategy & Innovation – H. Dondey 2012 22
Deployment status
Last year (Q4 2010)
SW/FW population impacted < 20%
SCQI - mature
SCA - begin
SCQI - begin
SCA - mature
50p
50p
100p
100p
50p
50p
WW impacted population xx p (estimation)
23. Schneider Electric – Strategy & Innovation – H. Dondey 2012 23
Deployment status
Current (Q4 2011)
SW/FW Population impacted ~ 30%
SCQI - mature
SCA - begin
SCQI - begin
SCA - mature
150p
50p
150p
150p
50p
70p
70p
70p
?p
WW impacted population xx p (estimation)
24. Schneider Electric – Strategy & Innovation – H. Dondey 2012 24
Deployment forecast
> Q2 2012
SW/FW Population impacted > 50%
SCQI - mature
SCA - begin
SCQI - begin
SCA - mature
200p
100p
200p
170p
300p
120p
100p
70p
50p
WW impacted population xx p (estimation)
100p
25. Software Qualimetry at Schneider Electric
- Field background
Based on 5 departments and 70+ projects using
SQuORE for Source Code Quality Indicators
26. Schneider Electric – Strategy & Innovation – H. Dondey 2012 26
Some key feedback from the field
Deliver an easy-to-access “out-of-the-box” platform
Establish the scope of the evaluation clearly
Make your own “Technical Debt”
Extend the scope of quality evaluation when possible
Optimize standardized “configurations”
Ensure simple use cases for the end-users
27. Schneider Electric – Strategy & Innovation – H. Dondey 2012 27
F1.c
Some key feedback from the field
Establish the scope of the evaluation clearly
F2.c
F3.c
F4.c
F5.c
F6.c
Avoid generated code
Avoid test oriented code: test drivers, stubs, …
Avoid Third-Party code / Reusable packages, …
28. Schneider Electric – Strategy & Innovation – H. Dondey 2012 28
Some key feedback from the field
Make your own “Technical Debt”!
Considering the 4 following change proposals being part of a remediation plan,
which one should have the highest priority ?
a) completing function comment headers for Analyzability purpose,
b) specifying a default clause at the end of a switch structure for Fault Tolerance,
c) factorizing cloned code for Changeability and Testability,
d) adding a missing break statement ending a case block of a switch structure to
avoid unintentionally falling through the next case for Reliability purpose
Consider severity to
setup an optimized
remediation plan!
The SCQI Technical Debt Density Scale
29. Schneider Electric – Strategy & Innovation – H. Dondey 2012 29
Some key feedback from the field
Extend the scope of quality evaluation when possible
Source
CodeSource
CodeSource
CodeSource
CodeSource
Code
Mantis
Jira
ClearQuest
…
Change Mgnt.
SVN
GIT
ClearCase
…
Conf. Mgnt.
PCLint, FxCop,
Logiscope
CheckStyle
…
Rule Checking
GCOV
Junit
RTRT
…
Test - V&V
Coding
ReqPro
Reqtify
Doors
…
Requ. Mgnt.
30. Schneider Electric – Strategy & Innovation – H. Dondey 2012 30
Some key feedback from the field
Optimize standardized “configurations”
Project Maturity Data Providers Configuration and Training
Low Level:
No code review or analysis
No continuous integration
All technologies:
CPD (Copy/paste detection)
SQuORE (Code metrics)
- Corporate standard Quality Model
- SQuORE deployed as a static code analyzer
and qualimetry dashboard
- Training/coaching provided only to super-users
(senior software developer)
Medium Level:
Code review
One or more static code
analysers (at different steps)
No continuous integration
All technologies:
CPD (Copy/paste detection)
SQuORE (Code metrics)
C/C++: Klocwork, Coverity,
CodeSonar
C# : FxCop
Java: Checkstyle
- Quality Model adapted to the local technical
rules set
- Rule Checking results integrated into SQuORE
- Qualimetry dashboard shared within the team
from the SQuORE server
- Training/coaching provided to some key users
(i.e. senior software developers and quality
engineers)
High Level:
Code review supported by
static code analyzers
running all along the
software development
lifecycle.
Continuous integration
(including static code
analysis, unit testing and
code coverage
measurement)
All technologies:
CPD (Copy/paste detection)
SQuORE (Code metrics)
C/C++: Klocwork, Coverity,
CodeSonar, Gcov
C#: FxCop, Nunit, Ncover
Java: Checkstyle, Junit,
FindBugs
- Quality Model adapted to the local technical
rules set
- All results integrated in automatic tool chain
- Qualimetry dashboard shared within team in
development loop
- Training/coaching provided to all team
members.
31. Schneider Electric – Strategy & Innovation – H. Dondey 2012 31
Software Qualimetry at Schneider Electric
- Conclusion & Perspectives
32. Schneider Electric – Strategy & Innovation – H. Dondey 2012 32
Conclusion & Perspectives
●Adding new data providers
● Additional “Advanced” Source code Analyzers
● New process measurement (i.e.: Configuration management, Requirement
management,
●Including architectural data from Design Models
●Towards a “Capitalization Database”
●And deploying on more and more R&D centres…