Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos...

17
1 Mathieu Cuenant Application Engineer – MathWorks [email protected] Améliorez la qualité de vos logiciels embarqués grâce à l’analyse statique

Transcript of Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos...

Page 1: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

1

Mathieu CuenantApplication Engineer – [email protected]

Améliorez la qualité de vos logicielsembarqués grâce à l’analyse statique

Page 2: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

2

Developing secure code - Gary McGraw touchpoints

Code review

Architecture risk

analysis

Penetration testing

Page 3: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

3

Developing secure code

Code review

#1

#2Architecture risk

analysis

Penetration testing

#3

Page 4: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

4

Automating code review

Code review

with a tool

Page 5: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

5

A code review tool – Polyspace Bug Finder

Produce and monitor

quality metrics

Enforce coding rules

Identify defects

Page 6: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

6

Automatic code review – Overall picture

Delivery

Page 7: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

7

Enabling a fix-as-you-go process

Polyspace

Bug Finder

Page 8: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

8

Ford deploys static code analysis at enterprise level

Watch video

Page 9: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

9

Watch video

Solar Impulse saves 1 to 2 man-year with Polyspace

Page 10: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

10

Finding bugs

Polyspace

Bug Finder

Page 11: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

11

Where does the find-and-fix process stop ?

Page 12: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

12

The magic box – Myth or reality ?

Source

code

Polyspace Code Prover

Page 13: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

13

Proving code vs. finding bugs

Polyspace

Code Prover

Page 14: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

14

Polyspace Code Prover - Highlights

static void pointer_arithmetic (void)

{

int array[100];

int *p = array;

int i;

for (i = 0; i < 100; i++) {

*p = 0;

p++;

}

if (get_bus_status() > 0) {

if (get_oil_pressure() > 0) {

*p = 5;

} else {

i++;

}

}

i = get_bus_status();

if (i >= 0) {

*(p - i) = 10;

}

}

Green: reliable

safe pointer access

Red: faulty

out of bounds error

Gray: dead

unreachable code

Orange: unproven

may be unsafe

for some conditions

Page 15: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

15

Robust verification of software components

Quality gate

SW modules Integrated SW

Page 16: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

16

Contextual verification of application

Page 17: Améliorez la qualité de vos logiciels embarqués grâce à l ... · Améliorez la qualité de vos logiciels embarqués grâce à l’analysestatique. 2 Developing secure code -

17

Key takeaway

Automate Code Review

with Polyspace tools